Файл: Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.08.2024
Просмотров: 45
Скачиваний: 0
Г |
IB - |
* «■> |
Вариант работы поясняется следующей таблицей (чертой обозначена головка).
Такты
0 I 2
Э
Символы на ленте |
Управ |
|
ляющий |
||
|
||
|
сигнал |
... О Ш О О О ... |
% № |
|
|
|
|
. . . • О Ш О О О |
... |
$ < о л |
... О Ш О О О |
... , |
у * о л |
••• ОІІОООО |
•• |
|
Машина Тьвринга представляет собой полезную научную абстрак
цию. Пользуясь этим понятием, можно доказать алгоритмическую разрешимость различных задач в том смысле, что для их реше ния может быть построен соответствующий алгоритм.
Для машины Тьюринга характерна чрезвычайная расчленен
ность элементарных действий, по сравнению с элементарными
операциями, выполняемыми, например, ЦВМ.
Более принципиальное ее отличие от ЦВМ заключается в
бесконечности ленты, то есть памяти. Обычно эту идеализацию отождествляют с абстракцией потенциальной осуществляемостк, позволяющей отвлекаться ст ограниченности наших пространст-
венно-вреііенных возможностей и утверждать возможность беско нечного увеличения памяти и быстродействия ЦВУ в дальнейшем.
Однако в свете реальных приложений теории алгоритмов го-
верить об алгоритмах, |
имеющих 10 |
шагов, вряд ли имеет |
смысл, |
|
так |
это число больше числа атомов в галактике, |
|
||
Еше |
одно отличие |
машины Тьюринга от ЦВМ заключается |
в |
- 19 -
том, что в реальной ЦВМ возможны статистические нарушения де терминированности (влияния помех).
Введение понятия машины Тьюринга сыграло важную роль в теории алгоритмов. С одной стороны, оно является одним из лучших уточнений понятия алгоритма, с другой - одним из пер вых прообразов (хотя и абстрактных) машин, могущих практичес ки решать любые алгоритмически разрешимые задачи. В некотором смысле ее можно рассматривать как прообраз современных ЦВМ.
§ 5. Алгоритмическая неразрешимость
Алгоритмическая неразрешимость является одной из цент ральных проблем в теории алгоритмов. Понятие алгоритмической неразрешимости СЕязано с отсутствием единого алгоритма реше ния задач некоторого класса. Однако отдельные задачи этого класса могут быть разрешены. Алгоритмическая неразрешимость . означает невозможность создания единого алгоритма, примени.- иого для решения любой задачи данного класса.
Возможность алгоритмической неразрешимости данного клас са задач означает, что существуют такие классы задач, для ре шения любой задачи которых нельзя составить единые программы (дане отвлекаясь от ограниченности быстродействия ЦВМ и объ ема ее ЗУ).
Впервые примеры алгоритмической неразрешимости были по строены Марковым и Постои в 1947 году; однако они были гро моздкими и включали сотни подстановок. Позднее ленинградский
- 20 -
математик Г.С. Цейтлин привел пример, насчитывающий лишь семь допустимых подстановок. Наряду с такими центральными проблемами теории алгоритмов, как уточнение понятий алгорит
ма', алгоритмической неразрешимости, в связи с проектированием ЦВМ возникли прикладные, такие, как конструирование алгорит
мов с учетом приспособленности их к операциям |
ЦВМ, скорос |
ти решения задач и устойчивости. |
|
Перейдем теперь к понятиям, касающимся некоторых вопро |
|
сов формальных языков для записи алгоритмов, |
так называемых |
алгоритмических языков. |
|
§ б. Элементы теории формальных языков
Разработка и применение алгоритмических языков базиру ется на математическом аппарате, разрабатываемом недавно возникшей и успешно развивающейся наукой - математической лингвистикой. Ниже рассматриваются основные понятия и неко торые результаты математической лингвистики, имеющие отно шение к разработке алгоритмических языков.'
Одной из задач математической лингвистики является соз дание математических моделей языка ( в частности, различных алгоритмических языков) с использованием аппарата, алгебры, математической логики, теории алгоритмов. Методика построе ния формальных моделей естественных языков, а также теорети ческиерезультаты математической лингвистики широко исполь зуются в теории алгоритмических языков программирования.
- 21 -
Рассмотрим кратко ряд понятий математической лингвистики. Язык, Функционирование систем обработки информации не
мыслимо без передачи информации о различных событиях. Еассмат-
.ривая более внимательно процесс передачи информации (речевой),
мокно придти к выводу, что он проходит в двух планах: выра жения и содержания. Содержание (смысл) представляет
ся и передается в форме некоторой последовательности физичес ких сигналов. Например, мысль, имеющая некоторый смысл, ко - яет быть выражена и на русском, и на английском языках.
План содержания можно рассматривать как некоторое мно
жество "рныслов", а план выражения - как некоторое множество “текстов". Между смыслами и текстами имеется вполне определен ное соответствие: каждому смыслу отвечает более или менее оп ределенная совокупность текстов. Правила, определявшие, ка кие тексты соответствуют таким смыслам, и образуют по сущест
ву то, что |
в обиходе принято называть языком. |
|
Итак, |
язык - это функция, которая каждому |
смыслу ставке |
в соответствие некоторое (конечное) множество |
синонимичны/: |
текстов.
Эта функция является эффективно вычисленной, поскольку язык представляет собой способ эффективного получения текс тов по заданным смыслам (функцию F (x) принято называть эф- - фективно вычисленной, если для нее указан вполне определен ный способ, позволяющий для любого значения X найти за ко
нечное число шагов значение F (x ), то есть если она может быть вычислена на машине).
Язык - это система, состоящая из объектов различных уровч
- 22
ней (словоформы, олова, предложения и т.д.), связанных в сис тему некоторыми мнокѳстваии правил. Эти объекты строятся как некоторые последовательности символов. Символы выбирается из конечного множества, называемого алфавитом.
Для каждого конкретного языка эти множества цепочек,по следовательностей символов задастся с помощью некоторых спе циальных систем правил, называемых грамматиками.
В математической символике изучается формальные грамиатики,-
Из яабора некоторых символов можно строить самые различ-
<а
ные цепочки-; некоторые цепочки в данном языке считается пра вильными', а некоторые неправильными. Формальная грамматика задает правильные цепочки, если имеет место одно из двух ус ловий:
1)для любой предъявляемой цепочки грамматика умеет ре шить-, является ли цепочка правильной, и может проанализиро вать эту цепочку;
2)грамматика умеет построить любуе правильную цепоч ку и не строит неправильных.
Грамматика первого типа называется распознающей, второ го типа - порождающей.
В формальных грамматиках все утверждения формулируетсяисключительно в терминах небольшого числа четко определенных и элементарных символов и операций.
■“ ■Теория формальных грамматик служит' основой теории -так
называемых контекстно-свободных-языков, к классу которых при-
9
надлежат различные алгоритмические языкя.
- 23 -
Наиболее широко в настоящее время в теории языков про
граммирования используется порождающие грамматики. Порождающая грамматика - это система, включающая следу
ющие части.
1. Основной (терминальный) словарь - набор исходных эле ментов, из которых строятся цепочки, порождаемые грамматикой.
2. Вспомогательный (нетерминальный) словарь - набор сим волов, которыми обозначаются классы элементов или цепочек -
инекоторые специальные элементы.
3.Начальный символ - выделенный нетерминальный символ, обозначающий совокупность всех тех языковых объектов, для описания которых предназначается данная грамматика.
4. Правила подстановки - выражение вида "Х-’ -У1' , что означает замену X на У, где X и У цепочки, содержащие любые терминальные и нетерминальные символы.
Правила подстановки позволяют Формировать алгоритмичес
ки (на вычислительной машине) правильные грамматически выра жения на-данном языке (сравните с нормальными алгоритмами
Маркова).. ■ Следует подчеркнуть, что порождающая грамматика не яв
ляется алгоритмом; правила подстановки - это не последова-
е . тельность, а совокупность разрешений. Это означает, что пра
вила |
вида |
Х-^У понимаются в грамматике как "X можно заменить |
|
на У" |
(а |
можно ,.е заменять), и порядок применения правил про |
|
извольный |
в отличие |
от алгоритмов. |
|
|
Рассмотрим еще |
понятия выводимости и вывода, на базе ко |
торых можно дать определение языка, порождаемого грамматикой.
Если имеется две цепочки X и 7, |
причем X |
~Z,A Z z , |
а |
||
2 T - W 3 и есть в грамматике правило |
А -^В, то говорят, |
что |
|||
7 непосредственно выводима в данной грамматике |
за |
один шаг |
|||
из X. |
|
|
|
|
|
Если имеется последовательность цепочек XQ, Xj........ |
ХЛ , |
||||
в которой каждая последующая цепочка выводима из Х0, то 1/г |
|||||
выводима из XQ. Последовательность Х0, Х р . . . , |
Хд |
называет |
|||
ся выводоіи |
|
|
|
|
|
Совокупность всех |
цепочек, состоящих из терминальных |
||||
символов, выводимых из |
начального символа в данной граммати- |
ке, называется языком, порождаемым данной грамматикой.
Язык, таким образом, - это множество цепочек, выводов,
порождаемых данной грамматикой.
Существует несколько типов грамматик, среди которых для
теории языков программирования наибольший интерес представ ляют так называемые контекстно-свободные грамматики (КС-граы- натики), порождающие контекстно-свободные языки.
Терминальная цепочка X может иметь вид Z,CZS . Тогда правило ZtCZ2 ~*~Z, WZz означает разрешение заменить С на
Wтолько в данном контексте Z ,......Ег .
Сам кон-текст при замене переписывается без изменения. Правила замена, используемые контекстом, называются контекст но-связанными, а правила, в которых замена производится без использования контекста, называются контекстно-свободными.
Грамматики, -содержащие только контекстно-свободпые пра вила'5, называются контекстно-свободными, или КС-граыаатикаіш. В левой части правила подстановки X -*-У стоит один символ'