Компьютер как формальный исполнитель алгоритмов. Разнообразие исполнителей формальные исполнители автоматизация исполнители вокруг нас. Функции, вычислимые по Тьюрингу. Тезис Тьюринга

Рассмотрим процесс управления информационным процессом, в котором в качестве управляемого объекта выбран текст. Другими словами, рассмотрим информационный процесс, связанный с редактированием (изменением состояния) текста.
Во-первых , для того, чтобы преобразовать текст, должен существовать кто-то или что-то, который эти преобразования выполняет. Иными словами, необходим исполнитель этих преобразований.
Во-вторых , процесс преобразования текста необходимо разбить на отдельные операции, которые должны быть записаны в виде отдельных команд исполнителю. Каждый исполнитель обладает определенным набором, системой команд , которые он может выполнить. В процессе редактирования текста возможны различные операции: удаление, копирование, перемещение или замена его фрагментов. Исполнитель редактирования текста должен быть в состоянии выполнить эти операции.
В-третьих , должно быть определено начальное состояние объекта, в данном случае текста, и его требуемое конечное состояние (цель преобразования).
Будем говорить, что информационный процесс, обладающий всеми перечисленными выше свойствами, называется алгоритмом . Исполнитель может выполнить алгоритм, если команды алгоритма входят в систему команд исполнителя.
Например: пользователю необходимо отредактировать текст следующим образом:

1. Выделить символы с 1 по 15.

2. Вырезать этот фрагмент и поместить его в буфер.

3. Установить курсор на позицию после 7-го символа.

4. Вставить вырезанный фрагмент текста.

Этот алгоритм пользователь может выполнять формально. Пользователь в процессе выполнения алгоритма на компьютере будет нажимать клавиши клавиатуры, а при работе с графическим интерфейсом с помощью мыши активизировать те или иные кнопки, пункты меню и т.д. Факти­чески пользователь будет давать команды объектам программной средыWindows&Office, которые и будут исполнителями алгоритма.

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

14 Основные понятия алгоритмизации: формальные и неформальные исполнители алгоритмов.

Исполнитель - это некоторый объект (человек, животное, техническое устройство), способный выполнять определенный набор команд.
Команды, которые может выполнить конкретный исполнитель, образуютсистему команд исполнителя (СКИ).

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

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

Как правило, человек выступает в роли неформального исполнителя. Формальными исполнителями являются преимущественно технические устройства. Человек в роли неформального исполнителя сам отвечает за свои действия. За действия формального исполнителя отвечает управляющий им объект.

Управление - это процесс целенаправленного воздействия одних объектов на другие.

Исполнители являются объектами управления. Управлять ими можно, составив для них алгоритм.

Алгоритм - это предназначенное для конкретного исполнителя точное описание последовательности действий, направленных на решение поставленной задачи.

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

15 Алгоритмические конструкции: линейная, разветвление, циклы

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.

Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.

Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач...). Обычно мы выполняем привычные действия не задумываясь, механически. Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения: 1. Достать ключ из кармана. 2. Вставить ключ в замочную скважину. 3. Повернуть ключ два раза против часовой стрелки. 4. Вынуть ключ.

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

Свойства алгоритмов: 1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке); 2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае); 3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения); 4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными); 5. Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).

Виды алгоритмов: 1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке); 2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание); 3. Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий) 4. Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).

Для более наглядного представления алгоритма широко используется графическая форма - блок-схема , которая составляется из стандартных графических объектов.

Вид стандартного графического объекта

Назначение

Начало алгоритма

Конец алгоритма

Выполняемое действие записывается внутри прямоугольника

Условие выполнения действий записывается внутри ромба

Ввод-вывод

Стадии создания алгоритма: 1. Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает. 2. Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.

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

Исполнитель - объект, который выполняет алгоритм.

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

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

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

Компьютер – автоматический исполнитель алгоритмов.

Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.

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

Выделяют два типа исполнителей: формальные и неформальные .

Формальный исполнитель одну и ту же команду всегда выполняет одинаково.

Неформальный исполнитель может выполнять команду по-разному.

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

Как правило, человек выступает в роли неформального исполнителя.

Формальными исполнителями являются преимущественно технические устройства.

Человек в роли неформального исполнителя сам отвечает за свои действия.

За действия формального исполнителя отвечает управляющий им объект.

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

  1. Круг решаемых задач . Каждый исполнитель создается для решения определённого класса задач.
  2. Среда исполнителя . Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя.
  3. Система команд исполнителя . Предписание о выполнении отдельного законченного действия исполнителя называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует СКИ - систему команд исполнителя.
  4. Система отказов исполнителя . Отказ «не понимаю» возникает тогда, когда исполнителю подается команда, не входящая в его СКИ. Отказ «не могу» возникает тогда, когда команда из СКИ не может быть им выполнена в конкретных условиях среды.
  5. Режимы работы исполнителя . Для большинства исполнителей предусмотрены режимы непосредственного и программного управления. В первом случае исполнитель ожидает команд от человека и каждую поступившую команду немедленно выполняет. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Ряд исполнителей работает только в одном из названных режимов.

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

  • процесс решения задачи представляется в виде последовательности простейших операций;
  • создаётся машина (автоматическое устройство), способная выполнять эти операции в последовательности, заданной в алгоритме;
  • человек освобождается от рутинной деятельности, выполнение алгоритма поручается автоматическому устройству.

Основной вопрос: ?

Направляющие вопросы:

§ Какие бывают исполнители?

§ Что характеризует исполнителя?

§ Как сделать так, чтобы исполнитель понял и выполнил алгоритм?

Цели исследования:

§ Найти примеры различных исполнителей.

§ Определить чем отличаются исполнители.

§ Выяснить чем характеризуются исполнители.

§ Исследовать почему исполнители не всегда могут выполнить алгоритм.

§ Привести примеры алгоритмов и определить в них исполнителя.

Примеры исполнителей

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

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

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

Исполнители из сказок

Исполнители часто встречаются в сказках. В одной из них Иван-Царевич говорит Избушке-На-Курьих-Ножках: “Избушка, избушка! Встань к лесу задом, ко мне передом!”. При этом команда должна быть задана очень точно, чтобы исполнитель ее понял. В сказке “Али-Баба и сорок разбойников” волшебная дверь открывалась по команде “Сезам, откройся!”. Жадный Касым, тайно проникший в пещеру, забыл эту фразу и не смог выйти из пещеры.

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

Кто такой исполнитель?

Исполнитель алгоритма - это живое существо или технический объект, способный выполнить действия, предписываемые алгоритмом.

Исполнителями могут быть:

§ машины: станки, роботы, бытовые приборы (стиральная машина, магнитофон, плеер и т. п.), компьютеры;

§ растения: подсолнечник (разворачивается на солнце), кувшинки (закрываются на ночь);

§ животные: дрессированная собака (санитар, розыскная, охотничья), кошка;

§ люди: ученик, рабочий, солдат, учитель, ...

Все исполнители одинаковые?

Животные и человек как исполнители отличаются от всех остальных исполнителей тремя основными признаками:

§ Они понимают команды в различных вариантах (например "Сядь!", "Садись!", "Присядь!").

§ Они могут отказаться исполнять команду, если она им не нравится ("Ешь манную кашу!", "Выстрели в окно из рогатки!", "Отдай кость!"). То есть человек, и в определенной степени животное, обладают волей и отвечают за свои действия.

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

Исполнители бывают двух видов!

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

Формальные и неформальные

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

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

Если исполнитель вносит какие-то изменения в алгоритм (меняет последовательность шагов; пропускает какие-то, считая их ненужными или незначительными), то говорят, что такой исполнитель не формальный.

Характеристики исполнителя

Исполнитель, как и любой объект, имеет свои характеристики.

Исполнителя характеризуют:

§ СКИ (система команд исполнителя) - набор команд, которые исполнитель понимает и может выполнить.

Каждый исполнитель может выполнять команды только из некоторого строго заданного списка.

§ Среда - условия, в которых исполнитель может выполнять команды. Среду исполнителя можно назвать еще его «Местом обитания».

§ И отказы:

1. "Не понимаю" - данной команды нет в списке команд исполнителя, и он ее не понял. Вероятно, мы ошиблись в записи текста команды команда не входит в СКИ.

2. "Не могу" - исполнитель понял команду, но не может ее выполнить. Например, роботу дана команда “вперед”, а впереди стоит стенка и он не может идти. Или собаке скомандовали “Сидеть!”, а она уже сидит.

Как исполнитель сможет выполнить алгоритм?

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

Естественный язык (русский, английский, французский, ...) - основа основ полноценного общения людей.

Естественные языки образны и многозначны. Если заглянуть в толковый словарь русского языка , то можно узнать, например, что существует более 20 значений слова "идти". Вот только несколько примеров:�Человек идет по дороге; идет дождь; время идет; ей идет это платье; опята пойдут позже, в сентябре; давай, сходим завтра на рыбалку? - идет!

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

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

Деревянные сделки сегодня - это умирала - вырезка от сосновых фанеры, затем опустился в жидкие химикалии, которые производят легко зажженный, погашаемый совет.

А речь шла о простой деревянной спичке, но как было объяснить переводчику, что из всех значений слова "match" надо было выбрать не "сделка", а "спичка", из значений слова "tip" - "кончик", а не "совет", что "die" означает не только "умереть", но и "штамповать", не говоря уже о сложностях грамматических конструкций?

Что такое программа?

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

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

Чтобы научиться писать программы на том или другом языке, нужно изучить алфавит , словарь и грамматические правила, по которым строятся предложения в этом языке, при этом не допускаются никакие отклонения от правил написания слов и предложений, иначе исполнитель просто откажется выполнять ваши инструкции и не станет недоумевать и переживать за ошибки, как это делает приятель Мишки из стихотворения А. Шибаева:

Пришло письмишко мне,
Гляжу -
Из лагеря от Мишки...
Здесь чудный лук и я лижу,
-Написано в письмишке.
Лук лижет? Что за чудеса?
Наверно, шутит плут...
Читаю дальше:
Здесь лиса, красивый длинный прут...
На днях в лесу нашел я грусть
и очень был доволен...
Нет, нет, не шутит он! Боюсь,
Мой друг серьезно болен.
Вернется - надо подлечить:
Заставить правила учить…

§ Исполнители бывают двух видов: формальные и не формальные.

§ Исполнитель характеризуется системой команд, средой обитания и отказами.

§ Чтобы исполнитель понял нас необходимо написать алгоритм на языке исполнителя, то есть написать программу.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то