Теория автоматов. Учебное пособие

Поиск материалов:

Количество Ваших материалов: 0.

Добавьте 1 материал

Свидетельство
о создании электронного портфолио

Добавьте 5 материала

Секретный
подарок

Добавьте 10 материалов

Грамота за
информатизацию образования

Добавьте 12 материалов

Рецензия
на любой материал бесплатно

Добавьте 15 материалов

Видеоуроки
по быстрому созданию эффектных презентаций

Добавьте 17 материалов

На протяжении последних десятилетий велись и ведутся интенсивные работы по созданию
и использованию различных систем и устройств для переработки дискретной
информации. Преобразователи дискретной информации широко используются в качестве
различного рода технических автоматов, вычислительных устройств и их функциональных
блоков, устройств управления роботами, управляющих объектами по заданному
алгоритму. Широкий класс таких преобразователей объединяется под общим названием
­автоматы. Эти устройства имеют конечное число входов, воспринимающих информацию,
и конечное число выходов для выдачи переработанной информации. Зависимость между
входами и выходами задается предписанным алгоритмом переработки информации.
Информация на входе и выходе представляется символами, физическими носителями
которых являются квантованные по времени сигналы.
Если «К» символов одновременно следующих по параллельным входным либо выходным
каналам, рассматривать как один символ из соответствующего алфавита, следующего по
единому "склеенному" каналу, то такой автомат можно представить как устройство с
одним входом и одним выходом (рис. 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, поскольку эти страницы
генерируются как бы "на ходу" в ответ на запрос. Однако мы можем отправить запрос на
книги по определенной теме, скажем, "конечные автоматы", а затем искать в той части
текста, которая содержится на появившихся страницах, определенное слово, например
слово "прекрасно".
Моделирование работы банкомата
Банкомат ­ это автоматизированное устройство, позоляющее удаленно осуществлять
операции, связанные с аутентификацией пользователя (держателя счета в банке),
просмотром текущего состояния счета, снятием денег со счета и осуществлением
различных платежей. В данном примере рассматривается работа банкомата, включая не
только клиентскую часть, но и серверную часть, обрабатывающую запросы, а также
подсистему авторизации.
Основная задача при реализации таких систем ­ гарантия высокого уровня надежности
клиентов­пользователей банка и информационной системы банка.

Несмотря на отсутствие связи между автоматами, AServer вложен в AClient. При
нахождении автомата AClient в состояниях «Авторизация», «Запрос баланса» и
«Запрос денег» программно управление передается автомату AServer , который
отправляет запрос на сервер, получает ответ и возвращает управление автомату

AClient. Сам сервер спроектирован традиционным путем и реализован как
консольное приложение.
Интерфейс программы:
Пример показывает, что инструментальное средство UniMod позволяет упростить процесс
создания программы, по сравнению с традиционным подходом. При этом большая часть
времени разработчика уходит на проектирование системы. Ввиду того, что основная часть
кода генерируется автоматически, повышается надежность программы.
Система управления автомобильной сигнализациейфары, сирена и светодиод – как объекты управления. Использование сложного состояния
«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 – мигнуть три раза;

 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. Данный объект управления используется для вывода

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

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

  • 1 Терминология
  • 2 Применение
    • 2.1 Типовые задачи
  • 3 См. также
  • 4 Литература
  • 5 Ссылки

Терминология

Символ - любой атомарный блок данных, который может производить эффект на машину. Чаще всего символ - это буква обычного языка, но может быть, к примеру, графическим элементом диаграммы.

  • Слово - строка символов, создаваемая через конкатенацию (соединение).
  • Алфавит - конечный набор различных символов (множество символов)
  • Язык - множество слов, формируемых символами данного алфавита. Может быть конечным или бесконечным.


Автоматы

Автоматы могут быть детерминированные и недетерминированные.

Детерминированный Конечный Автомат (ДКА)
  • - функция перехода, такая что
  • - начальное состояние
Недетерминированный Конечный Автомат (НКА) - последовательность (кортеж) из пяти элементов, где:
  • - множество состояний автомата
  • - алфавит языка, который понимает автомат
  • - отношение перехода, где - пустое слово. То есть, НКА может совершить скачок из состояния q в состояние p, в отличие от ДКА, через пустое слово, а также перейти из q по a несколько состояний (что опять же в ДКА невозможно)
  • - множество начальных состояний
  • - множество конечных состояний.
Слово Автомат читает конечную строку символов a1,a2,…., an , где ai ∈ Σ, которая называется входным словом.Набор всех слов записывается как Σ*. Принимаемое слово Слово w ∈ Σ* принимается автоматом, если qn ∈ F.

Говорят, что язык L читается (принимается) автоматом M, если он состоит из слов w на базе алфавита таких, что если эти слова вводятся в M, по окончанию обработки он приходит в одно из принимающих состояний F:

Обычно автомат переходит из состояния в состояние с помощью функции перехода, читая при этом один символ из ввода. Есть автоматы, которые могут перейти в новое состояние без чтения символа. Функция перехода без чтения символа называется -переход (эпсилон-переход).

Применение

Теория автоматов лежит в основе всех цифровых технологий и программного обеспечения, так например компьютер является частным случаем практической реализации конечного автомата.

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

Другое важнейшее применение теории автоматов - математически строгое нахождение разрешимости и сложности задач.

Типовые задачи

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

См. также

  • Лемма о накачке
  • Абстрактный автомат
  • Игра «Жизнь»
  • Минимальная форма автомата
  • Теорема Шеннона - Лупанова

Литература

  • Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман. Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. - М.: Вильямс, 2002. - С. 528. - ISBN 0-201-44124-1.
  • Касьянов В. Н. Лекции по теории формальных языков, автоматов и сложности вычислений. - Новосибирск: НГУ, 1995. - C. 112.

Ссылки

  • Применение теории автоматов

теория автоматов

А.А. Ожиганов Теория автоматов. Учебное пособие - Санкт-Петербург: НИУ ИТМО, 2013. - 84 с. - экз.

Аннотация:

Целью данного учебного пособия является ознакомление студентов с методами синтеза цифровых автоматов. Приводятся сведения об абстрактных автоматах Мили и Мура. Рассматриваются табличный и графовый способы представления автоматов, вводится понятие реакции автомата на входное слово и определение эквивалентных автоматов. Представлены методы взаимного эквивалентного преобразования автоматов. Приводятся общие сведения о микропрограммном управлении, понятия микрокоманды, микрооперации, микропрограммы, способы представления микропрограмм в виде граф-схем алгоритмов (ГСА), формул переходов, матричных и логических схем алгоритмов. Приводятся методы разметки ГСА и правила построения по ним автоматов Мили и Мура. Рассматриваются методы канонического синтеза структурных автоматов. Приводятся примеры синтеза памяти структурного автомата на базе D -, Т -, RS - и JK триггеров.

Описание:

Пособие предназначено для студентов, специализирующихся в области информационных технологий и может быть использовано при подготовке бакалавров и магистров по направлениям 230100 «Информатика и вычислительная техника», 231000 «Программная инженерия» и инженеров по специальности 230101 «Вычислительные машины, комплексы, системы и сети».

Все рассмотренные выше устройства относятся к классу комбинационных схем, то есть дискретных устройств без памяти. Наряду с ними в цифровой технике широкое распространение получили последовательностные автоматы, или, иначе, комбинационные схемы, объединенные с элементами памяти.

Под термином автомат можно понимать некоторое реально существующее устройство, функционирующее на основании как сигналов о состоянии внешней среды, так и внутренних сигналов о состоянии самого автомата. В этом плане ЭВМ может быть рассмотрена как цифровой автомат. Под цифровым автоматом понимается устройство, предназначенное для преобразования цифровой информации. С другой стороны, под термином автомат можно понимать математическую модель некоторого устройства. Общая теория автоматов подразделяется на две части: абстрактную и структурную теорию автоматов. Различие между ними состоит в том, что абстрактная теория абстрагируется от структуры как самого автомата, так и входных и выходных сигналов. В абстрактной теории анализируются переходы автомата под воздействием абстрактных входных слов и формируемые на этих переходах абстрактные выходные слова.

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

В соответствии с этим принято различать две модели автоматов: структурную и абстрактную. Абстрактная модель применяется при теоретическом рассмотрении автоматов. Структурная модель служит для построения схемы автомата из логических элементов и триггеров и предназначена для выполнения функции управления.

Абстрактный автомат – это математическая модель цифрового автомата, задаваемая шестикомпонентным вектором S=(A,Z,W,d,l,a 1), где А={a a ,…,a m } – множество внутренних состояний абстрактного автомата; Z=, в которые автомат перейдет из состояния a i под воздействием сигнала x j; а в таблице выходов - соответствующий этому переходу выходной сигнал y g = [ a i,x j]. Иногда автомат Мили задают совмещенной таблицей переходов и выходов, она в некоторых случаях более удобна.

Совмещенная таблица переходов и выходов автомата Мили:

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

Отмеченная таблица переходов автомата Мура:

В этой таблице каждому столбцу приписан, кроме состояния a i, еще и выходной сигнал y (t ) = (a (t)), соответствующий этому состоянию. Таблица переходов автомата Мура называется отмеченной потому, что каждое состояние отмечено выходным сигналом.

При графическом способе задание автомата осуществляется с помощью графа. Этот способ основан на использовании ориентированных связных графов. Вершины графов соответствуют состояниям автомата, а дуги - переходам между ними. Две вершины графа a i и a s соединяются дугой, направленной от a i к a s, если в автомате имеется переход из a i в a s, то есть a s = (a i, x j). В автомате Мили дуга отмечается входным сигналом x j, вызвавшим переход, и выходным сигналом y g, который возникает при переходе. Внутри кружочка, обозначающего вершину графа, записывается состояние.

Граф для автомата Мили:

Граф для автомата Мура

2.3 Частичные автоматы

В инженерной практике часто встречаются автоматы, на входы которых некоторые последовательности сигналов никогда не подаются. Такие последовательности будем называть запрещенными входными словами данного автомата, а сам автомат - частичным автоматом. У частичного автомата функции переходов и выходов определены не на всех парах ai, xj. На месте неопределенных состояний и выходных сигналов ставится прочерк. При синтезе обычно производят доопределение частичного автомата, чтобы его схемная реализация получилась как можно проще.

Пример таблицы переходов и выходов частичного автомата Мили

Из таблицы переходов видно, что Т-триггер обладает полной системой переходов и выходов, поскольку для каждой пары состояний (0-0, 0-1, 1-0,

1-1) имеется входной сигнал, обеспечивающий переход из одного состояния в другое. Кроме того, каждое состояние автомата отмечено отличным от других выходным сигналом. На практике более удобно вместо отмеченных таблиц переходов пользоваться так называемыми матрицами переходов элементарных автоматов.

Матрица переходов:

Матрица переходов определяет значения сигналов на входах элементарного автомата, обеспечивающие каждый их четырех возможных переходов. Здесь Q(t) и Q(t+1) - состояния автомата в моменты времени t и t+1 соответственно. Поскольку Т-триггер имеет один вход, а число возможных переходов равно четырем, то матрица переходов имеет четыре строки.

Для записи закона функционирования Т-триггера в аналитическом виде составим диаграмму Вейча по матрице перехода:

Из диаграммы имеем:

=> (T(t) + Q(t)) mod 2

Поскольку эта формула совпадает с аналитической записью переключательной функции сложение по модулю два, то Т-триггер часто называют триггером со счетным входом Т, а входной сигнал, поступающий на вход Т, счетным сигналом. На практике кроме асинхронного Т-триггера, работу которого мы рассмотрели, используют так же и синхронный Т-триггер, который в отличие от асинхронного меняет свои состояния только при Т = 1 и С = 1. Если хотя бы один из этих сигналов равен нулю, то триггер сохраняет свое состояние. Вход С называют входом синхронизации.

Поясняющая работу комбинационная схема и обозначение синхронного

Т-триггера представлены на рисунке:

2.5 D-триггер

D-триггером (триггером задержки) называют элементарный автомат Мура с двумя устойчивыми состояниями и одним входом D таким, что Q(t+1) = D(t). Название D-триггера происходит от английского слова "delay" - задержка. Из определения следует, что состояние триггера в момент времени t+1 повторяет значение входного сигнала D(t) в момент времени t (отсюда и название триггера задержки).

Матрица переходов для D-триггера:

Обозначения асинхронного и синхронного D-триггеров:

В синхронном D-триггере при С=0 триггер свое состояние не меняет, а при С=1 работает так же, как и асинхронный, то есть

Q(t+1)=D(t)*C(t) v Q(t)*

Асинхронный D-триггер практического значения не имеет.

Граф D-триггера

2.6 RS-триггер

RS-триггером называют автомат Мура с двумя устойчивыми состояниями, имеющий два входа R и S такие, что при S=1 и R=0 триггер принимает состояния 1, а при R=1 и S=0 состояние 0. В соответствие с состоянием, принимаемым триггером, вход S называет единичным входом, а вход R нулевым.

Матрица переходов RS-триггера:

Комбинация сигналов R=1 и S=1 является запрещенной и поэтому переход в триггере при таких значениях входных сигналов не определен. Переход триггера из 0 в 0 возможен при двух комбинациях входных сигналов: R=0, S=0 и R=1, S=0. Поэтому в первой строке матрицы переходов RS триггера в столбце R поставлена переменная b1, которая может принимать два значения 0 v 1. Аналогично, переход из состояния 1 в 1 также возможен при двух комбинациях входных сигналов: R=0, S=0 и R=0, S=1. Поскольку при таком переходе значения сигнала на входе S безразлично, то в нижней строке матрицы переходов в столбце S записана переменная b2. По матрице переходов можно построить граф RS-триггера.

Автоматы, которые могут переходить из одного состояния в другое под действием нескольких комбинаций входных сигналов, называются автоматами с избыточной системой переходов. Избыточность можно использовать в процессе синтеза для упрощения схемы, придавая переменным b1 и b2 такие значения, которые позволяют минимизировать число элементов. Поэтому, если схемы двух элементарных автоматов равноценны по сложности, то предпочтение отдают автомату, имеющему большую избыточность системы переходов.

Запишем закон функционирования RS-триггера в аналитическом виде, для чего составим по матрице переходов диаграмму Вейча:

2.7 JK-триггер

JK-триггером называют автомат Мура с двумя устойчивыми состояниями и двумя входами J и K, который при условии J * K = 1 осуществляет инверсию предыдущего состояния (т.е. при J*K=1, Q(t+1) = Q(t)), а в остальных случаях функционируют в соответствии с таблицей истинности RS триггера, при этом вход J эквивалентен входу S, а вход K - входу R. Этот триггер уже не имеет запрещенной комбинации входных сигналов и его таблица истинности, то есть зависимость Q(t+1) = f имеет вид:

Таблица истинности JK-триггера:

По этой таблице можно построить диаграмму Вейча для Q(t+1), которую можно использовать для минимизации, и матрицу переходов:

Матрица переходов JK-триггера:

В интегральной схемотехнике применяются только тактируемые (синхронные) JK триггера, которые при C=0 сохраняют свое состояние, а при C=1 работают как асинхронные JK триггера.

2.8 Универсальный триггер

Триггер JK относится к разряду универсальных триггеров, поскольку на его основе путем несложной внешней коммутации можно построить RS-, D- и T- триггера. RS-триггер получается из триггера JK простым наложением ограничения на комбинацию входных сигналов J=K=1, так как эта комбинация является запрещенной для RS триггера.

Счетный триггер на основе JK триггера получается путем объединения входов J и K.

Триггер задержки (D-триггер) строится путем подключения к входу K инвертора, на который подается тот же сигнал, что и на вход J. В этом случае вход J выполняет функцию входа D, а все устройство в целом реализует таблицу переходов D-триггера .

Заключение

В данной работе были описаны основные принципы работы автоматов. При этом автоматы были разделены на абстрактные и автоматы, применяемые в микросхемотехнике. Так же теория автоматов тесно связана с теорией алгоритмов.

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

Список использованных источников

1. Дискретная математика. Учебное пособие. Саяпин А.В., Сливина Т.А. Редакционно-издательский отдел СибГАУ. Красноярск 2010 163с.

2. Лекции по теории цифровых автоматов [Электронный ресурс]. Лекции [Сайт]. URL: http://www.twirpx.com/file/455856/

Размещено на Allbest.ru

...

Подобные документы

    Теория приближений как раздел математики, изучающий вопрос о возможности приближенного представления математических объектов. Построение интерполяционного многочлена. Приближение кусочно-полиномиальными функциями. Алгоритм программы и ее реализация.

    курсовая работа , добавлен 18.10.2015

    Описание абстрактных, структурных и частичных конечных автоматов. Работа синхронных конечных автоматов, содержащих различные типы триггеров, определение сигналов их возбуждения. Пример канонического метода структурного синтеза. Схема дверного замка.

    учебное пособие , добавлен 07.06.2009

    Теория вероятностей - раздел математики, изучающий закономерности случайных явлений: случайные события, случайные величины, их свойства и операции над ними. Методы решения задач по теории вероятности, определение математического ожидания и дисперсии.

    контрольная работа , добавлен 04.02.2012

    Теория игр – раздел математики, предметом которого является изучение математических моделей принятия оптимальных решений в условиях конфликта. Итеративный метод Брауна-Робинсона. Монотонный итеративный алгоритм решения матричных игр.

    дипломная работа , добавлен 08.08.2007

    Теория графов как раздел дискретной математики, исследующий свойства конечных множеств с заданными отношениями между их элементами. Основные понятия теории графов. Матрицы смежности и инцидентности и их практическое применение при анализе решений.

    реферат , добавлен 13.06.2011

    Предмет вычислительной техники - задачи, которые умеют решать машины. Измерение сложности задачи. Алгоритм сортировки слиянием. Полиномиальные и не полиномиальные задачи. Понятие недетерменированного алгоритма. Графическое представление классификации.

    презентация , добавлен 22.10.2013

    Свойства дискретного преобразования Фурье, представленные в виде математических формул, которые наиболее адекватно соответствуют цифровой технике обработки информации. Алгоритм быстрого преобразования Фурье (БПФ), его значение для программирования.

    учебное пособие , добавлен 11.02.2014

    реферат , добавлен 13.01.2011

    Изучение конкретного раздела дискретной математики. Решение 5-ти задач по изученной теме с методическим описанием. Методика составления и реализация в виде программы алгоритма по изученной теме. Порядок разработки программного интерфейса и руководства.

    курсовая работа , добавлен 27.04.2011

    Геометрия как раздел математики, изучающий пространственные отношения и формы, а также другие отношений и формы, сходные с пространственными по своей структуре. Основные этапы становления и развития данной науки, ее современные достижения и перспективы.