Я новичок в прологе. я узнал о качественных вероятностных сетях (QPN) для вероятностных рассуждений. QPN - это графическая модель вероятностных влияний среди набора статистических переменных, в которой каждое влияние связано с качественным знаком. Алгоритм, используемый для рассуждения в QPN, является алгоритмом распространения знака, как показано ниже:
Ввод: качественная вероятностная сеть, Q
Вывод: признак влияния узла O доказательства на каждый узел в сети
procedure PropagateObservation(Q, O, sign, Observed):
for each Vi ϵ V (G)
do sign [Vi] ← ‘0’;
PropagateSign (Ø, O, sign).
procedure PropagateSign(trail, to, messagesign):
sign[to] ← sign [to] messagesign; *//update the sign of to
trail ← trail {to}; *// add to to the set of visited nodes
for each active neighbour Vi of to given {O} Observed
do linksign ← sign of (induced) influence between to and Vi;
messagesign ← sign [to] linksign;
if Vi ϵ trail and sign [Vi] ≠ sign [Vi] messagesign
then PropagateSign (trail, Vi, messagesign).
V = переменные / узлы
O = узел доказательства
Этот алгоритм работает с качественной таблицей умножения и сложения знаков (извините, у меня проблема с размещением этих таблиц здесь).
Я хочу написать этот алгоритм в прологе (в настоящее время я использую swi-пролог). К несчастью,
я понятия не имею, как начать программировать этот алгоритм на прологе, так как я новичок и не уверен, можно ли его запрограммировать на прологе. Извините, если мой вопрос не очень понятен. пожалуйста, скажите, если мне нужно объяснить больше. Может быть, грубые идеи от всех вас могут помочь. спасибо.