a.figaro.algorithm.factored.VariableElimination
a.figaro.language.{Flip, Select}
a.figaro.librarypound.If
// 今天天气的概率:晴天0.9,不是晴天0.1val sunnyToday = Flip(0.9)val greetToday = If(sunnyToday,// 如果今天是晴天:说Hello的概率是0.6,说Howdy的概率是0.4Select(0.6 -> "Hello World!", 0.4 -> "Howdy, universe!"),// 如果今天不是晴天:说Hello的概率是0.2,说Howdy的概率是0.8Select(0.2 -> "Hello World!", 0.8 -> "Howdy, universe!"))val sunnyTomorrow = If(sunnyToday,// 如果今天是晴天:明天是晴天的概率是0.8Flip(0.8),// 如果今天是晴天:明天是晴天的概率是0.05Flip(0.05))val greetingTomorrow = If(sunnyTomorrow,// 如果明天是晴天:说Hello的概率是0.6,说Howdy的概率是0.4Select(0.6 -> "Hello World!", 0.4 -> "Howdy, universe!"),// 如果明天是晴天:说Hello的概率是0.2,说Howdy的概率是0.8Select(0.2 -> "Hello World!", 0.8 -> "Howdy, universe!"))
def predict(): Unit = {val result = VariableElimination.probability(greetToday, "Hello World!")println(s"Today's greeting is 'Hello World' with probability $result.")}
def infer(): Unit = {greetToday.observe("Hello World!")val result = VariableElimination.probability(sunnyToday, true)println("If today's greeting is 'Hello World', " +s"today's weather is sunny with probability $result.")}
def learnAndPredict(): Unit = {greetToday.observe("Hello World!")val result = VariableElimination.probability(greetingTomorrow, "Hello World!")println("If today's greeting is 'Hello World', " +s"tomorrow's greeting will be 'Hello World' with probability $result.")}
def main(args: Array[String]): Unit = {predict()infer()learnAndPredict()}
本文发布于:2024-02-05 04:48:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170724493163170.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |