Umbrella

To illustrate the basics of the Decision-Theoretic ProbLog language, we take an example from

  • G. Van den Broeck, I. Thon, M. van Otterlo and L. De Raedt. DTProbLog: A decision-theoretic probabilistic Prolog. Proceedings of the twenty-fourth AAAI conference on artificial intelligence, pp. 1217 - 1222, AAAI Press, 2010. PDF
  • Given a set of probabilistic facts, rules, rewards and decisions to be made, the engine finds the optimal decision set that maximizes the expected reward. The decision fact d is notated in the form ? :: d where the label ? indicates d’s value needs to be determined. The rewards are specified with the specicial predicate utility/2. Decision facts and rewards can be non-ground.

    Here’s a small example illustrating Decision-Theoretic ProbLog. The program states there is a chance that it will rain and will be windy, respectively. Rewards are given for several atoms. The decisions are whether to bring an umbrella or a raincoat. Queries are not needed because the goal here is to maximize the overall expected reward.

    % probabilistic facts 0.3::rain. 0.5::wind. % decision facts ?::umbrella. ?::raincoat. broken_umbrella :- umbrella, rain, wind. dry :- rain, raincoat. dry :- rain, umbrella, not broken_umbrella. dry :- not(rain). % utilities utility(broken_umbrella, -40). utility(raincoat, -20). utility(umbrella, -2). utility(dry, 60).

    To try this example, press the ‘Evaluate’ button. The decision set that leads to the highest expected reward is to bring an umbrella and not a raincoat. The resulting score, i.e. expected reward, is 43.