Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по информатике1.docx
Скачиваний:
1
Добавлен:
15.04.2019
Размер:
99.25 Кб
Скачать

5 Билет.

Понятия алгоритма. Системы текстовых замен.

Алгоритм - этап для автоматизированного решения задач.

Алгоритм-способ описания сложных процессов любой природы

Форма изложения научных результатов

Способ обоснования математики

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

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

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

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

Основные свойства - Массовость, результативность и детерминированность.

Массовость -Алгоритм может использовать домножество для набора из множества допустимых исходных данных.

Результативность - потенциальная выполнимость алгоритма без ограничения по времени.

Детерминированность - однозначность шагов.

Системы текстовых замен.

Пусть алгоритм на входе и на выходе работает со словами из множества над некоторым набором символов V. Тогда простейшим способом обработки такой информации является замена определенных подслов (образцов) другими словами. Такой подход приводит к записи алгоритма в форме системы текстовых замен (СТЗ)

СТЗ – это конечное множество замен R над множеством символов Vє

Пара (v,w) є X называется заменой над V. Часто такую замену записывают, как v->w

Конечное множество таких замен R – СТЗ

Элементы этой СТЗ – правила текстовых замен, следовательно отдельные шаги алгоритма – применение правил из СТЗ.

Замена s->t называется применением правила v->w, если имеются слова: a,v,w,z є такие, что справедливо соотношение:

s=a°v°z

t=a°w°z

(°-конкатенация, присоединение)

Пусть есть правило замены Н->РАБ

S = БАНАН

Таким образом a=БА, v=Н, w=РАБ, z=АН. Результатом применения правила станет замена:

БА°Н°АН -> БА°РА°БАН

Однако, если a=БАНА, v=Н, w=РАБ, z=пустое множество, то

БАНА°Н=…

Слово s є называется терминальным, если не существует слова t є , такого, что справедливо следующее: замена s->t является применением некоторого правила из СТЗ R, таким образом к терминальному слову s нельзя больше применить никакого правила

Послед. применение правил приводит к понятию вычислению Если є и есть применение правил r из R для всех i, 0<=i<n, то последовательность называют (конечным) вычислением над R для

Вычисления: Слово – вход для вычислений. – выход для вычислений.

Если – терминал, то это завершающееся конечное вычисление с выходом

Бесконечное вычисление из слов , для которых явл. применением какого-то правила из множества R для всех , назыв. не завершающимся (бесконечным) вычислением.

Для СТЗ Q над множеством символов {L,O}, которая состоит из след. правил

LL->пустое множество

О->пустое множество

Через последовательность LOLL -> LO -> L задается завершающееся вычисление для входного слова LOLL с результатом L

Для СТЗ над {L,O}, состоящей из правил

O->OO

O->L

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

O->OO->OL->LL

Так и не завершающееся вычисление

O->OO->OOO->OOOO->…

Для входного слова t, алгоритм можно записать следующим образом:

«Если одно из правил множества R применимо к слову t (то есть существует слово sє , для которого имеет место: t->s есть применение правила из R), то примени правило к t и затем примени этот же алгоритм к слову s, в противном случае прекрати выполнение алгоритма». Слово t – вход для алгоритма. Если в результате получается терминальное слово, то алгоритм завершающийся.

Натуральные числа записываются с помощью последовательности штрихов:

<|||..||>

Сложение двух натуральных чисел:

>+< -> пустое множество

<||> + <|||> -> <|||||>

Умножение двух натуральных чисел:

Вспомогательные знаки d,e,m:

1. |>*< -> >*<d

2. d| -> |md

3. dm -> md

4. d> -> >

5. <>*< -> <e

6. e| -> e

7. em -> |e

8. e> -> >

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

Марков разработал специальную стратегию применения правил из СТЗ, которая позволяет получать алгоритмы термистические и детерминированные.

Его стратегия сводится к следующему:

- если применимо несколько правил, то следует применить то из правил, которое встречается в описании СТЗ первым

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

На множестве символов:

¬,ν, (, ), false, true, ε, построена СТЗ, содержащая 8 правил:

1. ¬¬ -> ε

2. ¬true -> false

3. ¬false -> true

4. (true) -> true

5. (false) -> false

6. false ν -> ε

7. ν false -> ε

8. true ν true -> true

Каждый детерминированный алгоритм в форме СТЗ на последовательностях слов определяет отображение (⊥ - «дно»), вследствие следующих правил:

1) , если r – результат конечных вычислений по алгоритму R для входного слова t

2) , если вычисление по R для входного слова t не заканчивается

Тогда мы говорим: алгоритм R вычисляет функцию

Все три подхода дают эквивалентные результаты, следовательно они справедливы.