Поведение вероятностных мультиагентных систем
If t? t0 then CHi, j := (CHi, j {(Msg, t+1)}); END. RETURN S'=(Ii',…, In', CH1,2',…, CHn-1,n'). Ms, 0)| msg (Ai, Am, Ms) SEND a (c1,…, ck). MsbBoxj := MsbBoxj {msg (Ai, Aj, Msg)}. A-шаг (Вход: S; Выход: S'). UPDi :={q (t1,…, tk):p|p = max{p'|. BEGIN CHi, j := (CHi, j {(Msg, t)}); BEGIN CHi, j := (CHi, j {(Msg, t)}); FOR EACH a (c1,…cm):p Permi DO. BEGIN Permi := Sem (LPAi, state); FOR EACH… Читать ещё >
Поведение вероятностных мультиагентных систем (реферат, курсовая, диплом, контрольная)
Определим операционную семантику введенных в предыдущем разделе вероятностных МАС.
Глобальное состояние S системы A включает в себя локальные состояния ее агентов и состояния всех ее (n2-n) каналов:
S = .
Обозначим через SA множество всех глобальных состояний МАС A. Тогда одношаговая семантика МАС A задает отношение S A S' перехода (за один шаг) на множестве SA, а вероятности, участвующие в определениях агентов A, индуцируют вероятности таких переходов p (S, S').
Переход S A S' начинается с работы каналов и формирования нового содержимого почтовых ящиков. Сначала каждый канал увеличивает на 1 счетчик времени у всех находящихся в нем сообщений. Пары (Msg, t) такие, что t>t0, удаляются из CHi, j. Затем для каждой пары (Msg, t) CHi, j в почтовый ящик MsgBoxj агента Aj с вероятностью pi, j (t) помещается факт msg (Ai, Aj, Msg). После этого каждый агент Ai A формирует множество всех допустимых на данном шаге аннотированных базисных действий.
Permi = Sem (LPi, state).
Затем по Permi формируется множество выполняемых агентом Ai действий Obli: для каждого аннотированного атома a (c1,…cm):p из Permi действие a (c1,…cm) помещается в Obli с вероятностью p. Почтовые ящики всех агентов МАС A после этого опустошаются, т. е. полученные сообщения «забываются». Разумеется, это не ограничивает общности, поскольку агент может все нужные ему данные перенести из почтового ящика в свою базу данных. После этого каждый агент Ai выполняет действия из Obli следующим образом. Обозначим через UPDi множество.
{q (t1,…, tk):p | p = max{ p' | q (t1,…, tk):p'PUTa (c1,…, cm).
для некоторого a (c1,…cm) из Obli }}. Тогда новое состояние ВБД Ii получается путем удаления из Ii всех старых фактов из множества.
UPD_OLDi = {q (t1,…, tk):r | для некоторого p q (t1,…, tk):pUPDi}.
и добавления к Ii новых аннотированных фактов из UPDi. И наконец, агент Aj добавляет в каждый канал CHij (i j) все пары вида (Msg, 0), где Msg является базисным экземпляром некоторого сообщения вида msg (Ai, Aj, p (t1,…, tk)) из множества SENDa (c1,…cm) для некоторого a (c1,…cm) из Obli.
Таким образом, переход S A S' вычисляется следующим вероятностным алгоритмом:
A-шаг (Вход: S; Выход: S').
- (1) FOR EACH Ai, Aj A (i j) DO
- (2) FOR EACH (Msg, t) CHi, j DO
- (3) BEGIN CHi, j := (CHi, j {(Msg, t)}) ;
- (4) if t? t0 then CHi, j := (CHi, j {(Msg, t+1)}); END
- (5) FOR EACH Ai, Aj A (i j) DO
- (6) FOR EACH (Msg, t) CHi, j DO с вероятностью pi, j (t)
- (7) BEGIN CHi, j := (CHi, j {(Msg, t)}) ;
- (8) MsbBoxj := MsbBoxj {msg (Ai, Aj, Msg)}
- (9) END;
- (10) FOR EACH Ai A DO
- (11) BEGIN Permi := Sem (LPAi, state);
- (12) FOR EACH a (c1,…cm):p Permi DO
- (13) помеcтить a (c1,…cm) в Obli с вероятностью p;
- (14) UPDi :={q (t1,…, tk):p|p = max{p'|
q (t1,…, tk):p'PUTa (c1,…, cm) Лa (c1,…cm) Obli}};
- (15) UPD_OLDi= {q (t1,…, tk):r Ii | q (t1,…, tk):p UPDi};
- (16) Ii':= ((Ii UPD_OLDi) UPDi;
- (17) FOR EACH (m i) DO
- (18) CHi, m' := (CHi, m
{(ms, 0)| msg (Ai, Am, Ms) SEND a (c1,…, ck).
Л a (c1,…ck) Obli });
- (19) MsgBoxi := ;
- (20) END;
- (21) RETURN S'=(Ii',…, In', CH1,2',…, CHn-1,n').
Для завершения определения одношаговой семантики A нужно еще дать точное описание для Sem (LPAi, state), чему посвящен следующий раздел.