Поняття алгоритму та властивості алгоритму. Види алгоритмів
Содержание
Що це таке?
Що ж таке поняття алгоритму і властивості алгоритму?
Алгоритм - це певна послідовність дій, тобто в принципі нам доводиться стикатися з ними кожен день, хоча ми можемо навіть цього не усвідомлювати.
Людина і алгоритм
Наприклад, якщо ми просимо когось зі своїх членів сім`ї купити щось в магазині, ми задаємо алгоритм дій, тобто детально розповідаємо, які конкретно продукти потрібно купувати, в якій кількості, а також які вимоги пред`являються до кожного з них. При цьому, як говорилося вище, задається чіткий алгоритм дій, наприклад:
- Зайти в певний магазин.
- Дізнатися, чи продається там білий хліб.
- Дізнатися, чи свіжий він.
- Якщо відповіді на питання 2 і 3 «так», то в такому випадку купується дві буханки.
Звичайно, може здатися, що процедура є досить буденною, і подібне її опис є достатньо об`ємним. Але насправді, якщо мова йде про те, що таке поняття алгоритму і властивості алгоритму в сучасній інформатиці, то там інструкції можуть бути набагато більш об`ємними, так як вищенаведений алгоритм є одним з найпростіших.
Алгоритми в природі
Кожна людина постійно вирішує величезну кількість найрізноманітніших завдань, що мають різну складність, при цьому деякі з них є настільки простими, що вирішуються повністю автоматично, навіть не сприймаючись як певна задача. Наприклад: закрити двері на ключ, вмитися, поснідати, погодувати сім`ю і т. Д.
Але є й інші завдання, які є настільки складними, що для їх вирішення потрібні тривалі роздуми, а також чимала кількість зусиль, щоб спочатку знайти рішення, а вже потім досягти поставленої мети. До таких завдань можна віднести: вивчити іноземну мову, заробити певну кількість грошей і інші. Іншими словами, для виконання таких завдань потрібно набагато більше складних дій в порівнянні з тим, скільки їх потрібно для виконання завдання «купити хліб», але насправді навіть найпростіші завдання вирішуються в кілька кроків.
Поняття, види і властивості
У вигляді певної послідовності дій можна описати процедуру вирішення величезної кількості завдань, з якими людина стикається в повсякденному житті, і саме ця послідовність є в інформатиці як поняття алгоритму і властивості алгоритму.
Одним з найбільш відомих серед усіх є так званий алгоритм Евкліда, за допомогою якого визначається найбільший дільник двох цілих чисел.
При цьому варто відзначити той факт, що, розглядаючи поняття алгоритму і його властивості, потрібно правильно розуміти не тільки самі дії, але ще і те, в якому саме порядку вони виконуються. Адже нерідко трапляються такі ситуації, коли при зміні порядку дій в алгоритмі в кінцевому підсумку він може виявитися не виконує при певних обставинах. Наприклад, якщо ви йдете в магазин, то початок алгоритму буде приблизно таким:
- Піти в магазин.
- Вибрати хліб.
або:
- Вибрати хліб.
- Піти в магазин.
Якщо розглядати останній алгоритм, то в такому випадку спочатку вибирається хліб, і тільки потім ми вже йдемо з більш точно визначеним завданням в магазин, і якщо насправді потрібного нам хліба там не виявиться, то в такому випадку побудований нами алгоритм в кінцевому підсумку виявиться неісполняемимі.
види
Види алгоритмів можуть бути наступними:
- Циклічний. алгоритм, в якому присутній циклічна структура, тобто багаторазове повторення різних дій.
- Лінійний. Алгоритм, що використовує структуру слідування, тобто дії розташовуються один за одним.
- Розгалужується. Алгоритм, в якому використовується структура розгалуження, коли дія вибирається залежно від того, чи виконано певну умову.
властивості
Властивості ж їх такі:
- Детермінованість. При завданні однакових вихідних даних кілька разів алгоритм починає однаково виконуватися, надаючи один і той же сигнал.
- Масовість. За допомогою алгоритму вирішується не якась одна задача, а безліч завдань певного типу.
- Результативність. Використання алгоритму в будь-якому випадку призводить до вирішення поставленого завдання.
- Дискретність. Алгоритм включає в себе послідовність дій, виконання яких не представляє собою ніякої складності.
- Кінцівка. Послідовність дій алгоритму не може бути необмеженою або нескінченної.
- Коректність. Якщо алгоритм формується для виконання певного завдання, то він завжди повинен видавати відповідний результат.
Алгоритм в інформатиці
Коли людина поступово заглядає в інформатику і буде думати про те, що являє собою поняття алгоритму і його властивості, то він дізнається, що алгоритм, який має помилку, в деякому розумінні краще того, який функціонує, але робить це неправильно. Адже якщо помилка присутня, то в такому випадку комп`ютер повідомить нам про це, і ми згодом уже зможемо знайти її і виправити, а якщо ж помилка, яка змушує працювати алгоритм неправильно, проявляється тільки в рідкісних випадках, то в такому випадку вона може з`явитися в найвідповідальніший момент.
Наскільки легко його скласти?
Для багатьох людей обробка інформації здається досить простим завданням, але насправді це не так, адже для початку потрібно хоча б розібратися в тому, що являють собою і поняття алгоритму, і властивості алгоритму, і його виконавці. Особливо це стосується складання алгоритму, який потрібно для правильної обробки інформації.
Найбільш простим прикладом можна назвати інструкцію користувача до певного предмету. Якщо її скласти непрофесійно, то в такому випадку користувач може просто-напросто зламати предмет, так як буде неправильно його експлуатувати або не навчиться з ним працювати, не кажучи вже про те, що можуть бути і певні фізичні травми, якщо вести мову про серйозну побутової техніці.
Багато хто скаже, що насправді немає нічого складного в тому, щоб скласти інструкцію для готового приладу, але насправді це не так, адже в дійсності переважній більшості людей набагато легше зробити щось самостійно, ніж пояснити кому-небудь ще, як це робиться.
Наприклад, практично кожен школяр без праці використовує мобільний телефон, а також всі наявні в ньому функції, і це здається гранично простим і інтуїтивно зрозумілим. Але насправді не так просто пояснити, як користуватися мобільним телефоном тій людині, яка в житті не тримав в руках цей пристрій, так як у нього з`явиться величезна кількість питань, причому таких, про які ви навіть не підозрюєте. Саме в цій ситуації важко буде пояснити все відповідно до того, що являють собою поняття алгоритму і властивості алгоритму. Послідовність дій буде незрозуміла, і людина не зможе їх виконати так, як це потрібно для нормальної роботи пристрою.
Які труднощі можуть виникнути?
Як приклад розглянемо, як зробити алгоритм заварювання чаю для якого-небудь робота, який в принципі не знає нічого, і для нього повноцінне джерело інформації про завдання - це алгоритм. Поняття, види, властивості - все це нам відомо, але для більшості людей уявна модель такого алгоритму є приблизно такою:
- Взяти чашку.
- Покласти в неї чай.
- Насипати цукор.
- Залити окропом.
- Розмішати.
Але в дійсності ж такий алгоритм буде практично неможливо виконати, так як у робота немає здорового глузду, і весь цей порядок дій для нього є мінімальним набором інформації.
Точність дій - основа алгоритму
Головне, що потрібно зрозуміти, розглядаючи поняття алгоритму і властивості алгоритму - точність дій, адже робот навіть не знає спочатку, де йому взяти чашку і яку конкретно потрібно взяти, при цьому навіть якщо він її візьме, то він буде тримати її в руках, так як у нього не було команди ставити її на стіл. Тепер йому потрібно буде покласти чай, але це знову ж таки можна зробити руками, а можна ложкою, при цьому потрібно знати кількість. Таким чином з`являється величезна кількість самих різних проблем, які потрібно вирішувати ще на етапі побудови алгоритму.
Як виглядає вірно?
Звичайно, розглядаючи поняття алгоритму і властивості алгоритму, точний опис можна формувати практично до безкінечності, але оптимальним в цій ситуації буде приблизно наступна послідовність дій:
- Взяти в серванті чашку з написом «Робоча».
- Поставити чашку на стіл на кухні дном вниз.
- Дістати з шафи, що знаходиться праворуч від холодильника, контейнери з написом «Цукор» і «Чай», після чого поставити їх на стіл поряд з чашкою.
- З серванта дістати чайну ложку.
- Насипати в чашку одну повну чайну ложку з контейнера з написом «Чай», а потім дві чайні ложки з контейнера з написом «Цукор».
- Включити чайник.
- Почекати, поки чайник закипить, після чого налити з нього води в чашку, поки вона не буде заповнена на 2/3.
- Рівномірно розмішати чайною ложкою рідину в чашці протягом 30 секунд.
Таким чином, розглядаючи поняття алгоритму і властивості алгоритму, ким виконується кожна дія, а також безліч інших елементів, можна буде прийти до побудови оптимальної послідовності дій. Навіть вищенаведений алгоритм не можна назвати досконалим, і він передбачає те, що роботу відомо велика кількість речей, але навіть на цьому прикладі можна зрозуміти, наскільки складно насправді описувати ті чи інші речі, які ми з вами прекрасно знаємо ще з самого дитинства.
Що потрібно знати?
В першу чергу перед там, як складати алгоритм, потрібно визначитися з тим, які є початкові умови для виконання певного завдання, а також має бути відомо те, що потрібно отримати. Сам по собі алгоритм являє собою вже кінцеву послідовність дій у вирішенні певного завдання, яка призводить від вихідної інформації до певного результату. У будь-якому випадку першість в розробці алгоритму дій належить людині, а займаються виконанням цих дій вже різні люди або ж усілякі пристрої, такі як супутники, роботи, комп`ютери, просунута побутова техніка, а з недавнього часу навіть певні іграшки навчилися їх виконувати.
Історія
Ал-Хорезмі - це людина, яка першою визначив поняття алгоритму і властивості алгоритму. Масовість дане поняття набуло вже через певний час, коли воно отримало вже більш широкий зміст, а також стало визначати будь-які точні правила певної дії. На сьогоднішній день вже дане поняття сприймається багатьма як один з найбільш важливих понять такої науки, як інформатика, без якого її практично неможливо собі уявити.
Сам Ал-Хорезмі жив в IX столітті нашої ери, причому варто відзначити той факт, що початковий арабський оригінал, в якій висловлювалися його арифметичні праці, був загублений, однак існує переказ, за допомогою якого Західна Європа змогла в кінцевому підсумку ознайомитися з десяткової позиційної системою числення, а також основними правилами виконання різних арифметичних дій.
Вчений прагнув до того, щоб правила, які були їм сформульовані, були гранично зрозумілими для будь-якого грамотного людини. Досягти цього в столітті, коли ще не було повноцінної математичної символіки, було надзвичайно складно, але вчений зміг в своїх працях в кінцевому результаті прийти до чіткого і при цьому суворого словесного приписи, за яким читач не мав можливості ухилитися від запропонованих завдань або ж пропустити певні дії .
У латинському перекладі праці вченого викладалися в єдиній книзі, яка називалася «Алгорізмі сказав». З плином часу люди стали поступово забувати про те, що «Алгорізмі» є автором таких правил, внаслідок чого правила почали називатися алгоритмами. Таким чином, поступово «Алгорізмі сказав» перетворилося і стало «алгоритм говорить».