
- •Нижегородский государственный университет им. Н.И. Лобачевского
- •1.Предисловие
- •2.Замечания по терминологии
- •3.Кибернетика и информатика
- •4.Предпосылки информатики
- •4.1.Мечта человека об искусственном человеке
- •4.2.Усилители физической и умственной деятельности человека
- •4.3.Ключевые проблемы информатики
- •5.Формализация естественного языка как средства общения.
- •6.Формализация физических характеристик среды обитания
- •6.1.Дискретные и непрерывные множества
- •6.2. Понятия измерительной шкалы, числа и измерения
- •6.3.Натуральное число
- •6.4.Позиционная система счисления
- •6.5.Натуральная числовая прямая
- •6.6.Целые числа (положительные и отрицательные)
- •6.7.Вещественные числа
- •7.Формализация физических зависимостей
- •7.1.Функции
- •7.2.Элементарные функции
- •7.3.Элементарная алгебра, аналитические и численные вычисления
- •8.Аналоговые и цифровые вычислители
- •9.Простейшие вычислители
- •9.1.Аналоговые вычислительные линейки
- •9.2.Цифровой абак и русские счеты
- •9.3.Цифровые механические арифмометры
- •9.4.Хронология событий.
- •10.Аналитические машины Чарльза Беббиджа.
- •11.Формализация рассуждений
- •11.1.Логика рассуждений
- •11.2.Логические функции и алгебра логики
- •11.3.Алгебра логики и алгебра релейно - контактных схем
- •12.Накануне компьютерной эры
- •12.1. Зарождение цифровых систем управления
- •12.2.Перфокарточные сортировальные машины
- •12.3.Методология моделирования
- •13.Теоретические модели вычислений
- •13.1.Алгоритм и его свойства
- •13.2.Проблема слов в ассоциативном исчислении
- •13.3.Нормальный алгоритм Маркова
- •13.4.Рекурсивные функции
- •13.5.Машина Тьюринга
- •13.6.Равнодоступная адресная машина
- •14.Пионеры зарубежной компьютеризации
- •15.Становление информатики в России. Борьба за признание
- •16.Два типа электронных вычислительных машин
- •16.1.Аналоговая вычислительная машина (авм)
- •16.2.Цифровая электронная вычислительная машина (компьютер, эвм)
- •16.3.Аналог или цифра
- •17.Пионеры отечественной компьютеризации
- •18.Становление информатики в России. Начальный период
- •19.Оригинальные отечественные серийные эвм (компьютеры)
- •19.1.Эвм Стрела
- •Элементная база
- •Программное обеспечение
- •Описание машины
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.2.Семейство эвм "м-20"
- •Структура эвм
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности машины
- •Об использовании эвм м-20
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.3.Семейство эвм "бэсм"
- •19.3.1.Бэсм-1
- •Структура эвм
- •19.3.2.Бэсм-2
- •Структура эвм
- •19.3.3.Бэсм-4
- •Структура эвм
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •19.4.Семейство эвм "Минск"
- •19.4.1.Минск-1
- •19.4.2.Минск-2
- •19.4.3.Минск -22
- •19.4.4.Минск-23
- •19.4.5.Минск-32
- •Описание машины
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.5.Семейство эвм "Урал"
- •19.5.1.Урал-1, Урал-2, Урал-3, Урал-4
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Основные эксплуатационно-технические данные
- •Особенности эвм
- •19.5.2.Урал-11, Урал-14, Урал-16
- •Описание машины
- •Элементная база
- •Программное обеспечение.
- •Основные эксплуатационно-технические данные машины “Урал-11”
- •Особенности эвм
- •19.6.Эвм "Весна" и "Снег"
- •19.7.Эвм бэсм-6
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности машины
- •19.8.Многопроцессорные вычислительные комплексы "Эльбрус"
- •Описание машины.
- •Элементная база
- •Программное обеспечение
- •Типовые комплектации
- •Производительность
- •19.9.Управляющие эвм
- •20.Эволюция элементарной базы и поколения эвм
- •20.1.Базисные логические элементы
- •20.2.Элементы регистровой памяти
- •20.3.Элементы памяти на магнитных сердечниках.
- •20.4.Интегральные схемы
- •20.5.Поколения эвм
- •21.Американская система ibm-360
- •22.Семейство Ряд "ес эвм"
- •22.1.Хронология создания
- •22.2.Ес эвм. Крупнейший промах или всеобщее счастье?
- •23.Автоматизация программирования
- •23.1.От двоичных кодов к ассемблерам - языкам символьного кодирования
- •Ассемблеры
- •Программы - загрузчики
- •23.2.Языки программирования высокого уровня
- •23.3.Трансляция программ
- •24.Первые компьютеры Сарова
- •25.Начало компьютеризации Нижегородского госуниверситета
- •26.Они были первыми
- •26.1.Конрад Цузе
- •26.2.А лан Тьюринг
- •26.3.Джон Маулчи и Джон Эккерт
- •26.4.Джон фон Нейман
- •26.5.А ксель Берг
- •26.6.В иктор Глушков
- •26.7.Сергей Лебедев
- •26.8.Исаак Брук
- •26.9.Николай Матюхин
- •26.10.Михаил Карцев
- •26.11.Юрий Базилевский
- •26.12. Башир Рамеев
- •26.13.Георгий Лопато
- •26.14. Всеволод Бурцев
- •27.Приложения
- •27.1.Основные черты кибернетики
- •27.1.1.Общенаучное значение кибернетики
- •27.1.2.Электронные счетные машины и нервная система
- •27.1.3.Прикладное значение кибернетики
- •27.2."Сигнал" Игоря Полетаева
- •27.3.Хронология компьютеростроения
- •Литература
- •Оглавление
13.Теоретические модели вычислений
Неформально, вычислимая функция – это такая функция, для которой существует вычисляющий ее значения алгоритм [В.А. Успенский. Лекции о вычислимых функциях. Гос. изд-во ф.м. л-ры, М.: 1960]. Понятия алгоритма и вычислимой функции являются одними из центральных понятий современной математики. Их роль в математике XX века, пожалуй, можно сравнить с ролью понятия множества в математике конца XIX века.
13.1.Алгоритм и его свойства
Под алгоритмом интуитивно понимается некоторое формальное предписание, действую согласно которому, можно получить нужное решение задачи. Такая формулировка, разумеется, не претендует на точность, а скорее выражает то интуитивное представление об алгоритме, которое сложилось еще в древности.
Примечание. Термин "алгоритм" происходит от имени средневекового математика Аль-Хорезми, который еще в IX веке описал правила выполнения четырех арифметических операций в десятичной системе счисления. Очевидно, что на эти правила являют собой формальные предписания, которые всегда одинаково выполняются исполнителем (человеком или компьютером).
Более строго, с математической точки зрения, понятие численного алгоритма объясняется следующим образом. Существует декларативная математическая модель – моделирующая числовая функция f которая представляет свойства некоторого объекта прототипа:
f: X Y (38)
Здесь, X обозначает числами априорно известные свойства объекта прототипа, Y – обозначает числами априорно неизвестные свойства объекта прототипа. Функция f представляет зависимость априорно неизвестных свойств от заданных априори свойств объекта-прототипа.
Примечание. Формат моделирующей числовой функции может быть различным: формула и система формул; уравнения и система уравнений и т.д.
С учетом вышесказанного, численный алгоритм определяется как пошаговый способ определения значения моделирующей числовой функции () в точке посредством пошагового преобразования значения аргумента X (символьная строка) в значение функции Y (символьная строка). В большинстве случаев в качестве числовых моделирующих функций используются элементарные вещественные функции, и численный алгоритм определяет для каждой конкретной совокупности значений аргументов конкретную последовательность выполнения арифметических операций, вычисляющих конкретное значение функции.
Пример. Алгоритм численного сложения преобразует две символьных записи слагаемых в символьную запись результата.
Первые алгоритмы были придуманы для решения численных задач типа умножения чисел, нахождения наибольшего общего делителя, вычисления тригонометрических функций и других. Сегодня в равной степени важны и нечисленные алгоритмы; они разработаны для таких задач, как, например, поиск в тексте заданного слова, планирование событий, сортировка данных в указанном порядке и т.п. Нечисленные алгоритмы оперируют с данными, которые не обязательно являются числами.
Нечисленный алгоритм также определяется как пошаговый способ вычисления моделирующей функции, аргументы и значение которой не могут быть интерпретированы как числа.
Пример нечисленного алгоритма. [М.А. Айзерман, Л.А. Гусев и др. Логика, автоматы, алгоритмы. Гос. изд-во ф.м. л-ры, М.: 1963]. Лабиринт Минотавра. Согласно мифу, на Крите когда-то царствовал правитель Минас — царь, законодатель, глава морской державы. Пасифая, жена Миноса, воспылала безумной страстью к быку и навлекла на остров бедствия, породив чудовищного Минотавра. У Миноса был подземный дворец — Лабиринт, из которого найти выход было невозможно. Царь заключил ужасное чудовище в Лабиринт. Раз в девять лет Минос отдавал ему на съедение семерых юношей и девушек. Афинскому герою Тесею удалось убить Минотавра и выйти из Лабиринта с помощью клубка ниток, который дала ему дочь Миноса и Пасифаи Ариадна.
Математическая модель лабиринта (декларативная) может быть представлена в виде графа (рис.48). Вход в лабиринт – вершина A, выход из лабиринта – вершина F. Предполагается, что заранее неизвестно устройства лабиринта. Алгоритм прохождения по лабиринту мыслится в виде общего метода поиска пути из A в F, пригодном для любого лабиринта.
.
Рис. 48. Граф лабиринта Тезея
Рассмотрим один из методов поиска пути в лабиринте. Тезей имеет в своем распоряжение свернутую в клубок нить, конец которой закреплен в вершине A. Двигаясь по коридору, Тезей может разматывать нить с клубка и сматывать ее на клубок. предполагается также, что он может делать отметки на проходимых коридорах:
Отметки проходимых коридоров:
зеленый - ни разу ни пройден;
пройден один раз - желтый;
пройден дважды - красный.
Действия: находясь в какой-либо вершине можно совершить два действия:
а) разматывание нити до смежной площадки, коридор помечается желтым;
б) наматывание нити до возвращения к последней пройденной площадке, коридор помечается красным;
Ситуации.
1) площадка F достигнута;
2) петля - от данной площадки расходятся по крайней мере два желтых коридора;
3) зеленая улица - от данной площадки отходит по крайней мере один зеленый коридор;
4) исходная площадка A;
5) отсутствие всех предыдущих признаков.
Метод поиска задается следующей таблицей решений.
Выбор |
Признак |
Действие |
1 |
Площадка F |
Останов -удача |
2 |
Петля |
Наматывание нити |
3 |
Зеленая улица |
Разматывание нити |
4 |
Площадка A |
Останов - неудача |
5 |
Все стальное |
Наматывание нити |
На основании приведенной выше таблице решений нетрудно записать алгоритм и его программную реализацию.
begin Тек_состояние:="A";
Флаг:=1;
while Флаг=1 do
begin
case Выбор of
2: Тек_состояние : наматывание нити;
3: Тек_состояние : разматывание нити;
5: Тек_состояние : наматывание нити;
else Флаг:=0;
end;
if Выбор=1 then Останов_удача;
if Выбор=4 then Останов_неудача;
end.
Относительно предложенного метода поиска пути можно доказать справедливость трех утверждений.
Первое. При любом взаимном расположении A и F после конечного числа шагов наступит останов либо в A либо в F.
Второе. Если остановка наступит в F - цель достигнута и нить протянута по простому пути из A в F.
Третье. Если останов в A – вершина F недостижима.
Пример трассировки алгоритма.
№ шага |
Признак |
Действие |
Коридор |
Цвет коридора |
1 |
Зеленая улица |
Разматывание |
AB |
Желтый |
2 |
Зеленая улица |
Разматывание |
BC |
Желтый |
3 |
Зеленая улица |
Разматывание |
CD |
Желтый |
4 |
Зеленая улица |
Разматывание |
DH |
Желтый |
5 |
Зеленая улица |
Разматывание |
HJ |
Желтый |
6 |
Остальное |
Наматывание |
IH |
Красный |
7 |
Остальное |
Наматывание |
HD |
Красный |
8 |
Зеленая улица |
Разматывание |
DB |
Желтый |
9 |
Петля |
Наматывание |
BD |
Красный |
10 |
Зеленая улица |
Разматывание |
DF |
Желтый |
11 |
Площадка F |
Останов |
|
|
Существенно, что не всякая совокупность правил преобразования символьных строк может называться алгоритмом. Ниже приводятся три свойства, которые присущи алгоритму.
Детерминированность алгоритма предполагает однозначность и непротиворечивость предписаний исполнителю этого алгоритма. Говоря другими словами, сколько бы раз различные исполнители ни применяли алгоритм к одним и тем же исходным данных – результат работы алгоритма будет один и тот же.
Массовость алгоритма предполагает, что существует область допустимых данных алгоритма, на которой он дает правильный результат.
Результативность алгоритма предполагает, что при любом значении из области допустимых исходных данных алгоритм дает правильный результат за конечное число шагов.
Из свойств результативности алгоритма естественно вытекает понятие области применимости алгоритма. Областью применимости алгоритма называется такая наибольшая область начальных данных, на которой алгоритм результативен.
Описанный алгоритм поиска в лабиринте: массовый и результативный. Но не детерминированный: если существует несколько зеленых коридоров и допустим выбор любого. Детерминированность достигается за счет уточнения: из нескольких зеленых коридоров выбирается первый по часовой стрелке.
Существенная характеристика алгоритма – временная сложность, т.е. время, затрачиваемое алгоритмом как функция размера задачи. Подробное обсуждение этого вопроса выходит за рамки настоящего издания.
Резюме. Алгоритм – пошаговое преобразование исходной символьной строки (набор входных данных) в результирующую символьную строку (набор выходных данных) по правилам, которые по сути дела и являют собой существо алгоритма. Если исходная и символьная строка представляют собой числа, представленные в позиционной системе счисления, то пошаговое преобразование – последовательность арифметических операций. В этом случае говорят о численном алгоритме. В противном случае строки рассматриваются как последовательности символов, а операции – как преобразования строк на символьном уровне. В этом случае говорят о нечисленном алгоритме.
Рассматриваемые ниже модели вычислений отличаются друг от друга спецификой задания преобразований символьных строк.