Inhalt

Aktueller Ordner: /

VKG2RGrammatikAlsBayesNetz.R

#Hier wird die VKG Grammatik genutzt, um ein Bayes-Netzwerk 
#aus der probabilistischen kontextfreien Grammatik zu erstellen. 
#Die Grammatik wird in R als eine Sammlung von Listen definiert, 
#wobei jede Liste eine Variable in der Grammatik darstellt. 
#Jede Variable hat eine Liste von mΓΆglichen ZustΓ€nden und 
#Wahrscheinlichkeiten, sowie eine Liste von Elternknoten und 
#deren Wahrscheinlichkeiten.

#Das Bayes-Netzwerk wird durch Erstellung eines 
#leeren Graphen mit der Funktion empty.graph() erstellt, 
#gefolgt von der HinzufΓΌgung von Kanten mit der Funktion set.arc(). 
#Anschließend wird die Netzwerkstruktur aus der probabilistischen kont





library(bnlearn)

w3 <- list(
  anfang = c(s = "vkg", prob = 100),
  vkg = c(s = "ende", prob = 100)
)

bbd <- list(
  kbbd = c(vbbd = 100)
)

ba <- list(
  kba = c(vba = 100)
)

ae <- list(
  kae = c(vae = 100)
)

aa <- list(
  kaa = c(vaa = 100)
)

b <- list(
  list(s = "ba", prob = 100, parent = list(s = "bbd", prob = 100))
)

a <- list(
  list(s = "aa", prob = 100, parent = list(s = "ae", prob = 100)),
  list(s = "aa", prob = 50, parent = list(s = "ae", prob = 100))
)

vt <- list(
  list(s = "a", prob = 100, parent = list(s = "b", prob = 100)),
  list(s = "a", prob = 50, parent = list(s = "b", prob = 100))
)

bg <- list(
  kbg = c(vbg = 100)
)

av <- list(
  kav = c(vav = 100)
)

vkg <- list(
  list(s = "vt", prob = 100, parent = list(s = "bg", prob = 100)),
  list(s = "av", prob = 100, parent = list(s = "vt", prob = 100)),
  list(s = "vt", prob = 50, parent = list(s = "vt", prob = 100))
)

bn <- empty.graph()
bn <- set.arc(bn, from = "anfang", to = "vkg")
bn <- set.arc(bn, from = "vkg", to = "ende")
bn <- learn.structure(bn, w3)
bn <- learn.structure(bn, bbd)
bn <- learn.structure(bn, ba)
bn <- learn.structure(bn, ae)
bn <- learn.structure(bn, aa)
bn <- learn.structure(bn, b)
bn <- learn.structure(bn, a)
bn <- learn.structure(bn, vt)
bn <- learn.structure(bn, bg)
bn <- learn.structure(bn, av)
bn <- learn.structure(bn, vkg)
bn.fit <- bn.fit(bn, data = matrix(NA, nrow = 1, ncol = 0))