DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 22:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Вторник, 06 Октябрь, 2020 11:28 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
В этой теме выложена Глава 27 из моей книги "Алгоритмы и жизнеритмы на языке ДРАКОН". Полностью книгу можно скачать viewtopic.php?f=202&t=6410

Глава 27.
Чем различаются алгоритмы и жизнеритмы


Два термина

Алгоритм — символ безукоризненной точности и строгой дисциплины. К сожалению, в научной и учебной литературе термин «алгоритм» зачастую используют для обозначения двух разных понятий.

Подобная двусмысленность может привести к недоразумениям и неприятным последствиям.

Чтобы устранить неоднозначность, полезно различать два термина:

 алгоритм (для строгих алгоритмов);
 жизнеритм (для нестрогих).

Наша задача — разъяснить оба термина и устранить путаницу.

Чем различаются алгоритм и жизнеритм

Ответ дан на рис. 152. На шампуре видим вопрос: «Компьютер может решить задачу»? Если да, метод решения является алгоритмом.

Если нет, читаем второй вопрос: «Человек может решить задачу?»

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

На рис. 152 представлены оба варианта решения задачи. Там же показан третий вариант, где задача не имеет решения.

Что сказано в авторитетном учебнике

Профессор А. Н. Степанов в «Курсе информатики для студентов информационно-математических специальностей» отмечает:
Цитата:
«В 30—50-х годах XX века в связи с формированием теории алгоритмов кардинально изменилось понимание их роли и значения в научной сфере и бытовой жизни человека.

В это время термин «алгоритм» приобрел четкое научное определение. Одновременно выяснилось, что огромное большинство своих действий в своей жизни и профессиональной деятельности: умывание, приготовление различных блюд, переход улицы, выпечку хлеба, выплавку стали, выращивание винограда и т. д. — человек осуществляет по вполне определенным алгоритмам» [15, с. 164].

Стоп! В это рассуждение вкралась неточность. Умывание — это не алгоритм, а жизнеритм.

Точно так же приготовление блюд, переход улицы, выпечка хлеба, выращивание винограда — не алгоритмы, а жизнеритмы. Автор учебника, увы, не делает различия между этими понятиями.
Вложение:
Презентация1.png
Презентация1.png [ 113.53 КБ | Просмотров: 1654 ]
Рис. 152. Алгоритм «Как решить задачу»

Интуитивное понятие алгоритма

Интуитивное понятие алгоритма обычно разъясняют следующим образом.

 Алгоритм — это «понятное и точное предписание (указание) исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи» [16].

 «Алгоритм представляет собой совокупность правил, инструкций для исполнителя, выполняя которые, он за конечное число шагов добьется искомого результата» [15, с. 166].

 «Алгоритм представляет собой точный набор инструкций, описывающих порядок действий для достижения цели, получения решения задачи за конечное время» [15, с. 167].

Интуитивное понятие алгоритма (в такой формулировке) в равной степени относится как к алгоритмам, так и к жизнеритмам. Оно не позволяет провести разграничительную линию между ними.

Различия в трактовке понятия «алгоритм»
в информатике и медицине


В информатике (computer science) алгоритм — формальное понятие, заданное вычислительными моделями Тьюринга, Поста, Маркова, Колмогорова, RAM и др., образующее научный фундамент автоматической обработки данных на компьютерах.

Хотя алгоритм можно выполнить и вручную (например, при сложении «столбиком» и делении «уголком»), однако это не столь важно.

Научная ценность понятия «алгоритм» состоит в доказательстве возможности автоматической обработки информации.

Огромное значение для развития цивилизации имеет именно автоматическое, а отнюдь не ручное исполнение алгоритмов.

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

Перейдем к медицинским алгоритмам. Что такое алгоритм в клинической медицине? Это пошаговое описание действий врачей при решении лечебно-диагностических задач и вопросов врачебной практики.

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

Можно показать, что клинический алгоритм — фундаментальное понятие для здравоохранения, он является способом фиксации и передачи знаний, добытых медицинской наукой [17, с. 64, 289].

Вместе с тем у этого понятия есть недостаток, своего рода, «первородный грех»: клинический алгоритм… не является алгоритмом.

Жизнеритм. В самом деле, с точки зрения информатики, клинический алгоритм — это не алгоритм, а всего лишь жизнеритм. Последний имеет внешнюю форму алгоритма, но содержит не до конца определенные шаги.

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

Поэтому клинический алгоритм непригоден для исполнения на компьютере, он выполняется человеком (врачом).

Настоящий алгоритм содержит в себе все указания, необходимые для его выполнения.

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

Чем же отличается клинический алгоритм от настоящего алгоритма? Различия имеют фундаментальный характер.

Недостаток клинического алгоритма — отсутствие свойства определенности (детерминированности), которое является обязательным для алгоритмов.

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

Все это вносит неоправданные трудности в мышление врачей и служит одной из причин врачебных ошибок.

Пример клинического алгоритма

Петрович колол дрова, но поскользнулся и нечаянно отрубил себе палец. Что делать? Как спасти отрезанный палец (ампутат), который валяется на земле?

Ответ дает клинический алгоритм на рис. 153. Прочитайте его. На каждом шаге выполняется одно медицинское действие. Они выполняются последовательно, друг за другом и решают поставленную задачу.
Вложение:
Презентация 2.png
Презентация 2.png [ 157.31 КБ | Просмотров: 1654 ]
Рис. 153. Медицинский алгоритм «Действия при травматической ампутации частей тела»

Кто является исполнителем алгоритма? Кто будет выполнять команды? Компьютер? Вовсе нет.

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


Из этого рассказа проистекает вывод. Компьютер не может выполнить алгоритм на рис. 153. Это может сделать только человек. Следовательно, на рис. 153 изображен не алгоритм, а жизнеритм.

Недостаток понятия «алгоритм»

Мы показали, что термин «алгоритм» в научной и прикладной литературе используется неоднозначно. Необходимо различать:

 строгие алгоритмы, которые можно запрограммировать и автоматически исполнить на компьютере;

 нестрогие алгоритмы, выполнить которые способен лишь человек, а компьютер для этого непригоден.

Читатель должен знать, что сегодня даже в очень хороших книгах наблюдается неряшливость терминологии, когда разным вещам дают одинаковое имя. Подобная неаккуратность получила широкое распространение.

В литературе термин «алгоритм» зачастую используют для жизнеритмов: кулинарных и иных рецептов, для различных инструкций и даже для простейших предписаний, например:
 Уходя, гасите свет.
 Идти слева, стоять справа [18].

Алгоритм про попугаев, описанный в начале книги, также является жизнеритмом.

Алгоритмы и жизнеритмы

Настоящий алгоритм можно воспроизводить (повторять) сколько угодно раз с абсолютной точностью и без малейших отклонений. Возьмем для примера алгоритм сложения столбиком.

43
+
31
——
74

Выучив правила сложения в начальной школе, человек приобретает умение складывать числа с нужной точностью. Интересно, почему?

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

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

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

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

Чтобы назвать не полностью определенный алгоритм, выше предложен термин «жизнеритм» (liferithm).

Алгоритмическое предписание и жизнеритм

Математик Н. Н. Непейвода сформулировал важный для нас тезис:
Цитата:
«Необходимо различать алгоритм и алгоритмическое предписание, имеющее внешнюю форму алгоритма, но включающее не до конца определенные шаги» [95].

На эту тему существует литература, восходящая к пионерской работе Льва Ланды «Алгоритмизация в обучении» [19].
Цитата:
Приведем исходную формулировку Льва Ланды: «В отличие от алгоритмов в строгом математическом смысле, алгоритмические предписания допускают правила, которые обращены не только к формальным, но и к содержательным операциям… Понятие предписания алгоритмического типа является менее точным (в математическом смысле), чем понятие алгоритма» [65].

Ланда первым выявил различие между алгоритмом и алгоритмическим предписанием, но мы предпочитаем более точную формулировку Непейводы .

Тезис Ланды — Непейводы создает научный фундамент для четкого разграничения алгоритмов и алгоритмических предписаний.

Легко заметить, что жизнеритм и алгоритмическое предписание — одно и то же. Интересующий нас тезис Ланды — Непейводы для жизнеритмов приобретает следующий вид:

Формализация алгоритмических предписаний
и язык ДРАКОН


Вернемся к понятию «алгоритмическое предписание».
В настоящее время оно нередко плохо определено и имеет расплывчатый характер.

Ниже приводится ряд примеров, характеризующих разнобой мнений специалистов и неблагополучное положение в этой области.
Цитата:
«Алгоритмические предписания представляют собой указания учащимся последовательности выполнения операций познавательной деятельности… алгоритмическое предписание — это конструктивная модель необходимой деятельности» [20].

Цитата:
«Алгоритмическое предписание указывает, ЧТО надо сделать, а вот КАК делать — обучаемый решает сам» [21].

Цитата:
«Алгоритмическое предписание допускает большую свободу в характере использования его студентами, а действия, которые описываются, являются вариативными и многозначными» [22].

Цитата:
«Алгоритмическое предписание… — система указаний, определяющая лишь общие направления поиска плана решения задачи (задания) и оставляющая большие возможности для самостоятельного решения ряда вопросов» [23].

Цитата:
«Под алгоритмическим предписанием понимается общепонятное предписание о выполнении в определенной последовательности элементарных операций для решения любой из задач, принадлежащих к определенному типу или классу… Алгоритмическое предписание должно обладать всеми свойствами математического алгоритма, т. е. определенностью (детерминированностью), массовостью и результативностью» [24].

Приведенные суждения свидетельствуют о том, что понятие «алгоритмическое предписание» является некорректным, неудовлетворительным. Оно нуждается в уточнении на основе разъяснения математика Н. Н. Непейводы и тезиса Ланды — Непейводы.

Выше мы предложили заменить громоздкое и сомнительное выражение «алгоритмическое предписание» на четко определенное понятие «жизнеритм».

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

 существующие алгоритмические предписания должны претерпеть значительные изменения и превратиться в эргономичные жизнеритмы высокой точности;

 следует осуществить стандартизацию записи алгоритмических предписаний. Для этого они должны быть изображены на языке ДРАКОН и соответствовать правилам языка ДРАКОН.

Термин «жизнеритм» рекомендуется использовать только для тех алгоритмических предписаний, которые записаны на языке ДРАКОН в точном соответствии с правилами этого языка.

Что такое определенность алгоритма

Определенность говорит о том, что каждое указание алгоритма должно быть точным, четким, однозначным и не оставлять места для случайных, произвольных толкований и действий. Как говорят специалисты, «неоднозначность толкования записи алгоритма недопустима» [25].

В тезисе Непейводы есть фраза «не до конца определенные шаги». Что это значит?

Смысл в том, что в жизнеритме (читай — в ущербном, неполноценном алгоритме) отсутствует надлежащий порядок.

Некоторые правила описания и выполнения шагов алгоритма или не указаны, или неизвестны, или недоступны.

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

Более того, некоторые читатели жизнеритма испытывают трудности и могут понять его смысл неправильно, неоднозначно и даже превратно.

Что такое высокая точность

Итак, жизнеритм не обладает свойством определенности (однозначности), которое является обязательным для алгоритмов.

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

Эта цель достигается с помощью языка ДРАКОН. Он позволяет осуществить приближение к идеалу, т. е. значительно повысить определенность (точность) жизнеритмов. Благодаря ДРАКОНу некачественные жизнеритмы превращаются в жизнеритмы высокой точности.

Оговоримся. Здесь есть принципиальное ограничение. Выше головы не прыгнешь. Жизнеритмы содержат не до конца определенные шаги.

Исправить этот дефект невозможно. Это значит, что жизнеритмы никогда не смогут превратиться в алгоритмы.

Однако с помощью ДРАКОНа их можно улучшить, облагородить и сделать пригодными для решения сложных практических задач и предотвращения ошибок.

В таком случае говорят, что жизнеритмы обрели высокую точность.

Выводы

1. Необходимо различать алгоритмы и жизнеритмы.

2. Все шаги алгоритма строго определены.

3. У жизнеритма некоторые шаги не полностью определены.

4. Алгоритм можно запрограммировать и автоматически исполнить на компьютере.

5. Жизнеритм нельзя запрограммировать и исполнить на компьютере.

6. Жизнеритм может исполнить только человек.

7. Вместо громоздкого и устаревшего термина «алгоритмическое предписание» рекомендуется использовать краткий термин «жизнеритм».

8. Жизнеритм не обладает свойством определенности, которое является обязательным для алгоритмов.

9. Создать жизнеритмы высокой точности — значит приблизить их свойства к свойствам алгоритмов.

10. Язык ДРАКОН позволяет превратить некачественные жизнеритмы в жизнеритмы высокой точности.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB