Освіта

Що таке алгоритм? »Його визначення та значення

Зміст:

Anonim

У математиці, інформатиці та інших суміжних доктринах алгоритм визначається як сукупність усталених і однозначних приписів, знайдених методично та обмежено, що дозволяють виконувати обчислення, обробляти певну інформацію, надавати рішення проблем і виконувати різні заходи. Як тільки ви починаєте з початкового стану та запису, дотримуючись необхідних процедур, досягається кінцевий стан і отримується результат. Алгоритми є об’єктом дослідження алгоритміки, і хоча багато хто може в це не вірити, вони також можуть бути використані у всіх аспектах повсякденного життя.

Що таке алгоритм

Зміст

Під час обчислень його зазвичай визначають як послідовність послідовних інструкцій, в яких виконуються деякі процеси з метою реагування на певні рішення або потреби. Таким же чином алгоритми часто використовуються в логіці та математиці, а також є основою для розробки посібників користувача, ілюстративних брошур, серед іншого. Одним із найвизначніших у математиці є той, який приписується геометристу Евкліду, щоб досягти найбільшого спільного дільника двох цілих чисел, які є додатними, та відомого "методу Гауса" для визначення систем лінійних рівнянь.

Щодо інформатики, цей розрахунок може бути відомий як послідовність вказівок, яких слід дотримуватися для визначення проблеми за допомогою використання комп’ютера.

Тому під алгоритмікою розуміють дисципліну, яка зосереджується на аналізі та розробці алгоритмів. Розглядаючи перший, він прагне дослідити такі властивості, як його правильність та ефективність щодо часу та простору, зрозуміти проблеми, які можна вирішити алгоритмічно. Що стосується другої, вона прагне вивчити вже встановлені парадигми та пропонує нові приклади.

Алгоритм розташований у центрі прогресу обчислень і важливий у різних його областях. Таким чином, неможливо для таких успішних служб, як Facebook та Google, обробляти величину інформації, яку вони мають, без співпраці алгоритмів або спеціалізованих структур даних. Однак у повсякденному житті також використовуються алгоритми, прикладом цього є запалювання печі, оскільки воно починається в той момент, коли людина йде на кухню, спостерігає за цим і має свій кінець, коли воно продовжує запалювати.

Характеристики алгоритму

Хоча алгоритм відомий як упорядкований і кінцевий набір різних кроків, що ведуть до вирішення проблеми, кажуть, що природа цих труднощів різниться залежно від контексту, в якому вони знаходяться, таким чином, існують проблеми хімічна, математична, філософська та ін. Таким чином, можна сказати, що його природа різноманітна, і його виконання комп'ютером не є необхідним. Окрім усього, що було раніше пояснено, алгоритми мають характеристики, елементарні для визначення того, якими вони є сьогодні, і про них буде сказано нижче.

  • Вказівки, що містяться в алгоритмі, повинні бути конкретними, щоб уникнути залишення місця для будь-якого типу плутанини, це означає, що відповідні інструкції повинні виконуватися належним чином, або, навпаки, графічне зображення потоку, в який ви реєструєтесь, не полегшить рішення. правильно.
  • Він повинен бути в ідеальному визначенні, намагаючись якомога більше слідувати йому стільки разів, скільки потрібно, щоб отримати той самий результат, а у випадку, якщо трапиться навпаки, алгоритм не буде надійним і не буде орієнтиром при прийнятті рішення.
  • Вони відомі особливістю бути скінченними, вони зазвичай закінчуються в якийсь момент, а пізніше вони кидають результат в кінці кожного кроку. Якщо алгоритм розширюється безкінечно, повертаючись до якоїсь початкової точки, яка ніколи не може бути вирішена, існує парадокс або відомий «цикл» повторень.
  • Нарешті, сказано, що читабельність алгоритмів є ключовим елементом, оскільки, якщо його аргумент незрозумілий, відповідні вказівки не можна було виконувати, крім того, це тягне за собою пряме, чітке та лаконічне формулювання тексту, що міститься в кожному з них.

Частини алгоритму

Кожна алгоритмічна операція складається з трьох різних частин, які підпорядковуються базовій структурі системи, і це:

  • Вхідні дані: також називається заголовком або початковою точкою, це початкова інструкція, яка представляє генезис алгоритму та мотивує його читання.
  • Процес: також називається декларацією, це точна розробка, запропонована алгоритмом, і в основному це ствол його ключів для формулювання інструкцій.
  • Результат: на цій останній фазі знаходяться конкретні інструкції, що визначаються алгоритмом, наприклад, його команди або резолюції.

Приклади алгоритмів

Поширені приклади математичних обчислень включають 2 + 3 = 5 для додавання та 15-9 = 6 для віднімання. Інший спосіб візуалізації простих алгоритмів - це кухонні рецепти, оскільки вони описують конкретний і впорядкований процес, наприклад, «спочатку потрібно поставити половину горщика води для нагрівання, потім потрібно додати щіпку солі і, нарешті, перець буде розділений для вилучення насіння та нервів ". У цій моделі представлені початок, процес і кінець, які в основному визначають алгоритми.

Типи алгоритмів

Серед різних типів алгоритмів, що існують у всьому світі, наголос робиться на тих, які класифікуються за системою знаків, а інші відповідно до їх функції. В основному алгоритм є найбільш відомим рішенням для вирішення будь-якої конкретної проблеми, і відповідно до його стратегій та його функцій існують різні типи таких, серед яких є динамічний, зворотний, груба сила, опортуністичний, маркувальний, випадкові тощо На додаток до згаданих вище алгоритмів, існують тисячі таких, які підходять для вирішення труднощів у будь-якій області.

Відповідно до вашої знакової системи

Якісні та кількісні розміщені в цій категорії.

  • Якісні алгоритми характеризуються словесними елементами, прикладом яких є інструкції або визнані "крок за кроком", які передаються усно, наприклад, рецепти кулінарного мистецтва або процедури виконання ручної роботи.
  • Кількісні алгоритми є повною протилежністю якісним завдяки наявності певних числових елементів та використанню математики для виконання обчислень, наприклад, коли знайдено квадратний корінь або вирішені рівняння.

У межах цієї класифікації є також обчислювальні та необчислювальні алгоритми. Обчислювальні виконуються за допомогою комп'ютера і характеризуються тим, що є настільки складними, що вимагають виконання машини, крім цього, вони є кількісними алгоритмами, які можна оптимізувати. Необчислювальні не зобов’язані виконуватися за допомогою машини або комп’ютера; яскравий приклад цього - програмування телевізора.

Відповідно до своєї функції

У цій класифікації розташовано наступне.

1. Алгоритм маркування

Це характеризується використанням автоматизації для старанного встановлення цін, зосередженням уваги на таких факторах, як поведінка користувачів, а також відомою як здатність автоматично визначати ціни на девальвацію компонентів, щоб збільшити прибуток користувачів. продавці. Він грає дуже важливу роль в загальних практик в авіакомпанії промисловості з початку 1990 - х років.

Алгоритм маркування відрізняється тим, що він є однією з найпоширеніших практик у висококонкурентоспроможних галузях, посилаючись на туристичні агенції чи ті інтернет-установи. Цей тип алгоритму може бути надзвичайно складним або відносно простим, оскільки в багатьох випадках помічається, що вони оптимізовані або навчаються самостійно при безперервності певних тестів. Крім усього цього, алгоритми позначення можуть також стати непопулярними серед клієнтів, оскільки люди, як правило, цінують як стабільність, так і справедливість.

2. Імовірнісні алгоритми

Це ті, в яких спосіб отримання результатів залежить від ймовірностей, вони зазвичай відомі як випадкові алгоритми.

У деяких додатках використання цього типу операцій є загальним, наприклад, коли поведінка будь-якої існуючої або розробленої системи моделюється з часом, в результаті чого отримується випадкове рішення. В інших обставинах проблема, яку потрібно вирішити, зазвичай є детермінованою, але існує можливість перетворити її на випадкову, щоб вирішити, застосувавши алгоритм ймовірності. Позитивом випадкового є те, що його застосування не вимагає надзвичайно складних математичних досліджень.

Крім того, у цій групі є три основних типи, які відомі як числові, Монте-Карло та Лас-Вегас.

  • Чисельні алгоритми можуть надати приблизний результат проблеми і, як правило, застосовуються в техніці.
  • Алгоритми Монте-Карло можуть дати правильне чи неправильне рішення і мати певну похибку, нарешті.
  • Алгоритми Лас-Вегаса відрізняються тим, що ніколи не залишають неправильної відповіді, насправді вони знаходять правильне рішення або просто інформують вас про можливу помилку.

Динамічне програмування відноситься до методу, при якому алгоритм обчислює результати. Іноді рішення певних елементів, що мають проблеми, залежать від результатів інших менших проблем. Отже, для їх вирішення ті самі значення повинні бути перераховані для вирішення найменших підзадач, однак це може призвести до втрати циклів. Щоб це виправити, можна використовувати динамічне програмування, і в цьому випадку запам'ятовується рішення кожної підзадачі, щоб використовувати те саме значення замість повторення кілька разів.

3. Евристичні алгоритми

Їх відрізняє пошук рішень, і навіть тому вони не гарантують, що буде знайдено найкращі відповіді, з цієї причини їх можна вважати наближеними алгоритмами. Вони можуть бути використані, коли пошук рішення звичайним шляхом вважається неможливим. Евристика забезпечує використання, яке буде пояснено нижче. При плануванні вони використовуються для планування діяльності за короткий проміжок часу, при проектуванні вони використовуються для розмежування електричних або цифрових систем, а в моделюванні - для перевірки певних процедур.

4. Алгоритми зворотного відстеження

Вони відомі як рекурсивні стратегії, що вирішують такі проблеми, як головоломки, лабіринти або подібні фігури, в яких проводиться глибокий пошук, щоб знайти можливе рішення. Його назва стосується того факту, що в запитах, зроблених для пошуку результату, воно завжди повертається до попереднього пункту, щоб мати можливість перевірити альтернативи. Зазвичай їх скасовують, щоб спостерігати їх вплив на економіку, ринки, маркування цін, певні операції і навіть на саме суспільство.

5. Жадібний алгоритм

Він відомий як есмінець або ласун і застосовується в задачах оптимізації. На кожному кроці цього алгоритму робиться логічний та оптимальний вибір, щоб отримати найкращі з глобальних рішень. Однак слід враховувати, що після винесення судження абсолютно нічого не можна зробити, щоб виправити чи змінити його в майбутньому. Ця операція має таку назву, оскільки на кожному кроці вибирається найкраща фракція, яка здатна «проковтнути», не турбуючись про те, що станеться згодом.

Властивості алгоритму

Різні автори намагалися формально визначити алгоритми, використовуючи математичні моделі. Однак ці зразки тісно пов'язані з особливим типом інформації, що включає цифри, символи та деякі графіки, одночасно працюючи на великій кількості розподілу даних. Загалом, загальна участь кожного з визначень узагальнена у таких трьох властивостях:

Постановка проблеми

Вирішення проблем за допомогою комп'ютера може складатися з того процесу, в якому описується проблема і дозволяється розробляти програму, здатну вирішити її. Цей процес вимагає аналізу проблеми, розробки алгоритму та перетворення його в програму, а також його продуктивності та перевірки. Перші два кроки є найскладнішими в цьому процесі, але як тільки ви вивчили проблему та отримали алгоритм, який може її вирішити, ваше завдання в першу чергу базується на перекладі її на потрібну мову програмування.

Аналіз загального рішення

Після визначення проблеми настав час проаналізувати наступне:

  • Інформація про квитки, які вони надають нам.
  • Бажані результати.
  • Домен роботи, твердження або інші необхідні елементи.

Аналіз алгоритмів відомий як найважливіша частина ширшої теорії обчислювальної складності, оскільки він забезпечує теоретичні розрахунки ресурсів, необхідних будь-якому алгоритму для вирішення даної обчислювальної задачі. Виконуючи теоретичне дослідження, прийнято обчислювати його ускладнення в асимптотичному сенсі, щоб отримати досить великий вхідний розмір. Для цього використовується асимптотична верхня межа разом із позначеннями тета та омега, і слід зазначити, що не асимптотична міра може бути обчислена.

Точні міри ефективності дійсно корисні для тих, хто насправді використовує алгоритми, оскільки вони мають більшу точність, і це дозволяє їм визначати час, необхідний для виконання. Для деяких людей, таких як творці відеоігор, прихована константа може означати велику різницю між успіхом і невдачею. Оцінка часу може залежати від того, як визначено певний крок, і щоб аналіз мав сенс, потрібно гарантувати, що час помітно обмежений константою.

Розробка алгоритму

Для розробки операції важливо, щоб була проведена низка процедур, щоб відповідати вирішенню самої проблеми. Для початку необхідно провести попередній аналіз труднощі, і це робиться за допомогою дослідження, яке демонструє справжню роботу проблеми задовго до того, як буде здійснено будь-який алгоритм. Отже, визначення вимог оцінюється, на цьому кроці ви повинні чітко уявляти, які задачі вирішувати, будь то сума двох чисел, упорядкування списку чисел тощо.

Пізніше виконується відповідна ідентифікація модулів, оскільки від неї залежить правильна реалізація алгоритмів для надання можливих рішень вимогам, визначеним вище.

Нарешті, обчислення реалізовано мовою програмування, яка зрозуміла комп’ютеру, щоб він міг зрозуміти інструкції, які він моделює, і таким чином міг їх виконувати, досягаючи очікуваного результату. У цій останній процедурі вже можна говорити про програму, яка складається з ряду інструкцій, які впорядковуються одна за одною і встигають вирішити встановлені вимоги.

Важливо згадати, що в послідовний час алгоритми виконують свою функцію в дискретно визначений час і прагнуть визначити послідовності обчислювальних станів у кожному вході, який вважається дійсним. В абстрактному стані ці операції є незалежними елементами, і вважається, що в них первинні структури порядку можуть стати інваріантними при ізоморфізмі. При обмеженому дослідженні переходи з одного стану в інший повністю встановлюються постійним і кінцевим поясненням, в якому між одним станом і наступним враховується лише обмежена кількість термінів поточного стану.

Також не слід забувати, що алгоритми зазвичай виражаються за допомогою мов програмування "псевдокодами" звичайної мови і навіть відомих діаграм потоків. Важливо також згадати, що алгоритми відіграють фундаментальну роль у обчисленні завдяки тому, що вони представляють дані як послідовності бітів. З іншого боку, програма визначається як алгоритм, який виражає комп'ютеру ті конкретні кроки, які він повинен виконувати, щоб адекватно виконувати певні дії. З іншого боку, навчання писати псевдокод полегшує програмування, і тому буде пояснено пізніше.

Мови програмування відомі як офіційна або штучна мова, оскільки вони мають чітко визначені граматичні правила, він має можливість надати програмісту можливість текстуалізувати ряд інструкцій або послідовностей правил у вигляді алгоритмів з метою щоб підтримувати контроль над фізичною та логічною поведінкою комп'ютера, таким чином можна отримати різні типи інформації. Цей набір приписів, написаних мовою програмування, називається програмою.

Мови програмування, як правило, складаються з набору символів та граматичних та семантичних правил, що визначають поточні структури мови та їх значення. З іншого боку, комп’ютерні мови також включають мови програмування, яскравим прикладом цього є HTML, який виконує певні вказівки щодо здійснення змісту різних документів. Мова програмування може дозволити точну специфікацію тих даних, якими має керуватися конкретне програмне забезпечення за різних обставин.

З іншого боку, псевдокод - це алгоритмічна мова опису, яка використовує елементарні домовленості реальної мови програмування, але призначена для читання людиною замість читання через машину, зберігаючи незалежність від будь-якого іншого типу мова програмування. Псевдокод ігнорує деталі, які не вважаються важливими для розуміння людиною алгоритму, такі як коди системи, оголошення змінних та навіть деякі підпрограми. Таким чином, мова програмування прагне доповнити себе точними описами природною мовою або компактними математичними позначеннями.