You have identified an optimization problem that Perkun (http://sourceforge.net/projects/perkun/) could solve for you? Excellent. Then you need to write a Perkun code yourself. When you look at the files like dorban_general.perkun you probably wonder how I created them. I did not write all this manually. Instead I used a Prolog generator. Do you know Prolog? It would be very helpful to learn it. This is the file I started with:
values
{
value false, true; # logical values
value place_Wyzima,place_Shadizar,place_Novigrad;
value do_nothing,escape,fight,goto_Wyzima,goto_Shadizar,goto_Novigrad;
}
variables
{
input variable where_is_Dorban:{place_Wyzima,place_Shadizar,place_Novigrad}; # where am I
input variable do_I_see_vampire:{false, true};
output variable action:{do_nothing,goto_Wyzima,goto_Shadizar,goto_Novigrad}; # actions
hidden variable where_is_vampire:{place_Wyzima,place_Shadizar,place_Novigrad};
}
payoff {}
model {}
cout << prolog generator << eol;
As you can see the model section is followed by a new instruction:
cout << prolog generator << eol;
It produces a program in Prolog. You can download the result - dorban_general.prolog. If you look at the code you will find the comments:
% PLEASE INSERT YOUR CODE HERE-get_probability
% PLEASE INSERT YOUR CODE HERE-write_model_impossible_if_necessary
% PLEASE INSERT YOUR CODE HERE-write_model_action_illegal_if_necessary
% PLEASE INSERT YOUR CODE HERE-get_payoff
If you execute dorban_general.prolog directly (for example with SWI Prolog) you will get a Perkun code with zeros in the model. Instead you should write the Prolog code, insert it in the locations indicated by the comments and make something like the file dorban_general_final.prolog. That is it! When you execute dorban_general_final.prolog with Prolog you will get dorban_final.perkun.
What Prolog code has been added? I think I will discuss it in the next post.
No comments:
Post a Comment