/////////////////////////////////////////////////////////////////////////////////
//                                                                             //
//                                                                             //
// RDDL MDP version of Wildlife Preserve instance #10 for IPC 2018 by Fei Fang //
// (feifang [at] cmu.edu), Thanh Hong Nguyen (thanhhng [at] umich.edu) and     //
// Thomas Keller (tho.keller [at] unibas.ch), based on the papers "When        //
// Security Games Go Green: Designing Defender Strategies to Prevent Poaching  //
// and Illegal Fishing" by Fei Fang, Peter Stone and Milind Tambe (IJCAI 2015) //
// and "Analyzing the Effectiveness of Adversary Modeling in Security Games"   //
// by Thanh H. Nguyen, Rong Yang, Amos Azaria, Sarit Kraus and Milind Tambe    //
// (AAAI 2013).                                                                //
//                                                                             //
//                                                                             //
/////////////////////////////////////////////////////////////////////////////////

instance wildlife-preserve_inst_mdp__10 {
    domain = wildlife-preserve_10_mdp;

    objects {
        ranger  : { r1, r2 };
        poacher : { p1, p2, p3 };
    };

    non-fluents {
        DEFENDER-REWARD(@a1) = 1.71;
        DEFENDER-PENALTY(@a1) = -1.95;
        DEFENDER-REWARD(@a2) = 2.27;
        DEFENDER-PENALTY(@a2) = -7.99;
        DEFENDER-REWARD(@a3) = 7.11;
        DEFENDER-PENALTY(@a3) = -7.57;
        DEFENDER-REWARD(@a4) = 1.92;
        DEFENDER-PENALTY(@a4) = -7.47;
        DEFENDER-REWARD(@a5) = 7.57;
        DEFENDER-PENALTY(@a5) = -7.15;
        DEFENDER-REWARD(@a6) = 3.48;
        DEFENDER-PENALTY(@a6) = -1.65;
        DEFENDER-REWARD(@a7) = 7.81;
        DEFENDER-PENALTY(@a7) = -4.78;
        DEFENDER-REWARD(@a8) = 1.25;
        DEFENDER-PENALTY(@a8) = -3.40;

        // correlation between attacker reward and defender penalty as well as
        // attacker penalty and defender reward is 0.80 for all poachers and all areas

        // weights for poacher p1 are: w1 = -16.68, w2 = 0.38, w3 = 0.26
        // reward for poacher p1 in area @a1 is: 3.15
        // penalty for poacher p1 in area @a1 is: -2.94
        // reward for poacher p1 in area @a2 is: 7.98
        // penalty for poacher p1 in area @a2 is: -2.64
        // reward for poacher p1 in area @a3 is: 6.75
        // penalty for poacher p1 in area @a3 is: -6.62
        // reward for poacher p1 in area @a4 is: 6.30
        // penalty for poacher p1 in area @a4 is: -1.77
        // reward for poacher p1 in area @a5 is: 5.88
        // penalty for poacher p1 in area @a5 is: -6.93
        // reward for poacher p1 in area @a6 is: 1.49
        // penalty for poacher p1 in area @a6 is: -3.42
        // reward for poacher p1 in area @a7 is: 4.75
        // penalty for poacher p1 in area @a7 is: -7.06
        // reward for poacher p1 in area @a8 is: 3.32
        // penalty for poacher p1 in area @a8 is: -2.36

        // weights for poacher p2 are: w1 = -18.81, w2 = 0.62, w3 = 0.43
        // reward for poacher p2 in area @a1 is: 2.51
        // penalty for poacher p2 in area @a1 is: -1.68
        // reward for poacher p2 in area @a2 is: 6.87
        // penalty for poacher p2 in area @a2 is: -2.73
        // reward for poacher p2 in area @a3 is: 6.52
        // penalty for poacher p2 in area @a3 is: -6.98
        // reward for poacher p2 in area @a4 is: 6.38
        // penalty for poacher p2 in area @a4 is: -2.05
        // reward for poacher p2 in area @a5 is: 6.41
        // penalty for poacher p2 in area @a5 is: -7.11
        // reward for poacher p2 in area @a6 is: 1.79
        // penalty for poacher p2 in area @a6 is: -4.15
        // reward for poacher p2 in area @a7 is: 5.32
        // penalty for poacher p2 in area @a7 is: -7.17
        // reward for poacher p2 in area @a8 is: 3.54
        // penalty for poacher p2 in area @a8 is: -2.24

        // weights for poacher p3 are: w1 = -18.46, w2 = 1.01, w3 = 0.45
        // reward for poacher p3 in area @a1 is: 2.94
        // penalty for poacher p3 in area @a1 is: -2.91
        // reward for poacher p3 in area @a2 is: 6.60
        // penalty for poacher p3 in area @a2 is: -2.73
        // reward for poacher p3 in area @a3 is: 6.74
        // penalty for poacher p3 in area @a3 is: -7.19
        // reward for poacher p3 in area @a4 is: 6.56
        // penalty for poacher p3 in area @a4 is: -1.79
        // reward for poacher p3 in area @a5 is: 7.20
        // penalty for poacher p3 in area @a5 is: -7.12
        // reward for poacher p3 in area @a6 is: 2.77
        // penalty for poacher p3 in area @a6 is: -3.09
        // reward for poacher p3 in area @a7 is: 4.45
        // penalty for poacher p3 in area @a7 is: -6.90
        // reward for poacher p3 in area @a8 is: 2.77
        // penalty for poacher p3 in area @a8 is: -1.66

        ATTACK-WEIGHT_0(p1, @a1) = 1.52659;
        ATTACK-WEIGHT_1(p1, @a1) = 0.00036;
        ATTACK-WEIGHT_2(p1, @a1) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a2) = 10.39892;
        ATTACK-WEIGHT_1(p1, @a2) = 0.00248;
        ATTACK-WEIGHT_2(p1, @a2) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a3) = 2.27499;
        ATTACK-WEIGHT_1(p1, @a3) = 0.00054;
        ATTACK-WEIGHT_2(p1, @a3) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a4) = 6.90130;
        ATTACK-WEIGHT_1(p1, @a4) = 0.00164;
        ATTACK-WEIGHT_2(p1, @a4) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a5) = 1.50496;
        ATTACK-WEIGHT_1(p1, @a5) = 0.00036;
        ATTACK-WEIGHT_2(p1, @a5) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a6) = 0.71467;
        ATTACK-WEIGHT_1(p1, @a6) = 0.00017;
        ATTACK-WEIGHT_2(p1, @a6) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a7) = 0.94562;
        ATTACK-WEIGHT_1(p1, @a7) = 0.00023;
        ATTACK-WEIGHT_2(p1, @a7) = 0.00000;
        ATTACK-WEIGHT_0(p1, @a8) = 1.89834;
        ATTACK-WEIGHT_1(p1, @a8) = 0.00045;
        ATTACK-WEIGHT_2(p1, @a8) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a1) = 2.29310;
        ATTACK-WEIGHT_1(p2, @a1) = 0.00019;
        ATTACK-WEIGHT_2(p2, @a1) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a2) = 21.57179;
        ATTACK-WEIGHT_1(p2, @a2) = 0.00178;
        ATTACK-WEIGHT_2(p2, @a2) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a3) = 2.81713;
        ATTACK-WEIGHT_1(p2, @a3) = 0.00023;
        ATTACK-WEIGHT_2(p2, @a3) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a4) = 21.32961;
        ATTACK-WEIGHT_1(p2, @a4) = 0.00176;
        ATTACK-WEIGHT_2(p2, @a4) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a5) = 2.48970;
        ATTACK-WEIGHT_1(p2, @a5) = 0.00021;
        ATTACK-WEIGHT_2(p2, @a5) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a6) = 0.51067;
        ATTACK-WEIGHT_1(p2, @a6) = 0.00004;
        ATTACK-WEIGHT_2(p2, @a6) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a7) = 1.23827;
        ATTACK-WEIGHT_1(p2, @a7) = 0.00010;
        ATTACK-WEIGHT_2(p2, @a7) = 0.00000;
        ATTACK-WEIGHT_0(p2, @a8) = 3.40712;
        ATTACK-WEIGHT_1(p2, @a8) = 0.00028;
        ATTACK-WEIGHT_2(p2, @a8) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a1) = 5.20810;
        ATTACK-WEIGHT_1(p3, @a1) = 0.00051;
        ATTACK-WEIGHT_2(p3, @a1) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a2) = 228.80542;
        ATTACK-WEIGHT_1(p3, @a2) = 0.02244;
        ATTACK-WEIGHT_2(p3, @a2) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a3) = 34.72160;
        ATTACK-WEIGHT_1(p3, @a3) = 0.00341;
        ATTACK-WEIGHT_2(p3, @a3) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a4) = 336.85618;
        ATTACK-WEIGHT_1(p3, @a4) = 0.03304;
        ATTACK-WEIGHT_2(p3, @a4) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a5) = 57.07183;
        ATTACK-WEIGHT_1(p3, @a5) = 0.00560;
        ATTACK-WEIGHT_2(p3, @a5) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a6) = 4.04106;
        ATTACK-WEIGHT_1(p3, @a6) = 0.00040;
        ATTACK-WEIGHT_2(p3, @a6) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a7) = 3.91028;
        ATTACK-WEIGHT_1(p3, @a7) = 0.00038;
        ATTACK-WEIGHT_2(p3, @a7) = 0.00000;
        ATTACK-WEIGHT_0(p3, @a8) = 7.74032;
        ATTACK-WEIGHT_1(p3, @a8) = 0.00076;
        ATTACK-WEIGHT_2(p3, @a8) = 0.00000;

        POACHER-REMEMBERS(p1, @1);
        POACHER-REMEMBERS(p1, @2);
        POACHER-REMEMBERS(p2, @1);
        POACHER-REMEMBERS(p2, @2);
        POACHER-REMEMBERS(p3, @1);
        POACHER-REMEMBERS(p3, @2);

    };

    init-state {
        ~was-defended(@a1,@1);
    };

    horizon = 60;

    discount = 1.0;
}