4 (1108003)
Текст из файла
Курс «Алгоритмы и алгоритмические языки»1 семестр 2015/2016Лекция 41Нормальные алгоритмы МарковаОпределение нормального алгоритма Маркова (НАМ)V – алфавит основных символовV′ – алфавит маркеровσ, σ′ ∈ (V ∪V′)*Подстановка: σ →σ′ переводитслово τ = ασβ ∈ (V∪ V′)* в слово τ′ = ασ′β ∈ (V∪ V')*подслова α и β могут быть пустыми (ε)Помимо символов алфавита V∪ V' в подстановках используютсяметасимволы «→» (стрелка) отделяет левую часть подстановки отправой и «.» (точка) отмечает терминальную подстановку2Нормальные алгоритмы МарковаПроцедура интерпретации НАМ(1)Положить i = 0.(2)Положить j = 1.(3)Если правило pj применимо к σi , перейти к шагу (5).(4)(5)Положить j = j + 1.
Если j ≤ n, то перейти к шагу (3).В противном случае – остановка.Применить pj к σi и найти σi+1. Положить i = i + 1.Если pj – нетерминальное правило, то перейти к 2.В противном случае – остановка.Говорят, что НАМ применим к слову σ0, если в результате произойдетостановка.Терминальное правило содержит метасимвол . (точка).Иногда вместо →. используется метасимвол3Нормальные алгоритмы МарковаПример.
Сложение чисел в единичной системе счисления:V = { +, | }, V' = { }.Правила подстановок: { | + → + |; + | → |; | →. | }Пример применения алгоритма:(1)«| | | | + | | + | | |» = «| | | | + | | + | | |» ⇒ «| | | + | | | + | | |»(1)(1)(1)(1)⇒ «| | + | | | | + | | |» ⇒ «| + | | | | | + | | |»(1)⇒ «+ | | | | | | + | | |» ⇒ «+ | | | | | + | | | |» ⇒ …(1)( 2)(2)⇒ «+ + | | | | | | | | |»⇒ «+ | | | | | | | | |» ⇒ «| | | | | | | | |» ⇒( 3)Первое правило «перегоняет» плюсы налево до упора, второе правилоих «стирает», третье правило «убеждается», что плюсов не осталось.4Нормальные алгоритмы МарковаЗаключительные замечанияТезис Маркова. Любой алгоритм в алфавите V может бытьпредставлен нормальным алгоритмом Маркованад алфавитом V.Примерно так же, как и для МТ, можно доказатьалгоритмическую неразрешимость проблемы останова исамоприменимости.Существуют различные НАМ решения одной и той же задачи.Проблема построения алгоритма, который может определитьэквивалентность любых двух НАМ, алгоритмическинеразрешима.Можно построить универсальный НАМ U, который мог быинтерпретировать любой нормальный алгоритм, включаясамого себя.5Заключительные замечанияМожно доказать эквивалентность двух формальных системТьюринга и Маркова конструктивным путем: построитьуниверсальную МТ, которая могла бы интерпретировать любойНАМ и, наоборот, построить универсальный НАМ, которыйинтерпретирует любую МТ.Существуют и другие формальные описания алгоритмов:машина Поста, λ-исчисление, рекурсивные функции и др.Для всех таких формальных систем доказана ихэквивалентность МТ.МТ невозможно реализовать на конечной машине: МТ с лентойконечных размеров не обеспечивает реализации всехалгоритмов.Тезис Тьюринга – Черча (основная гипотеза теорииалгоритмов).
Для любой интуитивно вычислимой функциисуществует вычисляющая её значения МТ.6Критика модели вычислений ТьюрингаМедленная (неускоряемая)частые копирования данных: у нормальных МТ каждоенеэлементарное действие выполняется над крайнимиправыми словами лентыотказ от нормальных вычислений приведет кпостоянному поиску данных и усложнит алгоритмчисло состояний МТ часто зависит от числа символовв алфавите МТ7Введение в язык программирования СиСхема простейшего компьютераПроцессорАЛУРегистрыШинаОсновнаяпамятьВнешниеустройства8Язык программирования СиСи разрабатывался как язык для реализации первойв мире универсальной операционной системы UNIX1973 – первая версия Си1978 – выход книги Б. Кернигана и Д.
Ритчи «Языкпрограммирования Си» (K&R C). Русский переводвышел в 1985 году.1989 – первый стандарт ANSI C (C89)1999 – стандарт C992011 – стандарт C11 (ранее назывался C1X)9Введение в язык программирования СиХарактеристики языка СиИмперативный языкУдобный синтаксисПозволяет естественно оперировать «машинными»понятиямиПереносимость на уровне исходного кодаКонфигурируемостьХорошие системные библиотекиХорошие оптимизирующие компиляторы10Первая программа на Си#include <stdio.h>int main (void){printf ("Hello, world\n");return 0;}Программа:объявления переменных или функцийопределения функций11Первая программа на Си#include <stdio.h>int main (void){printf ("Hello, world\n");return 0;}Директивы препроцессораСистемные библиотекиСтроковые константыУправляющие последовательности12.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.