
- •1. Основные понятия теории графов, удаленность вершины, центр, радиус и диаметр графа.
- •2. Способы задания графов, свойства матриц смежности и инциденций, теорема о рукопожатиях.
- •3. Основные операции над графами, неравенства для числа вершин, ребер и компонент связности графа.
- •4. Типы графов, дополнительные графы, двудольные графы, критерий двудольности.
- •5. Обходы графов: эйлеровы цепи и циклы, необходимые и достаточные условия их существования, алгоритм Флери.
- •6. Обходы графов: гамильтоновы цепи и циклы, достаточные условия их существования.
- •7. Деревья, их свойства, кодирование деревьев, остовные деревья.
- •8. Экстремальные задачи теории графов: минимальное остовное дерево, алгоритмы Прима и Краскала.
- •9. Экстремальные задачи теории графов: задача коммивояжера, «жадный» алгоритм
- •10. Экстремальные задачи теории графов: задача о кратчайшем пути, алгоритм Дейкстры.
- •11. Изоморфизм и гомеоморфизм графов, методы доказательства изоморфности и неизоморфности графов.
- •12. Плоские укладки графов, планарные графы, критерий Понтрягина-Куратовского.
- •13. Необходимые условия планарности, формула Эйлера для планарных графов.
- •14. Правильные вершинные раскраски графов, хроматическое число, неравенства для хроматического числа.
- •15. Теорема о пяти красках, гипотеза четырех красок, «жадный» алгоритм.
- •16. Хроматический многочлен, его нахождение и свойства.
- •17. Задача о поиске выхода из лабиринта, реберная раскраска графа.
- •18. Ориентированные графы, источники и стоки, топологическая сортировка, алгоритм Демукрона.
- •19. Составление расписания выполнения комплекса работ в кратчайшие сроки методами теории графов.
- •20. Элементарные булевы функции и способы их задания (табличный, векторный, формульный, графический, карта Карно).
- •21. Существенные и фиктивные переменные булевых функций, основные тождества, эквивалентные преобразования формул.
- •22. Линейные и нелинейные полиномы Жегалкина, разложение булевых функций в полином Жегалкина методом неопределенных коэффициентов.
- •23. Линейные и нелинейные полиномы Жегалкина, разложение булевых функций в полином Жегалкина методом эквивалентных преобразований.
- •24. Разложение булевых функций в сднф и скнф.
- •25. Минимизация днф и кнф методом эквивалентных преобразований.
- •26. Минимизация днф и кнф с помощью карт Карно.
- •27. Замкнутые классы булевых функций т0, т1, l, лемма о нелинейной функции.
- •28. Замкнутые классы булевых функций s и м, леммы о несамодвойственной и немонотонной функции.
- •29. Полная система функций, теорема о двух системах булевых функций.
- •30. Теорема Поста о полноте системы булевых функций, алгоритм проверки системы на полноту, базис.
- •31. Схемы из функциональных элементов, правила построения и функционирования, метод синтеза сфэ, основанный на сднф и скнф.
- •32. Метод синтеза сфэ, основанный на компактной реализации всех конъюнкций с помощью универсального многополюсника, сложность получаемых схем.
- •33. Основные комбинаторные операции, сочетания и размещения (с возвращением и без возвращения элементов).
- •34. Комбинаторные принципы сложения, умножения, дополнения, включения-исключения.
- •35. Биномиальные коэффициенты, их свойства, бином Ньютона.
- •36. Треугольник Паскаля, полиномиальная формула.
- •37. Алфавитное кодирование: необходимое и достаточные условия однозначности декодирования.
- •38. Алфавитное кодирование: теорема Маркова, алгоритм Маркова.
- •39. Коды с минимальной избыточностью (коды Хаффмана), метод построения.
- •40. Линейные коды, порождающая матрица, двойственный код.
- •41. Самокорректирующиеся коды (коды Хэмминга), метод построения.
- •42. Определение, схема и функционирование абстрактного автомата, способы задания автоматов.
- •43. Типы конечных автоматов, автоматы Мили и Мура, автоматы-генераторы.
- •44. Слова и языки, операции над ними, их свойства.
- •45. Регулярные выражения и регулярные языки, теорема Клини.
- •46. Задача анализа автоматов-распознавателей.
- •47. Задача синтеза автоматов-распознавателей.
- •49. Эквивалентные состояния автомата-преобразователя, эквивалентные автоматы- преобразователи, минимизация автоматов- преобразователей, алгоритм Мили.
- •50. Детерминированные и недетерминированные функции, примеры, способы задания.
- •51. Ограниченно-детерминированные (автоматные) функции, способы их задания.
- •52. Логические автоматы, способы их задания, синтез двоичного сумматора.
- •53. Операции над логическими автоматами: суперпозиция и введение обратной связи.
43. Типы конечных автоматов, автоматы Мили и Мура, автоматы-генераторы.
Определение. Конечным автоматом (или автоматом Мили) называется система из пяти компонент (А, В, V, f, g), где А и В – это входной и выходной алфавиты автомата, V – множество его состояний, f – функция выходов, а g – функция переходов автомата, причем все множества А, В и V конечны.
Определение. Любую конечную последовательность символов из входного или выходного алфавитов называются соответственно входным и выходным словом. Множество всех входных слов обозначим через А*.
Определение. Любое подмножество множества А* называется языком.
Автоматы-распознаватели, автоматы-преобразователи и автоматы-генераторы – конечные детерминированные автоматы.
Автоматы-распознаватели. Основной особенностью этих автоматов является то, что множество их состояний V всегда разбивается на два непересекающихся класса: F и V \ F. Все состояния из класса F считаются особыми и называются заключительными состояниями. Если на вход такому автомату подать слово w, составленное из символов алфавита А, то может оказаться, что автомат завершит работу в одном из заключительных состояний. В этом случае будем говорить, что автомат распознает данное слово w. Все слова, которые распознает автомат, образуют подмножество множества А*, т.е. составляют некоторый язык L. Тогда про язык L говорят, что он распознается этим автоматом, или что данный автомат распознает язык L. Поскольку считается, что такой автомат распознает слово w только тогда, когда он завершает работу над этим словом в одном из заключительных состояний, то о результате работы автомата мы судим лишь по его состоянию в момент завершения работы. При этом выходные символы, возникающие в процессе функционирования таких автоматов, особого значения не играют. Следовательно, можно игнорировать выходные сигналы или вообще убрать выходной канал. Поэтому автоматы-распознаватели иногда ещё называют автоматами без выходов. Их функционирование можно описать только одной функцией – функцией переходов. Из этого следует, что автомат-распознаватель – это система из четырех компонент : (А, V, F, g), где А – входной алфавит, V – множество всех состояний, F – множество заключительных состояний, а g – функция переходов. В диаграмме Мура такого автомата уже не нужно указывать выходные сигналы, а его таблица выходов и переходов преобразуется в более простую таблицу переходов.
Автоматы-преобразователи. В отличие от автоматов-распознавателей у них всегда задана функция выходов f. Автоматы-преобразователи посимвольно прочитывают входную последовательность и перерабатывают её в выходную последовательность такой же длины. Например, с их помощью можно моделировать процессы алфавитного кодирования информации. Любой автомат-распознаватель нетрудно превратить в автомат-преобразователь. Для этого достаточно считать, что выходной сигнал в конце каждого такта совпадает с входным сигналом в начале этого же такта, т.е. y(t) = x(t). Полученный таким образом автомат-преобразователь можно использовать для генерации слов, принадлежащих тому языку, который распознавался исходным автоматом-распознавателем. Когда мы рассматриваем какой-либо конкретный автомат-преобразователь, нам в первую очередь важно знать, какая последовательность получается на выходе этого автомата при заданной входной последовательности. Когда же мы исследуем автомат-распознаватель, нам важно знать лишь состояние, в котором этот автомат закончил работу над заданным словом. Таким образом, автоматы-преобразователи лучше подходят для описания вычислительных устройств, а автоматы-распознаватели – для описания устройств управления.
Среди автоматов-преобразователей особо выделяют автоматы Мура. Это автоматы, у которых функция выходов f не зависит от входного сигнала, т.е. f(ai, vj) = f(ak, vj) = bj В для всех ai, ak А и vj V. У автомата Мура для каждого t выход y(t) может зависеть от состояния автомата в начале этого t–го такта, т.е. от q(t – 1), но не должен зависеть от входного сигнала x(t). Образно говоря, выходные сигналы автомата Мура зависят от входных сигналов лишь с «запаздыванием».
В отличие от автомата Мили, в диаграмме автомата Мура метка на дуге – это не пара символов ai и f(ai, vj), а только один входной символ ai. При этом символом f(ai, vj) помечается сама вершина vj. Это объясняется тем, что, согласно определению автомата Мура, выходной символ f(ai, vj) совпадает у всех дуг, выходящих из одной и той же вершины vj. В следующем примере рассматривается простейший автомат Мура, который часто используется в качестве строительного блока для более сложных автоматов.
Автоматы-генераторы. Автономный автомат (автомат-генератор) – это автомат без входа. Он полностью определяется системой из пяти компонент (В, V, F, f, g), где В – выходной алфавит, V – множество всех состояний, F – множество заключительных состояний, а f и g – функции выходов и переходов, причем f и g являются функциями только одного аргумента – состояния автомата. Генераторы используются, например, для порождения символьных строк в алфавите В. Слово, порожденное автономным автоматом, – это последовательность выходных сигналов, которая образуется при завершении работы автомата в любом из заключительных состояний. Далее мы увидим, что при фиксированном начальном состоянии выходное слово, порожденное генератором, зависит лишь от продолжительности его работы. Меняя начальное состояние и (или) число рабочих тактов, можно породить некоторый язык из В*, т.е. набор слов в алфавите В.
Логические автоматы. Автоматы, у которых входной и выходной алфавиты и множество состояний образованы наборами из нулей и единиц фиксированной длины. Благодаря этому функции переходов и выходов автомата f и g можно считать логическими (булевыми) функциями. Схема из функциональных элементов – дизъюнкторов, конъюнкторов и инверторов – это логический автомат без памяти и, следовательно, с одним состоянием. Функциональный блок любого логического автомата можно «синтезировать» из функциональных элементов, а его память – из рассмотренных выше единичных задержек.