A hiedelemterjesztési algoritmus , a bizalomterjesztési algoritmus , vagy az összeg-szorzat algoritmus is egy marginalizációs algoritmus , amely kétirányú üzenetet továbbít egy gráfon , és grafikus valószínűségi modellekre (például Bayes- és Markov-hálózatokra ) való következtetésre használjuk. J. Pearl javasolta 1982-ben.
Tekintsünk egy függvényt:
, aholA valószínűség kiszámításához normalizálnia kell:
A következő feladatokat veszik figyelembe:
Mindezek a problémák NP-teljesek , így a legrosszabb eset bonyolultsága exponenciálisan növekszik. Néhány speciális eset azonban gyorsabban megoldható, amit ez az algoritmus tesz .
Az algoritmus által használt gráf változóknak megfelelő csúcsokból és függvényeknek megfelelő csúcsokból áll. A függvények olyan változókhoz kapcsolódnak, amelyektől függenek.
Például függvények
a következő grafikonnak felel meg:
A grafikon kétféle üzenetet küld: a függvényektől a változókig és a változóktól a függvényekig.
Változótól függvényig :
(itt van az i-vel szomszédos csúcsok halmaza)
A függvénytől a változóig :
Ebben az esetben az üres szorzatot eggyel egyenlőnek tételezzük fel. Ezekből a képletekből látható, hogy ha egy csúcsnak csak egy szomszédos pontja van, akkor a bejövő üzenetek ismerete nélkül kiszámítható a (csúcs) üzenete.
Az eredményül kapott gráf természetétől függően két megközelítés létezik.
Tegyük fel, hogy a gráf egy fa . A levelekből kiindulva fokozatosan megkerüljük az összes csúcsot és kiszámoljuk az üzeneteket (ebben az esetben a szabványos üzenetátadási szabály érvényes: csak akkor lehet üzenetet továbbítani, ha teljesen megszerkeszthető).
Ezután a gráf átmérőjével megegyező számú lépésben az algoritmus véget ér.
Ha a grafikon nem egy fa , akkor kezdheti azzal, hogy minden változó elküldi az 1-es üzenetet, majd módosíthatja azt, amikor a függvények üzenetei megérkeznek hozzájuk.
Egy ilyen algoritmus általában helytelenül működik, és sok felesleges munkát végez, de a gyakorlatban még mindig hasznos.
Amikor az üzenetek elosztása befejeződött, a margók kiszámítása a következő képlet szerint történik:
Ha csak normalizált határértékeket ( valós valószínűségeket ) kell kiszámítania, akkor minden lépésben normalizálhatja az üzeneteket a változókról a függvényekre:
,hol vannak kiválasztva úgy
Matematikai szempontból az algoritmus újrabontja az eredeti bontást:
a munkába:
,ahol a függvénycsomópontoknak és a változó csomópontoknak felel meg.
Kezdetben az üzenetküldés előtt és
Minden alkalommal, amikor üzenet érkezik a függvénytől a változóhoz, és újraszámolják:
,Nyilvánvaló, hogy a teljes szorzat ettől nem változik, és az üzenetküldés végén marginálissá válik .