Теория автоматов. Общие понятия
Оценка 4.7

Теория автоматов. Общие понятия

Оценка 4.7
Научно-исследовательская работа +4
docx
информатика
Взрослым
17.02.2017
Теория автоматов. Общие понятия
На протяжении последних десятилетий велись и ведутся интенсивные работы по созданию и использованию различных систем и устройств для переработки дискретной информации. Преобразователи дискретной информации широко используются в качестве различного рода технических автоматов, вычислительных устройств и их функциональных блоков, устройств управления роботами, управляющих объектами по заданному алгоритму. Широкий класс таких преобразователей объединяется под общим названием -автоматы. Эти устройства имеют конечное число входов, воспринимающих информацию, и конечное число выходов для выдачи переработанной информации. Зависимость между входами и выходами задается предписанным алгоритмом переработки информации. Информация на входе и выходе представляется символами, физическими носителями которых являются квантованные по времени сигналы.
Теория автоматов.docx
Теория автоматов. Общие понятия На протяжении последних десятилетий велись и ведутся интенсивные работы по созданию  и использованию различных систем и устройств для переработки дискретной  информации. Преобразователи дискретной информации широко используются в качестве различного рода технических автоматов, вычислительных устройств и их функциональных  блоков, устройств управления роботами, управляющих объектами по заданному  алгоритму. Широкий класс таких преобразователей объединяется под общим названием  ­автоматы. Эти устройства имеют конечное число входов, воспринимающих информацию,  и конечное число выходов для выдачи переработанной информации. Зависимость между  входами и выходами задается предписанным алгоритмом переработки информации.  Информация на входе и выходе представляется символами, физическими носителями  которых являются квантованные по времени сигналы. Если «К» символов одновременно следующих по параллельным входным либо выходным  каналам, рассматривать как один символ из соответствующего алфавита, следующего по  единому "склеенному" каналу, то такой автомат можно представить как устройство с  одним входом и одним выходом (рис. 1). Рис.1 – Общая функциональная модель преобразователя дискретной информации Известны два подхода к определению термина автомат. При первом его истолковывают  как устройство, которое без непосредственного участия человека выполняет функции  приема, преобразования и передачи энергии, информации и т.п. в соответствии с  заложенной в него программой, при втором ­ как математическую модель реальных  преобразователей дискретной информации. Функционирование его состоит в том, что  последовательность z1,z2,... символов конечного или в общем случае бесконечного  алфавита Z, поступающая на вход, вызывает на его выходе определенную  последовательность w1,w2,... символов того же или другого алфавита. Таким образом,  самой общей математической моделью преобразователя дискретной информации является  последовательностная функция, отображающая множество Z всех последовательностей  символов алфавита Z в другое множество W* последовательностей символов алфавита W.  Такая интерпретация позволяет схематично представить преобразователь как устройство,  реализующее отображение одного множества на другое (рис. 2а). Рис.2а – Формальная модель преобразователя Данное отображение называется алфавитным отображением или алфавитным  оператором. Теория автоматов ­ это раздел теории управляющих систем, изучающий математические  модели преобразователей дискретной информации, называемые автоматами. С  определенной точки зрения такими преобразователями являются как реальные устройства  (вычислительные машины, живые организмы), так и абстрактные системы  (например, формальная система – это совокупность абстрактных объектов, не связанных  с внешним миром, в котором представлены правила оперирования множеством символов в  строго синтаксической трактовке без учета смыслового содержания, т.е.  семантики; аксиоматические теории, описывающие определенную совокупность явлений  в их причинно­следственной связи друг с другом). Наиболее тесно теория автоматов связана с теорией алгоритмов. Это объясняется тем,  что автомат преобразует дискретную информацию по шагам в дискретные моменты  времени и формирует результирующую информацию по шагам заданного алгоритма. Эти  преобразования возможны с помощью технических и/или программных средств. Автомат  можно представить как некоторое устройство (чёрный ящик), на которое подаются  входные сигналы и снимаются выходные и которое может иметь некоторые внутренние  состояния. При анализе автоматов изучают их поведение при различных возмущающих  воздействиях и минимизируют число состояний автомата для работы по заданному  алгоритму. Такой автомат называют абстрактным, т.к. абстрагируются от реальных  физических входных и выходных сигналов, рассматривая их просто как буквы некоторого  алфавита и в связи с идеализированным дискретным временем. При синтезе автоматов  (процесс соединения или объединения) формируют систему из элементарных автоматов,  эквивалентную заданному абстрактному автомату. Такой автомат  называется структурным. Особое место в теории автоматов занимает понятие конечного  автомата. Результат преобразования вход => выход (рис.2а) зачастую зависит не только от входа в  данный момент времени, но и от того, что было раньше на входе, от входной истории, т.е.  от предыстории преобразования. Число возможных входных историй бесконечно (счетно),  даже если различных элементов входной информации у автомата конечное число (как в конечном функциональном преобразователе). Чтобы эти предыстории как­то запоминать и  отличать друг от друга преобразователь должен иметь память. Для этого в устройство  (рис. 1.1,6) вводится алфавит состояний Q = {qx,q2,...qm). Понятие состояния q при этом играет очень важную роль. В своих состояниях автомат  запоминает свое концентрированное прошлое. На один и тот же входной сигнал  преобразователь может реагировать по­разному в зависимости от того, в каком состоянии  он находится в данный момент. Конечный автомат (рис.2б) — математическая абстракция, позволяющая описывать пути  изменения состояния объекта в зависимости от его текущего состояния и входных данных,  при условии, что общее возможное количество состояний Q и множество входных сигналов Z конечны. Конечный автомат является частным случаем абстрактного автомата. Рис.2б – Конечный автомат Конечный автомат является одним из важнейших видов управляющих систем.  Главным достоинством конечных автоматов является то, что в них естественным  образом описываются системы, управляемые внешними событиями. Теория автоматов занимается изучением процессов, протекающих в автоматах различного  рода, и общих закономерностей, которым они подчинены, широко применяя для этого  алгебраический аппарат, математическую логику, комбинаторный анализ и теорию  вероятностей. Конструируя надежные, хорошо работающие автоматы, приходится решать необычайно  сложные задачи. Например, надо определять устойчивость систем, чтобы уменьшить  различные отклонения в работе автоматических машин. Надо изучать и чувствительность  автоматов, так как в процессе работы свойства систем регулирования не остаются  постоянными. Теория автоматов находит применение как в математике, так и в решении практических  задач. Например, средствами теории автоматов доказывается разрешимость некоторых  формальных исчислений. Применение методов и понятий теории автоматов к изучению  формальных и естественных языков привело к возникновению математической  лингвистики (математическая лингвистика ­ математическая дисциплина, предметом  которой является разработка формального аппарата для описания строения естественных  и некоторых искусственных языков.) Понятие автомата может служить модельным объектом в самых разнообразных задачах, благодаря чему возможно применение теории  автоматов в различных научных и прикладных исследованиях. Актуальность теории автоматов Существует множество объектов управления, связанных с большой  ответственностью: ядерные и химические реакторы, комплексы промышленного,  оборонного, космического назначения, горное дело. Успех в работе с ними прямо  зависит от четкости и слаженности действий, от умения принимать выверенные решения и  грамотно анализировать ситуацию, от возможности однозначной интерпретации  информации. Различная природа физических процессов, протекающих в объектах, сложный характер взаимодействия между ними и управляющими системами обуславливает  трудности разработки, алгоритмизации и программирования задач управления. Возникают  трудности, связанные с необходимостью достижения наглядности и структурированности. Для решения этих задач используется развитый математический аппарат теории автоматов. Описание логики поведения (при каких условиях необходимо выполнить те или иные  действия) при автоматном подходе структурировано. Это свойство делает автоматное  описание сложного поведения наглядным и ясным. Корректность работы при  использовании автоматов закладывается еще на этапе проектирования, благодаря  графическому представлению, т.е.  наглядно представляется поведение управляющих автоматов (графически, таблично) и композиций из них;  отображаются желаемые состояния;  отражается динамика и условия переходов автомата из состояния в состояние;  можно легко увидеть возможные ошибки в проектировании, такие как отсутствие  некоторого перехода, недоступность состояния и т.д. Все это приводит к четкому пониманию работы устройства. Процессы управления,  проектирования могут быть представлены в виде элементов с предсказуемым поведением. Пример: один из крупнейших мировых производителей авиационной, космической и  военной техники – американская корпорация «Боинг» занимается системами стабилизации  самолетов с использованием чистой теории автоматов. Большая часть теории автоматов  была успешно использована в системных программах и текстовых фильтрах в ОС UNIX.  Это позволяет множеству людей работать на высоком уровне и разрабатывать очень  эффективные программы. Области применения ТА поражают своим размахом и не ограничиваются узкой  направленностью и специализацией. Рассмотрим некоторые из них. Программирование Возникает вопрос, почему же конечно­автоматная модель теории автоматов особенно  актуальна сейчас, когда существует огромное количество, как языков  программирования, так и сред для разработки ПО? Имеют место две проблемы:  непредсказуемое поведение кода программы, разработанной исключительно  средствами RAD (Rapid Application Development – средства быстрой разработки  приложений);  «угасание» «культуры программирования». Примеры RAD: Borland Delphi и C++ , обеспечивающие ускоренную разработку  приложений за счет использования объектно­ориентированного и визуального  программирования. Они позволяют не только программировать в привычном смысле слова, но и фактически рисовать программы (как интерфейс, так и реализацию), используя  визуальные компоненты VCL. Любой визуальный объект VCL характеризуется рядом свойств, методов и событий.  Казалось бы, простой манипуляцией перечисленными атрибутами возможно заставлять  разрабатываемую программу делать то, что требует от нее программист­разработчик. Но  это далеко не так. Давно стало ясно, что VCL имеет тенденцию скрывать точную реализацию определенных  объектов, тем самым не давая посторонним менять умалчиваемое поведение кода. Как  показывает практика, поведение кода программы, созданной с помощью средств RAD, не  всегда предсказуемо даже для очень опытного программиста, не говоря уже о начинающем. Программа, несмотря на «очевидность» авторского кода, всегда стремится пойти своим  путем, попадая в такие замысловатые обработчики событий, о существовании которых  можно даже и не догадываться. В современном мире объемы и сложность разрабатываемых приложений возрастают с  каждым днем, поэтому такой подход резко увеличивает время тестирования и отладки ПО. Управлять поведением кода дает возможность механизм теории автоматов еще  сорокалетней давности. Стили программирования различаются по базовым понятиям, в качестве которых  используются такие понятия как «событие», «подпрограмма», «функция», «класс» («объект») и т. д. Стиль программирования, основанный на явном выделении состояний  и применении автоматов для описания поведения программ, назван «автоматное  программирование», а соответствующий стиль проектирования программ —  «автоматное проектирование». Автоматное программирование можно рассматривать не  только как самостоятельный стиль программирования, но и как дополнение к другим  стилям, например, к объектно­ориентированному, т.к. речь идет не только и не столько об  использовании конечных автоматов в программировании, сколько о методе создания  программ в целом, поведение которых описывается автоматами. Т.е. как отдельный  компонент, так и программа в целом может быть реализована как автомат. В автоматном программировании существует два направления: SWITH­технология и  КА (конечно­автоматная) технология. Switch­технология — технология разработки систем логического управления на базе конечных автоматов, охватывающая процесс  проектирования, реализации, отладки, верификации (проверки), документирования и  сопровождения. Кодирование/программирование автоматов в рамках КА­технологии основано на  следующих принципах:  введено понятие динамичного объекта, который может быть наделен алгоритмом  поведения во времени;  алгоритм поведения объекта задается моделью конечного автомата;  язык описания автомата основан на базе табличной формы представления автоматов;  логика поведения объекта (таблица переходов автомата) отделена от методов  автоматного объекта (предикатов и действий), связанных с реализацией его  поведения во времени;  любые динамичные объекты могут выполняться параллельно. Рассмотрим эти технологии подробнее: 1) SWITH­технология. Основные положения: предлагается сделать понятие «состояние»  первичным, а алгоритмы представлять в виде графов переходов (диаграмм состояний), т.е.  представлять программу как систему взаимодействующих конечных автоматов,  описываемых графами переходов. Состояния кодируются для того, чтобы их различать. Графы в наглядной для человека форме отражают переходы между состояниями, а также  «привязку» выходных воздействий и других автоматов к состояниям и/или переходам. Внутри программы автоматы могут взаимодействовать:  по вложенности (один автомат вложен в одно или несколько состояний другого  автомата)  по вызываемости (один автомат вызывается с определенным событием из выходного  воздействия, формируемого при переходе другого автомата)  обмену сообщениями (один автомат получает сообщения от другого)  по номерам состояний (один автомат проверяет, в каком состоянии находится  другой автомат). Ни число автоматов, вложенных в состояние, ни глубина вложенности не ограничены.  Основной критерий оптимальности реализации управляющих автоматов – возможность  преобразования графа переходов в программный код. <><><>Известно большое число  инструментальных средств для генерации программ, реализующих графы переходов:  Visio2Switch ­ инструментальное средство Visio2Switch позволяет по графу  переходов, построенному с помощью редактора Microsoft Visio, автоматически  реализовать его в виде изоморфной программы на языке С. Конвертор Visio2Switch  используется в настоящее время при создании программного обеспечения ряда  ответственных систем реального времени.  MetaAuto ­ инструментальное средство MetaAuto позволяет по графу переходов,  построенному с помощью того же редактора, автоматически реализовать его в виде  изоморфной программы на любом языке программирования, для которого  предварительно построен шаблон (C, C# , Turbo Assembler и т.д.).  UniMod ­ инструментальное средство UniMod предназначено для поддержки  автоматного программирования и построения и реализации не только автоматов, но и программ в целом. Практика показала, что для многих классов программ только 20–30% программного  кода строится вручную. На основе SWITCH­технологии уже разработаны приложения для: устройства продажи  газированной воды, банкомата (см. пример 1), светофора, системы управления  пассажирским лифтом, система управления автомобильной сигнализации (см. пример 2),  автоматизированной системы оплаты мобильного телефона, устройства обмены валюты,  устройства для продажи проездных билетов и т.д. 2) КА­технология позволяет реализовать идею параллелизма. Технологии разработки  программ “сверху вниз”, “снизу вверх”, структурный подход таких возможностей или не имеют, или они ограничены. Даже в технологии объектно­ориентированного  программирования (ООП) вопросы параллельной работы объектов вынесены за ее рамки.  Использование других технологий, базирующихся на известных параллельных моделях,  сопряжено с трудностями, связанными если не с ограничениями области их применения, то с проблемами последующей реализации на программном и/или аппаратном уровнях. Параллельные модели ­ одно из основных и перспективных направлений в области развития программирования и аппаратных средств. Идея параллелизма весьма привлекательна. Но  для ее использования необходимо, во­первых, решить проблему описания, т.е. выбора  формальной параллельной модели, и, во­вторых, проблему реализации модели. КА­ технология использует модель со средствами представления и описания параллелизма,  которые по своим возможностям не уступают другим параллельным моделям, а ее  реализация во многом проще. Кроме того, применяя стандартные приемы, несложно  перейти от параллельного конечно­автоматного представления к последовательному  описанию. Примеры применения КА­технологии: бухгалтерские программы типа расчета  заработной платы или учета квартирной платы, проект системы управления  технологическим процессом выращивания кристаллов с множеством динамически  порождаемых параллельно функционирующих объектов реализующих процессы съема  данных с датчиков, выдачу управляющих воздействий на объект, автоматные алгоритмы  работы драйверов с разнообразной аппаратурой, процессы отображения и расчета. 3) Основное отличие рассматриваемых технологий заключается в реализации логики  автоматных программ. В SWITCH­технологии она реализуется переводом автоматного  описания в программный код языка программирования, в КА­технологии реализуется  прямое исполнение автоматов путем интерпретации его исходного табличного  представления. Это более короткий и наглядный путь реализации автоматов, хотя и более  медленный, если рассматривать уровень отдельного компонентного автомата сети  автоматов. Вывод: Автоматное программирование используется в настоящее время при  проектировании программного обеспечения систем автоматизации ответственных объектов управления (автомат управления криогенно­вакуумной установкой, дизель­генератором).  Конечный автомат работает по принципу «шаг в сторону – недопустимо». Реализовать  непредусмотренные действия конечный автомат не даст ни пользователю (исходный  вариант кода), ни самой программе (модифицированный вариант кода). В настоящее время наблюдается бум в области создания компьютерных игр. Все чаще  логика управления играми, в которых персонажи, перемещающиеся в области игры, могут  действовать в различных режимах (например, персонаж бежит вперед или назад, взбирается по лестнице, падает и т.д.), реализуется в виде конечного автомата. Реализация визуализаторов алгоритмов дискретной математики и программирования При изучении алгоритмов обработки информации, представляемой различными  структурами данных, важную роль играют визуализаторы алгоритмов, позволяющие в  наглядной форме динамически отображать детали их работы. Визуализатор — это программа, в процессе работы которой на экране компьютера  динамически демонстрируется применение алгоритма к выбранному набору данных.  Визуализаторы позволяют изучать работу алгоритмов в пошаговом режиме, аналогичном  режиму трассировки программ. Они при необходимости допускают трассировку  укрупненными шагами, игнорируя рутинную часть вычислительного процесса, что  существенно, например, для переборных алгоритмов. Для некоторых алгоритмов динамический вариант демонстрации его работы является  более естественным, чем набор статических иллюстраций. При изучении большинства алгоритмов наряду с режимом "шаг вперед" весьма полезен  также и режим "шаг назад", позволяющий более быстро и полно понять алгоритм.  Например, в алгоритмах поиска с возвратом бывает необходимо сделать несколько шагов  назад, для того чтобы понять, почему та или иная ветвь поиска отброшена. Примеры визуализаторов: обход двоичного дерева, алгоритмы теории расписаний,  сортировка и т.д. Т.е. сложные алгоритмы с большим числом переходов, условий и  ветвлений можно представить более компактно и понятно: в виде конечного автомата с  предсказуемым и наглядным поведением. Искусственный интеллект Искусственные нейронные сети (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования  биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие  возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти  процессы. Нейронные сети ­ исключительно мощный метод моделирования, позволяющий  воспроизводить чрезвычайно сложные зависимости. ИНС поддаются настройке и обучению. Использование автоматов при создании искусственных нейронных сетей  позволяет исключить появление непредусмотренных состояний в работе. Нейронные технологии особенно интенсивно применяются в экспертных системах  прогнозирования месторождений и финансовом деле при оценке инвестиций. Пример: В жидкостных ракетных двигателях (ЖРД), представляющих собой сложную  техническую систему, состоящую из множества агрегатов, взаимодействующих между  собой, необходима быстрая реакция контролирующей системы на процессы, происходящие в одном из самых ответственных и напряженных агрегатов – турбонасосном агрегате  (ТНА). При использовании нейронных сетей и автоматов появляется возможность  раннего диагностирования аварийных ситуаций, что позволяет снизить последствия аварии  и предотвратить разрушение двигателя при проведении огневых испытаний (см. пример 3). При функционировании ТНА представляется в виде конечного автомата. Состояния, в  которых он может находиться: Ожидание, Запуск, Основной режим, Останов, Аварийное  состояние (разделяется на ряд состояний, классифицирующих характер отказа). Значение предельного отклонения подбирается с таким расчетом, чтобы быть  минимальным и в то же время допускать небольшие вариации. В случае отказа (выход  любой из четырех сетей равен единице) активируются нейронные сети, обученные на  характерных для ТНА отказах, по показаниям которых можно определить, что послужило  причиной отказа (выход сети равен единице). Если этого сделать не удается (несколько  выходов сетей равны единице), то считается что отказ комбинированный – одновременно  произошло несколько отказов, а в случае неопределенности (все выходы сетей равны  нулю), автомат переходит в состояние Новый отказ. Разработанная методика позволяет обнаруживать отказы турбонасосного агрегата. Т.к.  данное устройство является очень сложным, то после наступления аварийной ситуации  проблематично определить вид поломки, в каком состоянии работы на данный момент  находится агрегат и как его снова перевести в рабочее состояние. Нейронная сеть  позволяет либо предупредить аварию, либо фиксирует время, когда произошел отказ и  определяет вид отказа. Применение SWITCH­технологии при разработке управляющего  ПО позволяет получить полный протокол работы диагностирующего автомата – в любой  момент времени его работы можно узнать в каком состоянии автомат находится, и в какое  состояние его можно перевести. Создание прикладного ПО для мобильных устройств и микроконтроллеров При построении серверных приложений, отвечающих на запросы, большую роль играет  «отсутствие состояния» — нет нужды сохранять состояния между двумя  последовательными запросами. При построении удачного интерактивного приложения управляемого событиями, многое  зависит от того, продумана ли модель управления состояниями. Конечный автомат — весьма удобная концепция, которую целесообразно использовать для  структурирования приложений. Поскольку мобильные приложения должны использовать пространство экрана и системные ресурсы эффективно, конечные автоматы оказываются особенно полезными при  разработке ПО для таких приложений. Программа представляет собой совокупность конечных автоматов, взаимодействующих  друг с другом и с «внешним миром». Диаграмма переходов КА описывает переходы между экранными формами, дуги переходов из состояния в состояние описывают действия  пользователя. С каждой из конструируемых форм должен связываться конечный автомат,  управляющий визуальным поведением формы. Если в самой форме содержится несколько  страниц, например, диалоговые окна с вкладками, то предусматривается для каждой из  подстраниц собственный конечный автомат. Конечные автоматы значительно расширяют возможности управления выполнением  фоновых задач. Их использование делает возможным предоставление фоновыми потоками  информации о состоянии выполнения, а также обращение других потоков с запросами к  фоновому потоку на выполнение определенных действий, например, с запросом на  прекращение выполнения фоновой работы. При этом в наглядной графической форме  могут быть выражены как связи между автоматами, так и их внутренняя  структура. Главное преимущество: возможность повторного использования кода, быстрая модификация, наглядность, что важно в случае приложений для мобильных устройств,  требующих экономного расходования экранного пространства, памяти, вычислительной  мощности и других ресурсов. Построение моделей документооборота на основе конечно­автоматной модели теории  автоматов В современном обществе идет процесс интенсификации вычислительных и  информационных технологий во всех отраслях деятельности. Документооборот — движение документов в организации с момента их создания или  получения до завершения исполнения: отправки и/или направления в дело. Внедрение электронного документооборота является актуальной задачей современного общества, т.к.  он позволяет сделать процесс движения документов управляемым и контролируемым, что  обеспечивает более качественные услуги управления. Предприятия и организации для  решения этой задачи тратят значительные средства и время. В тоже время, каждая  разработка системы документооборота является уникальной и возможность повторного  использования полученного опыта в полном объеме практически отсутствует. Правильная  организация данного процесса определяет качество и стабильность работы любого  предприятия. Использование автоматной модели в разработке спецификаций документооборота и  программного продукта позволяет создавать системы более адекватные требованиям  пользователей и обеспечивает возможность достижения совместимости приложений. Теория автоматов позволяет реализовать логику ветвления движения документов между  участниками процессов документооборота. Автомат позволяет установить реакцию  элементов системы документооборота на изменения в системе. В качестве моделируемого объекта рассматривается так называемый композитный  документооборот, то есть такой документооборот, в котором участвуют, как электронные,  так и бумажные представления документов. Композитный документооборот  представляется тройкой: Дт = {У, Д, Ф}, где   Дт – формальная модель документооборота;  У – множество участников;  Д – множество действий;  Ф – множество состояний документов. Множество состояний документов S получается путем анализа жизненного цикла  документа. Это множество всех состояний, которые могут быть приняты документом в  пределах моделируемого документооборота, где каждое значение уникально: {S}={Ф}. Под начальным состоянием подразумевают первоначальное состояние, в которое поступает документ после инициализации процесса. При представлении документооборота в виде  совокупности процессов, начальное состояние представляет первый шаг, после которого  можно говорить о том, что документ существует и процесс активизирован. Таким образом,  начальные состояния – это объекты, элементы множества Ф, которые имеют одну или  несколько исходящих связей и ни одной входящей. Документооборот состоит из совокупности процессов, каждый из которых обрабатывает  один или несколько документов. Жизненный цикл процесса документооборота  определяется движением документов от начальных состояний к завершающим состояниям. В рассматриваемой модели завершающие состояния автомата определяются, как состояния документа, после возникновения которых работа автомата останавливается, то есть  процесс документооборота перестает существовать. Таким образом, завершающие  состояния можно определить как объекты множества Ф, которые имеют одну или  несколько входящих связей и ни одной исходящей. В документообороте документ принимает следующее состояние в зависимости от  результата действия, которое над ним произвели. Функцию перехода автоматной  модели документооборота можно определить как i­й элемент множества действий {Д}  документооборота, после выполнения которого, происходит смена состояния на  состояние. {F}={Д} Алфавит автомата – это множество символов, наборы которого поступают или могут  поступить автомату. В качестве алфавита автомата следует рассматривать список  участников. Можно однозначно определить автомат, который будет адекватно реализовывать модель  документооборота. Модель, построенная на детерминированных автоматах, позволяют  строить модели, которые легче воспринимаются визуально. Для них проще построить  программную реализацию. В то же время, при создании моделей процессов, имеющих  сложную ветвящуюся структуру, автоматная модель на детерминированных автоматах  получается большой и громоздкой. Недетерминированные автоматы позволяют задавать сложные процессы, используя  меньшее количество описательного материала. Однако, для наглядного восприятия они  намного сложнее. Вывод: при небольших слаборазветвленных процессах лучше использовать  детерминированные автоматы, в то время, как недетерминированные более удобны при  задании процессов с большим количеством шагов и ветвлений. После разработки теоретической базы реализуется программное обеспечение,  применяющее на практике автоматную и графовую модели документооборота. Каждый из  участников имеет возможность получать доступ к конкретным видам документов и  выполнять над ними строго определенные действия. Реализация систем композитного документооборота позволяет сделать делопроизводство  более прозрачным и прогнозированным, уменьшает личностное влияние исполняющего  персонала на конечный результат. Рассмотренная отрасль в настоящее время быстро развивается. Проводятся дальнейшие  исследования в данном направлении, особенно это касается применения КС­грамматик и  создания программного обеспечения, реализующих описанную автоматную модель  композитного документооборота в полном объеме. Поиск цепочек в тексте Согласно данным официальной статистики, около 85 % пользователей Интернет постоянно обращаются к поисковым системам  (Google, Yandex, Rambler, Yahoo!, Апорт, Поиск@Mail.ru и др.) с целью найти  необходимую им информацию о товарах или услугах. Положения теории автоматов прекрасно подходят для описания таких реальных  задач, возникающих в приложениях, как поиск в сети Internet и извлечение  информации из текста. Многие современные поисковые системы Интернета используют  специальную программу – поисковый робот, который является автоматом. В век Internet и электронных библиотек с непрерывным доступом обычной является  следующая проблема. Задано некоторое множество слов, и требуется найти все  докумен¬ты, в которых содержится одно (или все) из них. Популярным примером такого  процесса служит работа поисковой машины, которая использует специальную технологию  поиска, называемую обращенными индексами (inverted indexes). Для каждого слова,  встречающегося в Internet (а их около 100,000,000), хранится список адресов всех мест, где оно встречается. Машины с очень большим объемом оперативной памяти обеспечивают  постоянный доступ к наиболее востребованным из этих списков, позволяя многим людям  одновременно осуществлять поиск документов. В методе обращенных индексов конечные автоматы не используются, но этот метод  требует значительных затрат времени для копирования содержимого сети и переписывания индексов. Существует множество смежных приложений, в которых применить технику  обращенных индексов нельзя, зато можно с успехом использовать методы на основе  автоматов. Те приложения, для которых подходит технология поиска на основе автоматов, имеют следующие отличительные особенности: 1. Содержимое хранилища текста, в котором производится поиск, быстро  меняется. Вот два примера: o каждый день аналитики ищут статьи со свежими новостями по  соответствующим темам. К примеру, финансовый аналитик может искать  статьи с определенными аббревиатурами ценных бумаг или названиями  компаний; o "робот­закупщик" по требованию клиента отслеживает текущие цены по  определенным наименованиям товаров. Он извлекает из сети страницы,  содержащие каталоги, а затем просматривает эти страницы в поисках  информации о ценах по конкретному наименованию. 2. Документы, поиск которых осуществляется, не могут быть каталогизированы. Например, очень непросто отыскать в сети все страницы, содержащие информацию обо  всех книгах, которые продает компания Amazon.com, поскольку эти страницы  генерируются как бы "на ходу" в ответ на запрос. Однако мы можем отправить запрос на  книги по определенной теме, скажем, "конечные автоматы", а затем искать в той части  текста, которая содержится на появившихся страницах, определенное слово, например  слово "прекрасно". Моделирование работы банкомата Банкомат ­ это автоматизированное устройство, позоляющее удаленно осуществлять  операции, связанные с аутентификацией пользователя (держателя счета в банке),  просмотром текущего состояния счета, снятием денег со счета и осуществлением  различных платежей. В данном примере рассматривается работа банкомата, включая не  только клиентскую часть, но и серверную часть, обрабатывающую запросы, а также  подсистему авторизации. Основная задача при реализации таких систем ­ гарантия высокого уровня надежности  клиентов­пользователей банка и информационной системы банка. На основе SWITH­технологии был разработаны граф и выполнена генерация кода с  помощью инструментального средства UniMod. При его применении сначала в общем  случае строится система взаимосвязанных автоматов (AClient и AServer), а затем на языке  Java программируются функции входных и выходных воздействий. Таким образом,  программа разделяется на независимые блоки, что позволяет облегчить ее написание и  уменьшает вероятность возникновения ошибок. Граф переходов автомата клиента AClient: Граф переходов автомата AServer, посылающего запросы на сервер: Схема связей автоматов: Несмотря на отсутствие связи между автоматами, AServer вложен в AClient. При  нахождении автомата AClient в состояниях «Авторизация», «Запрос баланса» и  «Запрос денег» программно управление передается автомату AServer , который  отправляет запрос на сервер, получает ответ и возвращает управление автомату AClient. Сам сервер спроектирован традиционным путем и реализован как  консольное приложение. Интерфейс программы: Пример показывает, что инструментальное средство UniMod позволяет упростить процесс  создания программы, по сравнению с традиционным подходом. При этом большая часть  времени разработчика уходит на проектирование системы. Ввиду того, что основная часть  кода генерируется автоматически, повышается надежность программы. Система управления автомобильной сигнализацией Реализация автомата с помощью UniMod: Автомат А1(основной): Автомат А2 (для управления звуком): Как следует из рассмотрения схемы связей, в системе имеется два автомата: A1 и А2.  Первый из них является главным, а второй играет вспомогательную роль. Он вложен в  состояния первого, а именно в состояния «1. Выключена» и «2. Включена». Использование  вложенных автоматов оправдано тем, что это сильно упрощает диаграммы автоматов и  уменьшает количество переходов. Пульт управления (брелок) и датчик удара представляются как генераторы событий, а  фары, сирена и светодиод – как объекты управления. Использование сложного состояния  «2. Включена» (содержит 3 состояния) обеспечивает возможность выключения  сигнализации в каком бы состоянии не находился автомат. Генераторы событий системы Генератор событий p1. Этот объект описывает события, производимые пультом  управления сигнализацией. События:  e11 – нажатие кнопки «1»;  e12 – нажатие кнопки «2»;  e13 – нажатие кнопки «3». Генератор событий p2. Этот объект соответствует датчику удара. Он может выдавать два события:  e21 – фиксирование слабого удара;  e22 – фиксирование сильного удара. Генератор событий p3. Этот объект запускает один из трех таймеров. Когда отсчет  завершается, он генерирует соответствующее событие. Таймер запускается по запросу  объекта управления «o2» с указанием номера и требуемого времени.  e31 – таймер «1» завершил отсчет (таймер для отсчета времени в состоянии «3.  Тревога» автомата А1);  e32 – таймер «2» завершил отсчет (таймер для отсчета времени в состоянии «2.  Состояние опасности» автомата А1);  e33 – таймер «3» завершил отсчет (таймер для управления выключением звука). Объекты управления системы Объект управления o1. Этот объект описывает действия, совершаемые фарами  автомобиля.  z1 – мигнуть один раз;  z2 – мигнуть два раза;  z3 – мигнуть три раза;  z4 – начать подавать тревожный сигнал;  z5 – прервать любые действия. Объект управления o2. Этот объект используется для запуска таймера «p3».  z1 – запустить таймер «1» на 15 с;  z2 – запустить таймер «2» на 5 с;  z3 – запустить таймер «3» на 3 с; z4 – остановить все таймеры. Объект управления o3. Данный объект управления отражает работу сирены. Его  выходные воздействия практически совпадают с выходными воздействиями фар.  x1 – логическая переменная, показывающая включен звук (то есть может подавать  сигналы) или нет;  z1 – генерация звука, соответствующего постановке автомобиля на сигнализацию;  z2 – генерация звука, соответствующего снятию автомобиля с сигнализации;  z3 – генерация звука, соответствующего реакции на слабый удар;  z4 – начать подавать тревожный сигнал;  z5 – прервать звук;  z6 – включить звук (разрешить подавать сигналы);  z7 – выключить звук (запретить подавать сигналы). Объект управления o4. Этот объект управления описывает работу светодиода,  расположенного в машине. Он показывает текущее состояние сигнализации.  z1 – начать мигание;  z2 – завершить мигание. Объект управления o5. Данный объект управления используется для вывода  комментариев к действиям, производимым над системой и ее реакции на них.  z1 – сигнализация включена;  z2 – сигнализация выключена;  z3 – включен тихий режим, ожидание команды;  z4 – время ожидания вышло, тихий режим выключен;  z5 – получен слабый удар;  z6 – получен сильный удар;  z7 – переход в режим опасности, ожидание возможного повторного удара;  z8 – время ожидания вышло, переход в нормальный режим;  z9 – включена тревога;  z10 – тревога выключена. Автоматы и нейронные сети Создание нейросетевой конечно­автоматной модели турбонасосного агрегата ТНА  жидкостного ракетного двигателя (ЖРД). Система контролирующих нейронных сетей: На этом рисунке и далее использованы следующие обозначения: ОТ­1 – значение оборотов  турбины ТНА, измеренное на предыдущем шаге; ОТ­2 – значение оборотов турбины ТНА, измеренное на два шага ранее; ТОПН – температура окислителя после насоса; ДОДТ – давление окислительного газа до турбины; ДОПТ – давление окислительного газа после турбины; ДОДН – давление окислителя до насоса; ДОПН­1 – давление окислителя после насоса, измеренное на предыдущем шаге; ДОПН­2 – давление окислителя после насоса, измеренное на два шага ранее; ДГПН1­1 – давление горючего после первой ступени насоса, измеренное на предыдущем  шаге; ДГПН1­2 – давление горючего после первой ступени насоса, измеренное на два шага ранее; ДГДН – давление горючего до насоса; ДГПН2­1 – давление горючего после второй ступени насоса, измеренное на предыдущем  шаге; ДГПН2­2 – давление горючего после второй ступени насоса, измеренное на два шага ранее. В каждый момент времени сигналы от датчиков поступают на входы сетей. При этом на  выходе получаем значение контролируемого параметра (ОТnet, ДОПНnet, ДГПН1net,  ДГПН2net) в виде следующей зависимости: Параметрическая зависимость ТНА при успешном испытании  Параметрическая зависимость ТНА при аварийном испытании На аварийном графике изменения носят резкий, скачкообразный характер. Если  отклонения не превышают заданной величины, то считается, что ТНА функционирует  нормально, в противном случае диагностируется отказ. При функционировании ТНА представляется в виде конечного автомата. Состояния, в  которых он может находиться: Ожидание, Запуск, Основной режим, Останов, Аварийное  состояние (разделяется на ряд состояний, классифицирующих характер отказа). При использовании нейронных сетей появляется возможность раннего диагностирования  аварийных ситуаций, что позволяет снизить последствия аварии и предотвратить  разрушение двигателя при проведении огневых испытаний. Автоматный подход позволяет  исключить появление непредусмотренных состояний. В случае отказа (выход любой из четырех сетей равен единице) активируются нейронные  сети, обученные на характерных для ТНА отказах, по показаниям которых можно  определить, что послужило причиной отказа (выход сети равен единице). Если этого  сделать не удается (несколько выходов сетей равны единице), то считается что отказ  комбинированный – одновременно произошло несколько отказов, а в случае  неопределенности (все выходы сетей равны нулю), автомат переходит в состояние Новый  отказ. Т.о. нейронная сеть позволяет либо предупредить аварию, либо фиксирует время, когда  произошел отказ и определяет вид отказа. Применение SWITCH­технологии при  разработке управляющего ПО позволяет получить полный протокол работы  диагностирующего автомата – в любой момент времени его работы можно узнать в каком  состоянии автомат находится, и в какое состояние его можно перевести. Схема формирования диагностического признака  Граф переходов конечного автомата, моделирующего ТНА Поиск цепочек в тексте Детерминированным конечным автоматом (ДКА) называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего. Состояния автомата: q1 – начальное состояние q2 –найден символ w  q3 – найден символ e  q4 – найден символ b (слово найдено)  q5 – найден символ e  q6 – найден символ b  q7 – найден символ a  q8 – найден символ y (слово найдено)  НДКА, осуществляющий  поиск слов web и ebay Начальное состояние — это  состояние 1. Состояния 2­4  отвечают за распознавание  слова web, а состояния 5­8 — за распознавание слова ebay.

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия

Теория автоматов. Общие понятия
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
17.02.2017