Что такое алгоритм?
Как ответить на этот вопрос и не попасть пальцем в небо.
- Описание
- Подробнее
Описание
Удивительное дело. Люди, стоявшие у истоков того, что мы сейчас называем computer science, считали "алгоритм" понятием в принципе неопределяемым. Таким же, как, например, "множество". Но, в отличие от "множества"… Кстати, вы много видели определений множества? Кроме совсем смешного, типа: "множество — это совокупность чего-либо" (ага, ага, а совокупность — это множество чего-либо)? В отличие от "множества", в определениях "алгорима" недостатка нет. Вы без труда найдете штук пять или шесть.
Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Алгоритм — это последовательность действий для исполнителя, записанная на формальном языке и приводящая к заданной цели за конечное время.
Алгоритм — описание конечной последовательности шагов в решении задачи, приводящей от исходных данных к требуемому результату.
Алгоритм — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи.
Алгоритм — это всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи.
Алгоритм — это последовательность действий, либо приводящяя к решению задачи, либо поясняющая, почему это решение получить нельзя.
И хотя все эти определения — всего лишь чуть менее смешные, чем приведенное мной ранее определение "множества", такое упорство в общем неглупых людей наводит на мысль, что математики-основатели все-таки ошибались и определение алгоритма существует. Попробуем его найти, но сначала определимся с самим определением (извините за каламбур). Определение — это выражение некоторого сложного понятия через более простые. В идеале, оно должно состоять из одного существительного и одного прилагательного. Конечно, нечто может обладать множеством свойств, но обычно только одно из них являеся основным и определяющим. Его-то и следует выносить в определение, про все второстепенные можно спокойно забыть.
Я считаю что такое идеальное определение алгоритма есть. Математикам было сложно его найти, потому что оно, действительно лежит скорее в области физики, но оно есть. Прежде чем я вас с ним познакомлю, давайте разберемя — что не так со всеми прочими определениями.
Навскидку, можно увидеть, что почти в каждом есть слово "задача". Не знаю, как кто, но я бы не стал говорить , что "задача" это более простое понятие.
Дональд Кнут давал такое определение алгоритму:
Алгоритм — это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность.
Здесь мы опять видим "задачу", а также целых пять свойств. Наверняка здесь что-то лишнее.

