SoftCraft
разноликое программирование

Отправная точка
Программирование
Windows API
Автоматы
Нейроинформатика
Парадигмы
Параллелизм
Проектирование
Теория
Техника кодирования
Трансляторы
Прочие вопросы

Разное

Беллетристика
Брюзжалки
Цели и задачи
Об авторе


ЭКСПОНЕНЦИАЛЬНЫЕ АВТОМАТЫ


© 2003 г. Б. П. Кузнецов
д.т.н. (МУФО, С-Петербург)

Исходный текст программы к статье (~17 кб)

Однажды автор решил провести вычислительный эксперимент с моделью конечного автомата (RS-триггером), заменяя дискретные двоичные переменные на непрерывные, изменяющиеся в нормированном диапазоне от нуля до единицы, а знаки логических операций И, ИЛИ, НЕ - на знаки арифметических операций: умножение, сложение и дополнение до единицы, соответственно. В результате проб и ошибок получилась новая математическая модель, изображенная на рис. 1, названная экспоненциальным триггером, так как компьютерное моделирование показало, что данная модель регистрирует приращения входных переменных в соответствии с экспоненциальной зависимостью от времени. Для краткости данную модель будем именовать Э-триггером.

На рис. 1 изображена диаграмма состояний (граф переходов) Э-триггера. Граф содержит две вершины: Р – соответствует состоянию Э-триггера, изменяющего свое значение в непрерывном диапазоне от нуля до единицы; Q – дополнению до единицы (инверсия) этого состояния Р. Дуга и петля, заходящие в одну вершину, каждая вносит свою лепту (приращение) в итоговое на данный момент (дискретного) времени значение соответствующего вершине состояния. Так, например, значение Р складывается из двух компонент p1 и p2. При этом компонента p1 определяет влияние возрастающего значения переменной R (вход сброса Э-триггера) на убывание значения Р, в то время, как компонента p2 определяет влияние возрастающего значения переменной S (вход установки Э-триггера) на возрастание значения P. Формулы вычисления компонент представлены на том же рисунке.

На основе представленного графа переходов составлена следующая система уравнений

(1) P(t) = P(t-1) * (1 – R(t-1)) + Q(t-1) * S(t-1),
Q(t) = Q(t-1) * (1 – S(t-1)) + P(t-1) * R(t-1).

В формулах (1) используются обычные арифметические операции, включая умножение (знак «*»).

Функционирование Э-триггера на базе вычислений в соответствии с (1) можно представить в табличном виде, однако объем такой таблицы достаточно велик. Поэтому ограничимся формульными и графическими пояснениями.

Покажем, что функционирование Э-триггера описывается экспоненциальной зависимостью значения состояния Р от модельного времени t:

(2) P = Po * exp( - (R + S) * t ) + S / (R + S).

В приведенной формуле Po – начальное значение состояния Э-триггера, exp(х) – экспонента, то есть основание натурального логарифма в степени х. При этом предполагается, что Po > S / (R + S).

Подставляя в (1) значение Q, вычисленное через Р, то есть Q = 1 – P (рис. 1), получим

(3) P(t+1) = P(t) * (1 – R(t)) + (1 – P(t)) * S(t).

Это выражение после упрощения и опускания индексов при R и S принимает следующий вид

(4) P(t+1) – P(t) = - P(t) * (R + S) + S.

Считая единичным приращение h времени, дополним правую часть полученного уравнения следующим образом:

(5) P(t+h) – P(t) = (- P(t) * (R + S) + S) * h.

Полагая h > 0, разделим обе части уравнения на h:

(6) ( P(t+h) – P(t) ) / h = - P(t) * (R + S) + S.

Полученное выражение (при h -> 0) есть формула Эйлера для приближенного решения задачи Коши вида

(7) P' = - (R + S) * P + S,

где P' – производная P по времени, P(0) = Po – начальное значение P в момент начала отсчета времени.

В начале положим S = 0, тогда (7) принимает вид

P' = - R * P.

Это уравнение имеет следующее решение:

(8) P = Po * exp(- R * t),

Из этого выражения следует, что при Po > 0 (при воздействии на Э-триггер некоторой величины R > 0 и при S = 0), его состояние изменяется по ниспадающей экспоненте. Будем искать решение уравнения (7) также в виде экспоненциальной зависимости вида

(9) P = U * exp(k * t),

где k = - (R + S). Возьмем производную данной функции

P' = U' * exp(k * t) + U * k * exp(k * t)

и сопоставим ее с выражением (7), заменяя P на (9):

U' * exp(k * t) + U * k * exp(k * t) = U * k * exp(k * t) + S.

После приведения подобных получим:

U' * exp(k * t) = S.

Из данного выражения следует

(10) U' = S * exp( - k * t).

Обозначив знак неопределенного интеграла, получим

U = S * exp( - k * t) * dt = - S / k * exp( - k * t) + C.

Подставляя последнее выражение в (9) получим:

P = (- S / k * exp( - k * t) + C) * exp(k * t) =
    = C * exp(k * t) – S / k.

Полагая С = Ро и заменяя k на – (R + S) приходим к выражению (2).

Аналогично выводится соотношение

(11) Q = Qo * exp( - (S + R) * t ) + R / (S + R)

при Qo > R / (S + R).

Поскольку в (2) имеется ограничение на величину Ро, дополним (в силу того, что P(t) = 1 – Q(t)) выражение (2) следующим образом:

(12) P = 1 - Qo * exp( - (S + R) * t ) - R / (S + R),

что действительно при Po < S / (R + S), Qo = 1 – Po.

Таким образом, система уравнений (11,12) определяет поведение Э-триггера и представляет собой его аналитическую модель. Уравнения (1) определяют алгоритмическую модель Э-триггера.

Для оценки времени переходного процесса, обусловленного экспоненциальной природой поведения Э-триггера, воспользуемся известной в импульсной технике постоянной времени

T = 1 / (R + S).

Как принято считать, переходный процесс завершается в те-чение времени, равном 3Т = 3 / (R + S).

Достаточно легко убедиться в том, что при двоичных значениях (Po, R, S = 0, 1) Э-триггер ведет себя так же, как и обычный RS-триггер.

Экспоненциальная природа поведения Э-триггера представлена на примерах (рис. 2). Первый пример показан на рис. 2а. В исходном состоянии полагаем P = Q = 0.5, R = S = 0. Под воздействием единичного импульса R значение Р падает до нуля (Q как дополнение Р до единицы на рисунке не показывается). Затем через некоторое время появляется сигнал S = 0.1. После этого значение Р экспоненциально возрастает до единицы (при условии со-хранения значения S) за время, примерно равное 3/0.1t, что при t = 1 сек. составит 30 сек. (Отметим, что при исчезновении сигнала S до окончания указанного времени, значение Р станет постоянным и равным той точке экспоненты Р, которой соответствует исчезновение сигнала S.) Далее, согласно рис. 2а появляется сигнал R = S = 0.1. С этого момента значение Р уменьшается по экспоненте до величины 0.5 за время, примерно равное 3/(0.1+0.1)t. При принятом масштабе это время приблизительно равно 15 сек. Затем оба сигнала R и S одновременно исчезают, а значение Р сохраняется равным 0.5.

Изменение выхода Р рассматриваемого Э-триггера по экспоненте особенно ярко выражено при малых значениях сигнала S (R), так как при этом сравнительно большую величину имеет постоянная времени. Если имеет место только один из входных сигналов, то экспонента стремится к единице (при S > 0) или к нулю (при R > 0). Если длительность входного сигнала меньше трех постоянных времени, то запоминается последнее значение экспоненты на момент исчезновения входного сигнала.

Если на входы Э-триггера поступают одновременно два равных по величине сигнала (R = S), то экспонента стремится к значению Р = 0.5 (рис. 2а).

На рис. 2,б представлен пример поведения Э-триггера для случая неравных значений входных сигналов. В начале Р = 0.5, S = R = 0. При одновременном появлении сигналов S = 0.3 и R = 0.2 значение Р по экспоненте увеличивается до величины S / (S + R) = 0.6. Затем сигнал R сброса обнуляется, а сигнал S установки одновременно вырастает до единицы. При этом значение Р устанавливается в единицу. После этого переменная S обнуляется при сохранении установленной величины Р. Далее входные сигналы одновременно возникают в прежних значениях S = 0.3 и R = 0.2. Выходной сигнал Р по экспоненте уменьшается до той же величины S / (S + R) = 0.6.

Из этого примера можно заключить, что, какое бы первоначальное значение не имела бы величина выходного сигнала Р, при различных, отличных от нуля, значениях входных сигналов, значение Р по экспоненте стремится к величине S / (S + R). Одновременно значение Q по экспоненте стремится к величине R / (S + R). Таким образом, Э-триггер позволяет получить по окончании переходного процесса нормированное соотношение входных сигналов R и S.

Для более полного представления об Э-триггере приведенных примеров недостаточно, однако алгоритмическая (1) и аналитическая (11,12) модели позволяют воспроизвести любые ситуации с входными сигналами и начальными условиями Э-триггера.

Рассмотренный выше Э-триггер состоит из двух компонент-состояний, взаимно дополняющих друг друга до единицы.

В общем случае может иметь место многокомпонентный экспоненциальный автомат, каждая компонента которого подобна плечу Э-триггера, изменяет значение своего состояния в интервале [0,1], а сумма значений состояний всех компонент такого автомата тождественно равна единице.

На рис. 3 изображен граф переходов четырехкомпонентного автомата, где имеют место следующие соотношения, определяемые общим правилом: значение Pi состояния i-го компонента возрастает при увеличении входного сигнала Si и убывает при увеличении любого из входных сигналов Sj (j не равно i):

(13) P1(t+1) = P1(t) * (1 – S2(t) – S3(t) – S4(t)) +
                + S1(t) * (P2(t) + P3(t) + P4(t)),
P2(t+1) = P2(t) * (1 – S1(t) – S3(t) – S4(t)) +
                + S2(t) * (P1(t) + P3(t) + P4(t)),
P3(t+1) = P3(t) * (1 – S2(t) – S1(t) – S4(t)) +
                + S3(t) * (P2(t) + P1(t) + P4(t)),
P4(t+1) = P4(t) * (1 – S1(t) – S3(t) – S2(t)) +
                + S4(t) * (P1(t) + P3(t) + P2(t)),
P1(t) + P2(t) + P3(t) + P4(t) = 1.

В общем виде для N-компонентного автомата действительна следующая система:

(14) Pi(t+1) = Pi(t) * (1 - sum(Sj(t))) + Si(t) * sum(Pj(t)),
                (j не равно i; i,j = 1,...,N),
P1(t) + ... + PN(t) = 1,

где sum обозначает арифметическую сумму.

Данные рекуррентные формулы напоминают рекуррентные формулы Э-триггера. Из этого можно предположить, что поведение компонент данного автомата также подчиняется экспоненциальному закону.

Подтвердим экспоненциальную природу N-компонентного автомата, удовлетворяющего приведенным соотношениям для N компонент-состояний:

(15а) Pi = Pi0 * exp(- K * t) – Si / K,
K = S1 + Е + SN,
                i = 1,..,N:
                при Pi0 > Si / K,

(15б) Pi = 1 – sum(Pj),
Pj = Pj0 * exp(- K * t) – Sj / K,
                j = 1,Е,N; j не равно i:
                при Pi0 < Si / K.

Заменим в (14) sum(Pj(t)):

(16) Pi(t+1) = Pi(t) * (1 – sum(Sj(t))) + Si(t) * (1 – Pi(t)) =
                = Pi(t) * (1 – sum(Sk(t))) + Si(t),
k = 1,Е,N.

Отсюда следует (по аналогии с доказательством для Э-триггера):

Pi(t+1) – Pi(t) = -Pi(t) * K + Si, где K = sum(Sk);
(17) Pi' = - K * Pi + Si;

При Si = 0 имеем K – Si = K, а так же по аналогии с доказа-тельством для Э-триггера получим

(18) Pi = Ui * exp(-K * t),

где Pi0 – начальное значение Pi в момент времени t = 0.

При Si > 0 решение уравнения (17) будем искать в виде

Pi = Ui * exp(-K * t), где Ui = Ui(t).

Дифференцируя по t получим

Pi’ = Ui’ * exp(-K * t) - Ui * K * exp(-K * t).

Приравняем правую часть последнего выражения к правой части выражения (17), подставив в нее (18):

Ui' * exp(-K * t) - Ui * K * exp(-K * t) = -K * Ui * exp(-K * t) + Si

Упрощая данное уравнение, получим

Ui' * exp(-K * t) = Si и, соответственно,
Ui' = Si * exp(K * t).

Интегрируя последнее выражение получим

Ui = Si * exp(K * t) *dt = Si / K * exp(K * t) + Ci.

Подставляя это выражение в (18) получим

Pi = (Si / K * exp(K * t) + Ci) * exp(-K * t) =
      = Ci * exp(-K * t) + Si / K

Полагая Сi = Рi0, где Pi0 – начальное значение Pi в момент времени t = 0, приходим к соотношению (15).

Поведение Э-автомата, идентично поведению Э-триггера с той лишь разницей, что число входных и выходных переменных значительно больше.

В данной работе не представляется возможным изобразить многочисленные примеры поведения Э-автомата. Предложим лишь простейший пример.

Предполагаем, что исходным (неопределенным) значением состояния каждой из N компонент является величина Pi0 = 1 / N. При этом Si = 0 (для всех i = 1,…,N). Если на один из входов (например, на вход j (1 <= j <= N)) поступит сигнал Sj, незначительно превышающий ноль, а на остальные входы поступает ноль, то Pj по экспоненте устремится к единице, а остальные выходные сигналы по экспоненте (с той же постоянной времени) устремятся к нулю. Если через промежуток времени, исчисляемый примерно 3 / Sj , сигнал Sj постоянен, то значение выхода Pj установится равным единице, а значения остальных выходов станут равными нулю.

Таким образом, Э-автомат, в том числе и Э-триггер, позволяет посредством входного сигнала задавать временные задержки, а так же обеспечивать необходимый баланс выходных сигналов, в сумме дающих единицу. По окончании переходного процесса после произвольного скачкообразного изменения входного сигнала (сигналов) на j-м выходе устанавливается значение Sj / K. Это означает, что Э-автомат формирует нормированное соотношение входных сигналов. По сути - это модель гомеостата.

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

Э-автоматы могут найти разнообразное применение. Приведем несколько примеров.

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

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

Автор просит исследователей из различных областей науки попробовать поэкспериментировать с Э-автоматами, в том числе в среде MATLAB. За консультацией и с возможными результатами обращаться по E-mail : bpk@rednet.ru

Если кто-то захочет открыть форум или новостную рассылку, просьба известить автора.

Иллюстрации: примеры работы Э-автоматов (BORLAND C++ BUILDER)

рис 4.

рис 5.