Минимизация конечного автомата
Виды автоматов и содержание соответствующей теории, общая схема и базовые модели. Класс явно-минимальных и сократимых автоматов, их сравнительное описание и функциональные особенности, эквивалентные состояния и свойства. Результат работы программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.03.2018 |
Размер файла | 216,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Курсовая работа
Минимизация конечного автомата
Введение
автомат программа сократимый
Теория автоматов как научная дисциплина возникла в пределах теории управляющих систем (теоретической кибернетики) в середине ХХ века, в период начавшегося бурного развития средств электронной вычислительной техники и соответствующих областей математического знания. Потребовалась разработка теоретической базы для решения проблем, возникавших при проектировании реальных цифровых ЭВМ, а также в процессе построения и исследования гипотетических систем, таких как нейронные сети. В качестве моделей последних рассматривались конечные автоматы.
Развитие информационных технологий вывело сферу приложения теории автоматов далеко за рамки моделирования аппаратных средств цифровой электроники, расширив её до фундаментальных основ современной теоретической информатики. Сегодня абстракции и модели, разработанные в теории автоматов, востребованы такими научными дисциплинами как теория формальных грамматик, математическая лингвистика, теория логических моделей, математическая логика и формальные аксиоматические системы, теория кодирования, теория вычислительной сложности и другими. Наиболее тесно теория автоматов связана с теорией алгоритмов и, в частности, с таким её разделом как теория абстрактных машин.
В настоящее время существует ряд изданий учебного и учебно-методического назначения, в названиях которых содержится словосочетание «теория автоматов». Нередко эти издания носят синтетический характер, объединяя под одной обложкой как элементы самой теории автоматов, так и фрагменты перечисленных выше научных областей.
Целью данной курсовой работы является изучение основных положений теории автоматов, рассмотреть базовые модели теории, их построение и эквивалентность. Курсовая работа заключается в рассмотрении принципов минимизации конечного автомата на основе эквивалентных состояний.
1. Модели теории автоматов
1.1 Задачи теории автоматов. Виды автоматов
Предметом теории автоматов является изучение математических моделей преобразователей дискретной информации. В данной теории решаются следующие основные задачи: анализ и синтез автоматов, определение полноты, минимизация и эквивалентные преобразования автоматов. Дадим краткую формулировку каждой из перечисленных задач.
Задача анализа. По заданному автомату описать его поведение. Вариант постановки: по неполному описанию автомата установить некоторые его свойства.
Задача синтеза. Построить автомат с наперед заданным поведением (алгоритмом функционирования). Задачу синтеза принято рассматривать двояко: абстрактный синтез как построение математической модели автомата и структурный синтез как разработку функциональной логической схемы автомата.
Задача полноты. Пусть M - некоторое множество автоматов. Определить, обладает ли совокупность автоматов, составляющих подмножество M' Н M, свойством полноты. Иными словами, если ко всем автоматам подмножества M' конечное число раз применить операцию суперпозиции, совпадут ли M' и M?
Задача минимизации. Построить автомат, минимальный заданному. Минимальный автомат обладает наименьшим числом компонентов модели (в частности, минимальной мощностью множества так называемых состояний) и при этом функционально эквивалентен заданному автомату.
Задача эквивалентных преобразований. Определить полную систему правил, позволяющую преобразовывать произвольный автомат в любой эквивалентный ему автомат. Частным случаем данной задачи является переход от одной модели автомата к другой. Два автомата функционально эквивалентны, если их поведение одинаково при воздействии одних и тех же последовательностей входных сигналов. В таком случае говорят о совпадении моделей поведения двух автоматов.
В число основных понятий теории автоматов входят:
— абстрактный автомат (АА);
— композиция автоматов.
Понятие АА позволяет рассматривать дискретные устройства с точки зрения алгоритмов их функционирования, то есть реализуемых последовательностей действий по преобразованию дискретной информации.
Абстрактным автоматом называют модель, описываемую пятиместным кортежем:
А = (X, Y, S, fy, fs),
где первые три компонента - непустые множества:
X - множество входных сигналов АА,
Y - множество выходных сигналов АА,
S - множество состояний АА.
Два последних компонента кортежа - характеристические функции:
fy - функция выходов;
fs - функция переходов АА из одного состояния в другое.
Если множества X, Y, S - конечные, то такой АА называют конечным автоматом (КА). Если хотя бы одно из перечисленных множеств не является конечным, то такой АА называют бесконечным.
С целью классификации автоматов рассматривают ряд признаков, таких как определенность функции переходов и функции выходов, однозначность заданных функций, устойчивость состояний. Перечислим виды абстрактных автоматов, распределив их по трем классификационным признакам (рис. 1.1).
Рисунок 1. Классификация абстрактных автоматов
По определенности характеристических функций:
В автоматах, полностью определенных областью определения функций fs и fy является множество всех пар (si, xk) О--SґX,--где--si--О--S,--xk--О X. В автоматах, частично определенных либо обе характеристические функции, либо одна из них имеют областью определения строгое подмножество декартова произведения SґX. Таким образом, характеристические функции подобных автоматов определены не для всех пар (si, xk).
По однозначности функции переходов:
В детерминированных автоматах выполняется условие однозначности переходов: если АА находится в некотором состоянии si ? S, то под воздействием произвольного входного сигнала xk О X автомат может перейти в одно и только одно состояние sj О S, причем ситуация si = sj вовсе не исключается. В автоматах вероятностных при воздействии одного и того же входного сигнала возможны переходы из состояния si в различные состояния из множества S с заданной вероятностью.
По устойчивости состояний:
В устойчивых автоматах выполняется условие устойчивости: если автомат под воздействием входного сигнала xk О X оказался в состоянии si О S, то выход из него и переход в иное состояние возможен только при поступлении на вход автомата другого сигнала xz О X, xz № xk. Если условие устойчивости не выполняется хотя бы для одного состояния sj О S, то такой автомат называют неустойчивым.
Дальнейшее изложение будем вести, исходя из практических соображений, применительно к полностью определенным, детерминированным и устойчивым конечным автоматам.
2.2 Общая схема и базовые модели конечного автомата
Введем обозначения мощностей множеств, входящих в указанный выше кортеж:
X = {x1, x2, …, xp}, |X| = p;
Y = {y1, y2, …, yq}, |Y| = q;
S = {s1, s2, …, sn}, |S| = n.
Конечный автомат, в описание которого входят таким образом определенные множества, называют (n, p, q) - автоматом, а самим множествам усваивают наименование векторов, например: вектор входных сигналов, вектор состояний.
Все автоматы, и в том числе конечные, функционируют в дискретном исчислении времени.
Моменты времени образуют ряд целых неотрицательных чисел:
t = 0, 1, 2, 3, …
В каждый дискретный момент времени КА находится в одном и только одном состоянии Si, воспринимает одно значение вектора X и выдает на выходе одно значение вектора Y. Принято считать, что в момент времени t = 0 автомат находится в начальном состоянии S0, которое можно включить в кортеж отдельным, шестым компонентом:
А = (X, Y, S, fy, fs, S0).
Автомат с выделенным начальным состоянием называют инициальным.
Общую схему автомата можно представить в виде некоторого «черного ящика», осуществляющего преобразование вектора входных сигналов в вектор выходных сигналов (рис. 1.2):
Рисунок 2. Общая схема конечного автомата
Таким образом, можно записать: Y = fy (X, t).
Фактор времени в приведенном уравнении учитывается введением вектора состояний S, как своего рода «памяти о прошлом». Действительно, на один и тот же набор входных сигналов (значений компонентов вектора X) автомат будет выдавать разные выходные сигналы (значения компонентов вектора Y) в зависимости от состояния, в котором он находится в данный момент времени. Текущее состояние, в свою очередь, определяется алгоритмом функционирования автомата.
3. Классы автоматов
3.1 Класс явно-минимальных автоматов
Автомат называется явно-минимальным, если для каждой пары его состояний si, sj (i ? j) найдется хотя бы один входной сигнал xk ? X, для которого
fy (xk, si) ? fy (xk, sj).
Таким образом, реакция явно-минимального автомата на один и тот же входной сигнал разная для любой пары различных состояний. Ни одно из состояний не может быть удалено из множества S без потери эквивалентности полученного автомата исходному. Иными словами, сокращению автомат не подлежит.
Лемма. Мощность множества явно-минимальных автоматов равна:
где p = |X|, n = |S|, q = |Y|.
Пример. Сколько можно построить явно-минимальных автоматов с тремя входными сигналами, двумя выходными сигналами и четырьмя состояниями?
Имеем: |X| = 3, |Y| = 2, |S| = 4.
NЯМ = 43*4*[23 (23-1) (23-2) (23-3)] = 227*[7*6*5] = 134217728*210 = 28'185'722'880.
3.2 Класс явно-сократимых автоматов
Автомат называется явно-сократимым, если при его представлении таблицей переходов / выходов найдется по крайней мере одна пара строк (si, sj), которые одинаковы как в подтаблице выходов y(t), так и в подтаблице переходов s (t+1).
Это означает, что состояния si и sj неразличимы (эквивалентны): поведение автомата в состоянии si точно такое же, как в состоянии sj при всех входных воздействиях. Поэтому иначе определить понятие явно-сократимого автомата можно следующим образом: автомат является явно-сократимым, если в множестве его состояний найдется хотя бы одна пара неразличимых (эквивалентных) состояний.
Присутствие в модели автомата неразличимых состояний избыточно. Как отмечалось выше, из всех таких состояний достаточно оставить одно, удалив из множества S остальные без потери эквивалентности полученного автомата исходному.
Очевидно, подмножеств неразличимых состояний в явно-сократимом автомате может быть несколько, все они могут иметь различные мощности.
4. Минимальные автоматы
4.1 Эквивалентные состояния автомата и их свойства
Рассмотрим следующую модель. Пусть автомат А последовательно находится в состояниях si и sj, причем si ? sj. И в том, и в другом случае на вход автомата подается входной сигнал x, на выходе формируется сигнал y (см. рис. 3.1). Возможно ли отличить состояния si и sj одно от другого? Для ответа на этот вопрос необходимо ввести ряд определений.
Рисунок 3. КА в двух состояниях
Определение 1. Два состояния si и sj автомата А называются 1-эквивалентными, если при подаче на вход автомата одного и того же входного сигнала x реакция автомата (значение выходного сигнала y) будет одной и той же независимо от того, находится ли А в состоянии si или в состоянии sj.
Определение 2. Два состояния si и sj автомата А называются 1-различимыми, если при подаче на вход автомата одного и того же входного сигнала x реакция автомата будет разной в зависимости от того, находится А в состоянии si или в состоянии sj.
Определение 3. Два состояния si и sj автомата А называются k-эквивалентными, если при воздействии на автомат одной и той же последовательностью входных сигналов длиной k автомат выдает одну и ту же выходную последовательность независимо от того, находится ли А в состоянии si или в состоянии sj.
Определение 4. Два состояния si и sj автомата А называются k-различимыми, если при воздействии на автомат одной и той же последовательностью входных сигналов длиной k реакция автомата будет представлять собой различные выходные последовательности в зависимости от того, находится А в состоянии si или в состоянии sj.
Определение 5. Два состояния si и sj автомата А называются (просто) эквивалентными, если при воздействии на автомат одной и той же произвольной последовательностью входных
сигналов из множества X реакция автомата будет одинаковой вне зависимости от того, в каком состоянии находится автомат - si или sj.
Определение 6. Два состояния si и sj автомата А называются (просто) различимыми, если при воздействии на автомат одной и той же произвольной последовательностью входных сигналов из множества X реакция автомата будет различной в зависимости от того, в каком состоянии находится автомат - si или sj.
Примечание. В контексте определений 1 - 6 можно говорить об эквивалентности или различимости состояний si и sj разных автоматов, то есть когда si О S1, sj О S2, где S1 и S2, - множества состояний автоматов A1 и A2 соответственно.
Рассмотрим свойства эквивалентных состояний и продолжим ряд определений.
Свойство 1 (лемма). Если два состояния КА являются k-эквивалентными, то они будут и m-эквивалентными для каждого m Ј k.
Доказательство. От противного. Пусть состояния КА si и sj k-эквивалентны, но m-различимы (m Ј k). Тогда существует входная последовательность длиной m, на которой si отличается от sj. Но в таком случае si и sj будут различимы и при входной последовательности длиной k, то есть si и sj являются k-различимыми, что противоречит условию леммы. Следовательно, предположение неверно, si и sj m-эквивалентны.
Свойство 2 (лемма). Если два состояния КА являются k-различимыми, то они будут и m-различимыми для каждого m і k.
Доказательство. Аналогично предыдущему или по свойству 1: пусть si и sj k-различимы, но m-эквивалентны (m і k). Однако на основании свойства 1, если два состояния m-эквивалентны, то они должны быть и k-эквивалентны, так как k Ј m. Полученное противоречие доказывает справедливость леммы.
Определение 7. Состояние, в которое переходит КА из состояния si при подаче входной последовательности длиной k, называют k-тым преемником si по отношению к данной входной последовательности.
В частном случае, нулевым преемником состояния si является само si.
На практике представляет интерес так называемое разбиение множества состояний КА на классы по следующим правилам:
1) все состояния, принадлежащие одному классу, должны быть k-эквивалентными;
2) все состояния, принадлежащие разным классам, должны быть k-различимыми.
Определение 8. Разбиение множества S состояний КА на классы в соответствии с правилами 1) и 2) называется k-эквивалентным разбиением автомата и обозначается Pk.
Определение 9. Классы k-эквивалентного разбиения автомата называются классами k-эквивалентности и обозначаются Уk1, Уk2, …
Определение 10. Состояния КА, принадлежащие одному и тому же классу k-эквивалентности Уki, называются смежными; состояния, принадлежащие разным классам k-эквивалентности, называют разобщенными.
Замечание. Ни одно из состояний КА не может принадлежать одновременно двум разным классам k-эквивалентности, так как это означало бы k-различимость состояния самому себе. Следовательно, суммарное число состояний в k-эквивалентном разбиении Pk равно мощности множества состояний КА:
Свойство 3 (лемма). k-эквивалентное разбиение автомата единственно.
Доказательство проведем от противного. Пусть k-эквивалентное разбиение Pk состоит из классов k-эквивалентности: Pk = {Уk1, Уk2, …, Уkm}.
Пусть Pk не единственно. Тогда существует другое, альтернативное k-эквивалентное разбиение P'k того же автомата:
Pk = {У', У'k2, …, У'}.
Пусть Уkj О Pk, Уkj = {sj1, sj2, …, sjd}.
Пусть Уkj О Pk, Уkj = {sj1, sj2, …, sjd}.
Поскольку каждое состояние, входящее в Уkj, k-эквивалентно любому другому состоянию из этого же класса и не существует ни одного состояния вне Уkj, которое было бы k-эквивалентно хотя бы одному состоянию в Уkj, то в альтернативном разбиении P' должен быть класс эквивалентности У', включающий те же состояния, что и У, и не содержащий никаких других состояний:
У'ki = {sj1, sj2, …, sjd}.
Предположив , получим, что каждому классу в Pk соответствует идентичный класс в P'k. Так как суммарное число состояний в P'k такое же, как в Pk, то
P'k = Pk.
Таким образом, k-эквивалентное разбиение автомата является единственным.
Свойство 4 (лемма). Состояния КА, являющиеся разобщенными в Pk, должны быть разобщенными и в (k+1) - эквивалентном разбиении Pk+1.
Доказательство следует из свойства 2.
Свойство 5 (лемма). Если КА имеет два различимых, но k-эквивалентных состояния, то он также имеет два состояния k-эквивалентных, но (k+1) - различимых.
4.2 Минимизация числа состояний автомата
Задача минимизации числа состояний автомата (минимизация автомата) формулируется следующим образом: среди автоматов, эквивалентных S, найти автомат с наименьшим числом состояний - минимальный автомат.
Наиболее известным алгоритмом нахождения эквивалентных состояний является алгоритм Мили. Его суть состоит в том, что состояния автомата на каждом шаге разбиваются на классы эквивалентности, причем разбиение на следующем шаге будет получаться расщеплением некоторых классов предыдущего разбиения. Рассмотрим реализацию алгоритма Мили:
Необходимым условием эквивалентности состояний автомата является тот факт, что при воздействии одинаковых ai сигналов в этих состояниях, на выходе автомата получим так же одинаковые сигналы v.
Из таблицы следует, что при действии сигнала а1 в состояниях q1, q2, q3 на выходе будет одинаковый сигнал v2. Действие в этих же состояниях сигнала а2 приведет к появлению на выходе одинакового сигнала v1.
Описание КА
Q \ A |
a1 |
a2 |
||
q1 |
q3, v2 |
q1, v1 |
||
q2 |
q4, v2 |
q1, v1 |
||
q3 |
q1, v2 |
q3, v1 |
||
q4 |
q3, v1 |
q4, v2 |
Следовательно, на первом шаге выделяется класс эквивалентности, включающий первые три строки таблицы 1 (состояния q1, q2, q3).
Этот класс отражен на рисунке 4 соответствующими ячейками, внутри которых отмечены состояния, в которые переходит КА из потенциально эквивалентных состояний. В тех случаях, когда КА переходит в состояния, аналогичные предыдущим, в ячейке запись отсутствует, что имеет место для состояний (q1 q3).
Выявление класса эквивалентности
q2 |
q3 q4 X2 |
|||
q3 |
q1 q4 X2 q1 q3 |
|||
q4 |
X1 |
X1 |
X1 |
|
q1 |
q2 |
q3 |
Состояния (q1 q4), (q2 q4) и (q3 q4) не эквивалентны, так как для этих состояний для одинаковых входных сигналов имеют место различные выходные сигналы КА. Эти ячейки перечеркнуты (X1).
На втором шаге анализируется информация сформированной таблицы. Так как состояния (q3 q4) не эквивалентны, то ячейка с записью этих состояний перечеркивается. Это же выполняется для ячейки с записью не эквивалентных состояний (q1 q4) (X2).
Таким образом, эквивалентными состояниями являются только (q1 q3).
Это обусловлено тем, что только из состояний q1 и q3 автомат переходит вновь в эквивалентные состояния, что не имеет места для любых других состояний.
Таким образом, из класса эквивалентности, полученного на 2-ом шаге для определения состояний эквивалентного автомата можно выбрать одну строку (1-ю или 3-ю). Выбираем 1-ю строку, добавляем к ней 2-ю и 4-ю строки и переобозначаем состояния. В результате получим КА, описываемый таблицей 4.
5. Результат работы программы
1) На рисунке представлено главное окно программы. На данном этапе вводим данные (Q=4)
Окно программы
2) На рисунке мы создаем таблицу
Создание таблицы
3) На рисунке мы минимизируем данную таблицу
Минимизированная таблица
Заключение
В результате выполнения курсовой работы была разработана минимизация конечного автомата, которая формулируется следующим образом: среди автоматов, эквивалентных S, найти автомат с наименьшим числом состояний - минимальный автомат. Так же были подробно изучены виды автоматов, их свойства и эквивалентные состояния.
Результатом курсовой работы является разработанное приложение минимизации конечного автомата. В процессе разработки данной программы встречались различные трудности, но благодаря приложенным усилиям удалось справиться с поставленной задачей. Были углублены познания в области конечных автоматов.
Список использованной литературы
1. Ключко В.И., Власенко А.В., Кушнир Н.В. Теория автоматов и формальных языков: учеб. пособие / Кубан. гос. технол. ун-т. - Краснодар: Изд. ФГБОУ ВПО «КубГТУ», 2012. - 151 с.
2. А.В. Власенко, В.И. Ключко. Теория проектирования трансляторов. Учебное пособие / Кубан. гос. технол. ун-т. Краснодар. 2004. - 97 с.
3. Майерс Г. Исскуство тестирования программ/ Пер. с англ. под ред. Б.А. Позина. - М.: Финансы и статистика, 2010. - 176 с.
4. Гавриков М.М. Теоретические основы разработки и реализации языков программирования: учебное пособие/ М.М. Гавриков, А.Н. Иванченко, Д.В. Гринченков; под ред. А.Н. Иванченко. - М. КНОРУС, 2010. - 184 с.
Приложение
Минимизация конечного автомата
class Form1
using System;
using System. Collections. Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System. Windows. Forms;
using LabRab4;
namespace lab4
{
public partial class Form1: Form
{
public Form1 ()
{
InitializeComponent();
}
private void button1_Click (object sender, EventArgs e)
{
dataGridView1. Rows. Clear();
dataGridView2. Rows. Clear();
KA. CountQ = Convert. ToInt32 (textBox1. Text);
Random rnd = new Random();
for (int i = 0; i < KA. CountQ; i++)
{
dataGridView1. Rows. Add (rnd. Next (KA. CountQ).ToString() +»,» + rnd. Next(2), rnd. Next (KA. CountQ).ToString() +»,» + rnd. Next(2));
dataGridView1. Rows[i].HeaderCell. Value = «q» + (i + 1).ToString() +» = " + i. ToString();
}
}
private void button2_Click (object sender, EventArgs e)
{
dataGridView2. Rows. Clear();
AutoActions aa = new AutoActions(dataGridView1);
aa. OutputData (ref dataGridView2);
}
private void button3_Click (object sender, EventArgs e)
{
this. Close();
}
}
}
class AutoActions
using System;
using System. Collections. Generic;
using System. Windows. Forms;
namespace LabRab4
{
class AutoActions
{
private string[,] inputMas;
private bool[] minimMas;
private List<string> outputMas;
private int inputMasCountColumns, inputMasCountRows;
public AutoActions (DataGridView data)
{
// Входной массив данных
inputMasCountColumns = data. Columns. Count;
inputMasCountRows = data. Rows. Count;
minimMas = new bool[inputMasCountRows];
inputMas = new string [inputMasCountRows, inputMasCountColumns];
outputMas = new List<string>();
InicializeInputMas(data);
// Начало вычислений
Start();
}
private void InicializeInputMas (DataGridView data)
{
for (int i = 0; i < inputMasCountRows; i++)
{
minimMas[i] = true;
for (int j = 0; j < inputMasCountColumns; j++)
{
inputMas [i, j] = data [j, i].Value. ToString();
}}}
private void Start()
{
for (int row1 = 0; row1 < inputMasCountRows; row1++)
{
for (int row2 = row1 + 1; row2 < inputMasCountRows; row2++)
{
bool pairCheck = true;
for (int column = 0; column < inputMasCountColumns; column++)
{
string[] cell1 = inputMas [row1, column].Split (', ');
string[] cell2 = inputMas [row2, column].Split (', ');
// если выходные состояния равны, то делаю
if (cell1 [1] == cell2 [1])
{
if (row1. ToString() == cell1 [0] && row2. ToString() == cell2 [0] && pairCheck) pairCheck = true;
else if (row1. ToString() == cell2 [0] && row2. ToString() == cell1 [0] && pairCheck) pairCheck = true;
else if (cell1 [0] == cell2 [0] && pairCheck) pairCheck = true;
else pairCheck = false;
}
else {pairCheck = false; break;}
}
if (pairCheck)
{
if (minimMas[row1]) minimMas[row2] = false;
}}}
AddToOutputMas();
}
// Добавление + выравнивание индексов после минимизации
private void AddToOutputMas()
{
for (int i = 0; i < inputMasCountRows; i++)
{
if (minimMas[i])
{
outputMas. Add(«»);
for (int j = 0; j < inputMasCountColumns; j++)
{
string[] cell = inputMas [i, j].Split (', ');
if (! minimMas [Convert. ToInt32 (cell[0])])
{
string[] cell2 = inputMas [Convert. ToInt32 (cell[0]), j].Split (', ');
if (cell2 [0]!= cell[0])
{
int min = Math. Min (Convert. ToInt32 (cell[0]), Convert. ToInt32 (cell2 [0]));
int max = Math. Max (Convert. ToInt32 (cell[0]), Convert. ToInt32 (cell2 [0]));
cell[0] = cell2 [0];
for (int k = min; k < max; k++)
if (! minimMas[k]) cell[0] = (Convert. ToInt32 (cell[0]) - 1).ToString();
}
else cell[0] = (outputMas. Count - 1).ToString();
}
else if (Convert. ToInt32 (cell[0]) == i) {cell[0] = (outputMas. Count - 1).ToString();}
else
{
int min = Math. Min (Convert. ToInt32 (cell[0]), i);
int max = Math. Max (Convert. ToInt32 (cell[0]), i);
for (int k = min; k < max; k++)
if (! minimMas[k]) cell[0] = (Convert. ToInt32 (cell[0]) - 1).ToString();
}
if (j == 0) outputMas [outputMas. Count - 1] = cell[0] +»,» + cell[1];
else outputMas [outputMas. Count - 1] += «» + cell[0] +»,» + cell[1];
}}}}
/// <summary>
/// </summary>
/// /// Выходной минимизированный автомат
public DataGridView OutputData (ref DataGridView data)
{
for (int i = 0; i < outputMas. Count; i++)
{
data. Rows. Add();
data. Rows[i].HeaderCell. Value = «q» + (i + 1).ToString() +» = " + i. ToString();
for (int j = 0; j < inputMasCountColumns; j++)
{
string[] cell = outputMas[i].Split (' ');
data [j, i].Value = cell[j];
}
}
return data
Размещено на Allbest.ru
...Подобные документы
Теоретические и практические основы грамматик, теория конечных автоматов-распознавателей. Эквивалентные и недостижимые состояния конечных автоматов. Классификация грамматик и порождаемых ими языков. Разработка программного комплекса построения грамматик.
курсовая работа [654,2 K], добавлен 14.11.2010Составление треугольной таблицы. Нахождение списка максимальных классов совместимости, минимального замкнутого покрытия. Получение логических функций выходов автомата. Синтез конечного автомата и функциональной схемы. Принципиальная электрическая схема.
контрольная работа [215,8 K], добавлен 22.06.2012Минимизация абстрактного автомата Мили, моделирование его работы. Синтез схемы конечного автомата, микропрограммного автомата и счетчика числа микрокоманд. Разработка цифровой линии задержки. Построение граф-схем исходного и оптимизированного автоматов.
курсовая работа [823,8 K], добавлен 19.07.2012Теоретические основы эквивалентности конечных автоматов-распознавателей и их минимизация. Определение математических моделей Мили и Мура. Их графическое и табличное представление. Примеры построения конечных автоматов, распознающих некоторые языки.
курсовая работа [567,8 K], добавлен 02.05.2015Понятие автомата как дискретного преобразователя информации, особенности его состояний. Синтез конечных автоматов, их задания и структурных анализ. Построение синтеза функций возбуждения элементарных автоматов. Комбинационный синтез конечных автоматов.
курсовая работа [336,4 K], добавлен 01.06.2014Булевая функция 5 переменных: понятие и содержание, закономерности и принципы функционирования. Порядок расчета значений, минимизация функции. Проектирование автоматов. Автомат Мура, принципы их действия, функциональные особенности и использование.
контрольная работа [165,3 K], добавлен 21.10.2012Основное направление исследования клеточных автоматов. Математическое определение автоматов. Классификация по типам поведения. Тоталистичные клеточные автоматы. Создание и визуализация в Excel математической модели распространения лесного пожара.
курсовая работа [234,9 K], добавлен 01.11.2014Синтез и детерминизация, алгоритм минимизации автоматов–распознавателей. Машина Тьюринга как универсальный тип абстрактного преобразователя. Моделирование систем и событий с помощью сетей Петри. Методы синтеза структурных автоматов на базе триггеров.
учебное пособие [2,3 M], добавлен 17.06.2014Важный частный случай недетерминированного конечного автомата. Проверка нечетности числа единиц в произвольной цепочке, состоящей из нулей и единиц. Составление формальной грамматики, блок-схемы и программы, моделирующей работу конечного автомата.
курсовая работа [210,8 K], добавлен 05.12.2013Построение праволинейной грамматики, автоматной грамматики по полученным результатам. Построение недетерминированного конечного автомата. Сведение недетерминированного конечного автомата к детерминированному. Описание программы и контрольного примера.
курсовая работа [674,9 K], добавлен 13.06.2012Понятие и свойства конечного автомата, его назначение и сферы применения. порядок разработки специальной функции, реализующей конечный автомат. Способы описания данной функции, обоснование выбора одного из них. Программная реализация решения задачи.
курсовая работа [466,4 K], добавлен 20.01.2010Принципы и понятия автоматного программирования. Виды конечных автоматов, их применение при построении лексических и синтаксических анализаторов. Описание конечных автоматов Миля и Мура, их различий в зависимости от способа формирования функций выхода.
курсовая работа [430,9 K], добавлен 26.05.2015В статье рассмотрено применение конечных автоматов для создания системы автоматов, связанных графами. Документооборот представляется в виде автомата, обрабатывающего автоматы, каждый из которых моделирует поведенческую единицу системы документооборота.
статья [80,8 K], добавлен 19.04.2006Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.
курсовая работа [621,0 K], добавлен 24.09.2010Составление формальной грамматики, недетерминированный конечный автомат. Построение конечного автомата, программное моделирование работы конечного автомата. Граф детерминированного автомата, Синтаксическая диаграмма. Блок-схемы, примеры разбора строк.
курсовая работа [486,2 K], добавлен 19.11.2010Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010В статье рассмотрено применение конечных автоматов для создания системы автоматов, связанных графами. Документооборот представляется в виде автомата, обрабатывающего автоматы, каждый из которых моделирует поведенческую единицу системы документооборота.
статья [80,8 K], добавлен 15.07.2006Изучение методов построения конечного автомата, распознающего заданный язык, и принципы его программной реализации. Проектирование комбинационной и принципиальной схем распознающего конечного автомата с использованием библиотеки интегральных микросхем.
дипломная работа [1,8 M], добавлен 18.08.2013Использование клеточных автоматов для моделирования гидродинамических и газодинамических течений. Применение клеточных автоматов в информатике. Основные правила и виды фигур, правила игры "Жизнь". Реализация эффективной системы распознавания образов.
научная работа [740,4 K], добавлен 23.06.2015Методика минимизации абстрактного автомата. Порядок построения графа полученного минимизированного автомата. Синтез на элементах ИЛИ-НЕ и Т-тригерах. Составление таблицы переходов. Разработка микропрограммного автомата, реализующего микропрограмму.
курсовая работа [997,7 K], добавлен 28.03.2011