§ 7.8. Реализация нечеткими автоматами временных соотношений
Рассмотрим возможность практического использования модели нечеткого автомата для описания функционирования дискретных управляющих устройств, в частности, для анализа реальных временных процессов, протекающих в таких устройствах. В теории автоматов и в теории логического синтеза дискретных управляющих устройств используются модели различного типа (классическая модель абстрактного конечного автомата, микропрограммный автомат, апериодический автомат, секвенциальный автомат и т. п.). Все эти модели обладают следующей особенностью. В них явно не описывается временная реализация алгоритма функционирования. Реальное время заменено в этих моделях набором возможных последовательностей смены внутренних состояний автомата и правилами выбора в данный такт работы того или иного перехода на той или иной последовательности. Сами такты работы не связаны с длительностью их реализации в физическом времени. Подобные допущения ограничивают возможности таких моделей. Удобные при структурном синтезе и анализе функционирования исследуемых устройств, они становятся явно неудобными при анализе процессов, протекающих в реальных устройствах во времени, и при синтезе этих устройств с учетом качества их функционирования во времени.
Для задания функционирования автомата в реальном времени необходимы распределения моментов смены сигналов и их значений, а также — вероятностные распределения для интервалов смены сигналов и значений сигналов. Однако на практике в подавляющем большинстве случаев нет априорной информации о необходимых вероятностных распределениях. Поэтому при решении задач, возникающих при анализе и синтезе логических устройств, представляется естественным вместо вероятностных распределений использовать нечеткие распределения.
Рассмотрим вначале простой пример, с помощью которого попытаемся объяснить суть предлагаемого подхода.
Пример 7.8. Пусть на каком-либо из этапов синтеза получена диаграмма переходов синтезируемого автомата, представленная на рис. 7.3. На ней показаны только те переходы, которые необходимо реализовать технологически. Если для кодирования множества внутренних состояний синтезируемого автомата мы будем использовать двухпозиционный код, то, как это следует из диаграммы переходов, нам не удастся избавиться от состязаний. Однако пусть нам, например, известно, что из двух триггеров, которые будут использоваться для записи текущего состояния автомата в реальной схеме, переходный процесс в одном из них протекает значительно быстрее, чем в другом. Слова «значительно быстрее», которые мы только что использовали, должны пониматься качественно. Пока мы не предполагаем никакой количественной оценки этих слов. Будем для удобства считать, что «значительно быстрее» перекидывается триггер, используемый для кодирования первой позиции в коде состояния. Опишем теперь процедуру выбора кодов состояний. Если состояние q, закодировать кодом 11, то при переходе в состояние с кодом 00 в качестве промежуточного состояния возникнет код состояния
При переходе же от кода 00 к коду 11 — возникнет код промежуточного состояния 10. Учитывая это, а также особенности исходной диаграммы переходов, можно предложить следующее кодирование состояний
На рис. 7.4 показана результирующая диаграмма переходов автомата.
Из этой диаграммы видно, что функция переходов автомата будет реализовываться всегда правильно за исключением перехода 11-10-00. Однако из-за того, что первый триггер перекидывается «значительно быстрее» второго триггера, то автомат с подобным кодированием состояний будет работать «почти всегда правильно». Отметим, что инженер-практик, имеющий априорную информацию о скорости срабатывания триггеров, подобную вышеприведенной информации, выберет кодирование такого же типа.
Рис. 7.3. Укрупненная диаграмма переходов синтезируемого автомата
Рис. 7.4. Закодированная диаграмма переходов