mdp
const double p=0.5;
const double p2=0.5;
const double accu_load1=0.95;
const double accu_load2=0.75;
const double fd=0.8;
const int COUNTER=5;
const int MAX_TASKS = 20;
const double risky2=0.2;
const double risky6=0.2;
const int FLY_COST = 10;
const int WAIT_COST = 2;
const int ROZ_COST = 0;
global stop : bool init false;
formula roz = (r=3) | (w=4&a=6) | (w=4&a=7) | (w=7 &a=2) ;
formula fatigue = (k>COUNTER);
module operator
k:[0..MAX_TASKS] init 0;
t:[0..2] init 0;
s:[0..2] init 0;
c:[0..2] init 0;
[image] !stop & t=0 & s=0 -> (1-p):(t'=1) & (s'=0) + p:(t'=2) & (s'=0);
[process] !stop & t=1 & s=0 & k<=COUNTER -> accu_load1:(s'=1)&(k'=k+1) + (1-accu_load1):(s'=2)&(k'=k+1);
[process] !stop & t=1 & s=0 & k>COUNTER -> accu_load1*fd:(s'=1) + (1-accu_load1*fd):(s'=2);
[process] !stop & t=2 & s=0 & k<=COUNTER -> accu_load2:(s'=1)&(k'=k+1) + (1-accu_load2):(s'=2)&(k'=k+1);
[process] !stop & t=2 & s=0 & k>COUNTER -> accu_load2*fd:(s'=1) + (1-accu_load2*fd):(s'=2);
[wait] !stop & s=2 -> (t'=0) & (s'=0);
[go] !stop & s=1 & w=2 -> risky2:(c'=0) & (t'=0) & (s'=0)
+(1-risky2)/2:(c'=1) & (t'=0) & (s'=0) + (1-risky2)/2:(c'=2) & (t'=0) & (s'=0);
[go] !stop & s=1 & w=5 -> 1/2:(c'=1) & (t'=0) & (s'=0)
+ 1/2:(c'=0) & (t'=0) & (s'=0);
[go] !stop & s=1 & w=6 -> risky6:(c'=1) & (t'=0) & (s'=0) + (1-risky6)/2:(c'=2) & (t'=0) & (s'=0)
+ (1-risky6)/2:(c'=0) & (t'=0) & (s'=0);
[go] !stop & s=1 & (w!=2 & w!=5 & w!=6) -> (t'=0) & (s'=0);
[] !stop & (w1 & w2 & w6 & w5) -> (stop'=true);
[operator_stop] stop -> true;
endmodule
module UAV
w:[0..7] init 1;
a:[0..8] init 0;
r:[0..7] init 0;
send: bool init true;
in: bool init true;
w1: bool init true;
w2: bool init false;
w3: bool init false;
w4: bool init false;
w5: bool init false;
w6: bool init false;
w7: bool init false;
[image] w!=0 & a=0 & r=0 & send -> (send'=false);
[wait] !send -> (send'=true);
[camera] w=1 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w1'=true);
[camera] w=2 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w2'=true);
[camera] w=3 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w3'=true);
[camera] w=4 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w4'=true);
[camera] w=5 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w5'=true);
[camera] w=6 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w6'=true);
[camera] w=7 & a!=0 & r=0 & in -> (a'=0) & (send'=true) & (w7'=true);
[go] w!=0 & a=0 & r=0 -> 1/8:(a'=1) & (in'=false)
+ 1/8:(a'=2) & (in'=false)
+ 1/8:(a'=3) & (in'=false)
+ 1/8:(a'=4) & (in'=false)
+ 1/8:(a'=5) & (in'=false)
+ 1/8:(a'=6) & (in'=false)
+ 1/8:(a'=7) & (in'=false)
+ 1/8:(a'=8) & (in'=false);
[fly] c=0 & w=2 & (a!=0) & r=0 & !in -> (r'=2);
[fly] c=1 & w=2 & (a!=0) & r=0 & !in -> (r'=3);
[fly] c=2 & w=2 & (a!=0) & r=0 & !in -> 1/8:(w'=3) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=8) & (r'=0) & (in'=true);
[fly] c=0 & w=5 & (a!=0) & r=0 & !in -> (r'=7);
[fly] c=1 & w=5 & (a!=0) & r=0 & !in -> 1/8:(w'=4) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=8) & (r'=0) & (in'=true);
[fly] c=0 & w=6 & (a!=0) & r=0 & !in -> (r'=3);
[fly] c=1 & w=6 & (a!=0) & r=0 & !in -> (r'=4);
[fly] c=2 & w=6 & (a!=0) & r=0 & !in -> (r'=5);
[fly] w=1 & (a!=0) & r=0 & !in -> (r'=1);
[fly] w=1 & (a!=0) & r=0 & !in -> 1/8:(w'=7) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=8) & (r'=0) & (in'=true);
[fly] w=3 & (a!=0) & r=0 & !in -> 1/8:(w'=2) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=8) & (r'=0) & (in'=true);
[fly] w=3 & (a!=0) & r=0 & !in -> 1/8:(w'=4) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=4) & (a'=8) & (r'=0) & (in'=true);
[fly] w=4 & (a!=0) & r=0 & !in -> 1/8:(w'=3) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=3) & (a'=8) & (r'=0) & (in'=true);
[fly] w=4 & (a!=0) & r=0 & !in -> 1/8:(w'=5) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=8) & (r'=0) & (in'=true);
[fly] w=7 & (a!=0) & r=0 & !in -> (r'=4);
[fly] w=7 & (a!=0) & r=0 & !in -> 1/8:(w'=1) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=8) & (r'=0) & (in'=true);
[fly] r=1 -> (r'=2);
[fly] r=1 -> 1/8:(w'=1) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=1) & (a'=8) & (r'=0) & (in'=true);
[fly] r=2 -> (r'=1);
[fly] r=2 -> 1/8:(w'=2) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=8) & (r'=0) & (in'=true);
[fly] r=3 -> 1/8:(w'=2) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=2) & (a'=8) & (r'=0) & (in'=true);
[fly] r=3 -> 1/8:(w'=6) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=8) & (r'=0) & (in'=true);
[fly] r=4 -> 1/8:(w'=6) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=8) & (r'=0) & (in'=true);
[fly] r=4 -> 1/8:(w'=7) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=7) & (a'=8) & (r'=0) & (in'=true);
[fly] r=5 -> (r'=6);
[fly] r=5 -> 1/8:(w'=6) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=6) & (a'=8) & (r'=0) & (in'=true);
[fly] r=6 -> (r'=5);
[fly] r=6 -> (r'=7);
[fly] r=7 -> (r'=6);
[fly] r=7 -> 1/8:(w'=5) & (a'=1) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=2) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=3) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=4) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=5) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=6) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=7) & (r'=0) & (in'=true)
+ 1/8:(w'=5) & (a'=8) & (r'=0) & (in'=true);
endmodule
label "roz" = roz;
label "obs" = (fatigue);
rewards "time"
[wait] true: WAIT_COST;
[fly] roz: FLY_COST+ROZ_COST;
[fly] !roz: FLY_COST;
endrewards
rewards "ROZ"
[fly] roz : 1;
endrewards