Алгоритм – это последовательность действий.

С алгоритмами мы сталкиваемся практически каждый день. Иногда даже сами того не осознавая. Например, когда просим кого-то купить продукты в магазине. Мы объясняем, какие нужны продукты, сколько их, какие требования к ним мы предъявляем. К примеру: купить две буханки чёрного хлеба, причём свежего.

Мы указываем чёткий алгоритм: необходимо зайти в магазин, узнать, есть ли чёрный хлеб. Затем узнать, свежий ли этот хлеб. А уже после этого (в случае двух положительных ответов) купить две буханки.

Даже краткое описание этой обыденной для каждого из нас процедуры достаточно объёмно. Что же тогда говорить об инструкциях пользователя, которые являются примерами более сложных алгоритмов?

Каждый человек в повседневной жизни, во время учебы или на работе решает огромное количество задач самой разной сложности. Некоторые из этих задач столь просты и привычны, что мы решаем их не задумываясь, автоматически, и даже не считаем задачами. К ним можно отнести такие задачи, как «Купить хлеб», «Собраться в школу», «Закрыть дверь на ключ» и пр. Другие же задачи, напротив, так трудны, что требуют длительных размышлений и усилий для поиска решения и достижения поставленной цели. Например, решения задач «Написать контрольную работу на 5» или «Свободно разговаривать на иностранном языке» требуют выполнения гораздо большего количества сложных действий, чем решение задачи «Купить мороженое». Но решение даже самой простой задачи обычно осуществляется за несколько последовательных шагов.

Например, процесс покупки хлеба можно представить так:

взять у мамы деньги;

пойти в магазин;

выбрать нужные хлебобулочные изделия;

оплатить стоимость покупки;

принести хлеб домой.

Аналогично, в виде последовательности действий можно описать процессы решения многих задач, с которыми вы имеете дело в школе: «Вычислить периметр многоугольника», «Найти наибольший общий делитель двух натуральных чисел», «Определить часть речи», «Провести фонетический разбор слова». Такая последовательность шагов в решении задачи называется алгоритмом. Одним из самых известных алгоритмов, который получил своё собственное название, – алгоритм Эвклида (алгоритм для нахождения наибольшего делителя двух целых чисел).

При этом для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Например, если переставить в алгоритме покупки хлеба пункты местами, получим:

взять у мамы деньги;

выбрать нужные хлебобулочные изделия;

пойти в магазин;

оплатить стоимость покупки;

принести хлеб домой.

В этом случае возникает неопределённость: мы выбираем хлебобулочные изделия дома, но в магазине их может не оказаться. В этом случае алгоритм окажется неисполняемым.

Преобразование информации кажется нам делом очень простым. Однако, на самом деле это далеко не так.

Особенно это касается составления алгоритма для правильного преобразования информации.

Простейшим примером такого алгоритма является инструкция пользователя к любому предмету. Если она составлена некачественно, то пользователь рискует либо поломать предмет из-за неправильной эксплуатации, либо не научиться с ним работать.

Многие скажут, что составить инструкцию для готового прибора очень легко. Однако будут неправы. Почему? Всё очень просто: большинству людей гораздо проще сделать что-то самим, чем объяснить остальным, как это делается.

Действительно, сегодня практически любой школьник легко умеет пользоваться мобильным телефоном: вставить или поменять сим-карту, пополнить счёт, позвонить, отправить смс. И это кажется простым и интуитивно понятным. Однако попробуйте объяснить, как пользоваться мобильным телефоном, человеку, который никогда им не пользовался. Это вызовет массу вопросов, о которых вы даже не подозреваете.

Давайте рассмотрим пример, который позволит нам понять, с какими трудностями сталкиваются люди при составлении алгоритмов для преобразования информации.

Думаю, многие из вас мысленно составили следующую модель алгоритма:

Взять чашку.

Положить в неё кофе.

Насыпать сахар.

Залить кипятком.

Помешать ложкой.

Разбавить кипячёной водой.И этот алгоритм будет практически нереализуем. Почему? Очень просто: робот не обладает «здравым смыслом» в виде опыта, который накапливает человек. Поэтому даже фраза «взять чашку» будет для него сложной проблемой: где взять, какого размера должна быть чашка. Предположим, робот взял чашку, но это значит, что он держит её в руках, ведь в алгоритме не было сказано поставить чашку на стол.

Далее – положить кофе можно ложкой, можно руками. Кроме того, не сказано: сколько кофе необходимо положить, то есть робот может бросить маленькую щепотку, а может засыпать полную чашку.

Аналогичная ситуация с сахаром и кипятком. В общем, вырисовывается целый ряд проблем.

Именно с такими проблемами и сталкиваются «специалисты» при составлении инструкций для «неспециалистов».

Попытаемся составить более полный алгоритм (хотя и его можно совершенствовать практически до бесконечности):

Взять в серванте прозрачную чашку с надписью «Моя»!Поставить чашку на кухонный стол дном вниз.Достать из шкафа, который расположен слева от серванта, контейнеры с надписью «Кофе» и «Сахар» и поставить их на стол рядом с чашкой.Взять в серванте чайную ложку.Насыпать в чашку одну полную чайную ложку вещества из контейнера с надписью «Кофе», а затем одну чайную ложку вещества из контейнера с надписью «Сахар».Взять только что закипевший чайник и налить из него кипятка в чашку так, чтобы она была заполнена примерно на 2/3.Чайной ложкой равномерно и не спеша помешать кофе в чашке в течение минуты.Вынуть чайную ложку из чашки и положить в раковину.Взять с кухонного стола графин с кипячёной водой и налить из него воду в чашку так, чтобы она была заполнена приблизительно на 90%.Безусловно, этот алгоритм не является совершенным и предполагает знание роботом многих вещей, однако даже он показывает, насколько трудно описать те вещи, которые каждый из нас умеет делать с раннего детства. Возможно, именно поэтому создание полноценного искусственного интеллекта имеет весьма отдалённые перспективы. Это связано, в первую очередь, с тем, что нужно научить компьютер «думать» и «анализировать», как человек, потому что полностью «вложить» в него все человеческие знания практически невозможно. А ещё сложнее научиться ими распоряжаться.

О происхождении слова «алгоритм»

Правила выполнения арифметических действий над целыми числами и простыми дробями в десятичной системе счисления впервые были сформулированы выдающимся средневековым ученым по имени Мухаммед ибн Муса ал-Хорезми (в переводе с арабского это означает «Мухаммед, сын Мусы из Хорезма»), сокращенно Ал-Хорезми.

Ал-Хорезми жил и творил в IX веке. Арабский оригинал его арифметического труда утерян, но имеется латинский перевод ХІІ века, по которому Западная Европа ознакомилась с десятичной позиционной системой счисления и правилами выполнения в ней арифметических действий.

Ал-Хорезми стремился к тому, чтобы сформулированные им правила были понятны для всех грамотных людей. Достичь этого в веке, когда еще не была разработана математическая символика (знаки операций, скобки, буквенные обозначения и т. п.), было очень трудно. Но Ал-Хорезми удалось выработать в своих трудах такой стиль четкого, строгого словесного предписания, который не давал читателю никакой возможности уклониться от предписанного или пропустить какие-нибудь действия.

В латинском переводе книги Ал-Хорезми правила начинались словами «Алгоризми сказал». С течением времени люди забыли, что «Алгоризми» – это автор правил, и стали сами эти правила называть алгоритмами. Постепенно «Алгоризми сказал» преобразовалось в «алгоритм гласит».

Таким образом, слово «алгоритм» происходит от имени ученого Ал-Хорезми. Как научный термин первоначально оно обозначало лишь правила выполнения действий в десятичной системе счисления. С течением времени это слово приобрело более широкий смысл и стало обозначать любые точные правила действий. В настоящее время слово «алгоритм» является одним из важнейших понятий науки информатики.

Литература

Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2012

Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2010.

Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. – М.: БИНОМ. Лаборатория знаний, 2010. источник