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

23.Мера сложности

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

Под пространственной эффективностью понимают объём памяти, требуемой для выполнения программы.

Временная эффективность программы определяется временем, необходимым для ее выполнения.

Самым простым способом оценить алгоритм - сопоставить ему число элементарных операций в описании. При реализации это может быть число команд в программе или объём памяти, которую занимает программа. В этом случае оценка алгоритма A есть некоторое число k: (A) = k.

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

Свойство массовости алгоритма предполагает, что алгоритм будет использоваться для решения класса A подобных задач, с разными исходными данными. Поэтому более сложной оценкой будет оценка как функция свойства задачи. Cопоставим каждой задаче из класса задач, решаемым алгоритмом, некоторый вектор числовых параметров задачи N = (n1, n2, …, nt). В этом случае оценка (A(A)) = k(N), и это уже будет функция от параметров задачи.

Конечный автомат

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

Существуют различные варианты задания конечного автомата. Например, конечный автомат может быть задан с помощью пяти параметров: M = (Q, Е (почти как z перевернутая), б, q0, F), где

• Q — конечное множество состояний автомата;

• q0 — начальное (стартовое) состояние автомата (q0 принадлежит Q)

• F — множество заключительных (или допускающих) состояний, таких что F дуга вправо и подчеркивание Q;

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

• б — заданное отображение множества Q х Е во множество P(Q) подмножеств Q:

б: Q х Е -> P (Q)

(иногда б называют функцией переходов автомата).

Автомат начинает работу в состоянии q0, считывая по одному символу входной строки. Считанный символ переводит автомат в новое состояние из Q в соответствии с функцией переходов. Если по завершении считывания входного слова (цепочки символов) автомат оказывается в одном из допускающих состояний, то слово «принимается» автоматом. В этом случае говорят, что оно принадлежит языку данного автомата. В противном случае слово «отвергается».

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