Отправляет email-рассылки с помощью сервиса Sendsay

Математика и алгоритмы

  Все выпуски  

Математика и алгоритмы


Математика и алгоритмы
Цикл # Дракон Паронджанова

Алгоритмы и планы
 

Уважаемые коллеги!

Этим выпуском рассылки "Математика и алгоритмы" открывается цикл, посвященный теории В.Д. Паронджанова и его языку визуального программирования ДРАКОН. 
Для тех, кто спешит, привожу прямые ссылки на книгу Паронджанова и среду программирования, реализующую язык Дракон. Соответственно:
http://www.twirpx.com/file/36420/ и http://www.twirpx.com/file/36785/
Мы же будем раскрывать тему, руководствуясь пословицей "Тише едешь - дальше будешь" или, по словам М. Анчарова, "в ритме сердца и со скоростью травы".

Начнем с определения понятия "алгоритм" и прояснения его места среди других понятий об организации мышления.

Википедия приводит несколько определений "алгоритма":

Алгоритм - это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность. (Д. Э. Кнут)
Алгоритм - это всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи. (А. Колмогоров)
Алгоритм - это точное предписание, определяющее вычислительный процесс, идущий от варьируемых исходных данных к искомому результату. (А. Марков)
Алгоритм - точное предписание о выполнении в определенном порядке некоторой системы операций, ведущих к решению всех задач данного типа. (Философский словарь / Под ред. М. М. Розенталя)
Алгоритм - строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд. (Н.Д. Угринович, учебник «Информатика и информационные технологии»)
Алгоритм - это последовательность действий, направленных на получение определённого результата за конечное число шагов. (ROXANstudio)

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

Общий же смысл достаточно ясен: алгоритм - это понятные и точные предписания исполнителю совершить конечное число шагов, направленных на решение поставленной задачи (или на доказательство отсутствия решения).

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

Нетрудно заметить, что понятия "алгоритм", "план" и "программа" совпадают по смыслу, а если понятие "система" приложить к процессу, то и здесь мы получим полное совпадение с алгоритмом. Алгоритм представляет собой систему операций для преобразования исходных данных в результат. Если различать степень общности операций, то можно увидеть, что алгоритм соответствует обобщенному решению, а план или программа - конкретному, привязанному к возможностям исполнительных механизмов.

В классической работе "Планы и структура поведения", написанной мэтрами американской психологии Миллером, Галантером и Прибрамом, предлагался типовой элемент операций с обратной связью - единица TOTE, из которой, как из кирпичиков складывались сложные планы мышления. И экспериментально было показано, что при решении незнакомых задач (например, запоминании наборов слов) основные усилия затрачиваются на мучительный поиск алгоритмов достижения результата. Если же эффективный алгоритм предлагался испытуемым заранее, то результаты получались легко и непринужденно. Отсюда значение эвристик - подсказок алгоритмов для решения творческих задач.

Завершим введение указанием формальных признаков алгоритмов:

  • Завершаемость (конечность). При корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. С другой стороны, вероятностный алгоритм может и никогда не выдать результат, но вероятность этого равна 0.
     
  • Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа. Однако при включении метода генерации случайных чисел в список «исходных данных», вероятностный алгоритм становится подвидом обычного.
     
  • Ввод. Алгоритм должен иметь некоторое число входных данных.
     
  • Результативность (вывод) — завершение алгоритма определенными результатами.
     
  • Понятность. Алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.
     
  • Массовость. Алгоритм должен быть применим к разным наборам исходных данных.

 

Вот и всё пока... Вопросы и замечания mailto:feod@narod.ru

Усилители интеллекта: теории, программы, эксперименты и технологии
http://sites.google.com/site/prog4intellect/
До новых встреч!
Юлий Феодоритов

 


В избранное