/* Simple aircraft in Picat. From BLOG example/simple-aircraft.blog Cf my Gamble model gamble_simple_aircraft.rkt This program was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import ppl_distributions, ppl_utils. import util. main => go. /* var : num aircraft Probabilities: 1: 0.7217391304347827 2: 0.2521739130434782 3: 0.0260869565217391 mean = 1.30435 var : sum blip Probabilities: 3: 1.0000000000000000 mean = 3.0 */ go ?=> reset_store, run_model(10_000,$model,[show_probs_trunc,mean]), nl, % show_store_lengths, % fail, nl. go => true. model() => NumAircraft = poisson_dist(5), % Each Aircraft has a blip NumBlip = poisson_dist_n(4,NumAircraft), SumBlip = NumBlip.sum, observe(NumAircraft > 0), observe(SumBlip == 3), if observed_ok then add("num aircraft",NumAircraft), add("sum blip",SumBlip) end.