Planning with Sensing Actions and Incomplete Information Using Logic Programming - Boolean Version

 Home Boolean Version >> Multivalued Version

The translator is a program written in Sisctus prolog. The input of the translator is an Ak program describing the planning domain and the output is a smodels program.

To translate a planning problem P=(D,I,G) into p(P), follow the steps:

1. Launch Sicstus prolog

bangkok[10]% sicstus

SICStus 3.7 beta3: Thu May 14 10:01:09 MET DST 1998

2. Compile the translator

| ?- [tr].

3. Issue gen. at the sicstus prompt to generate a domain written in the Ak language and then enter the domain description file name. Notice that the the default extension of the input domain description file is .pl.

| ?- gen.

Enter domain description file name: <problem-name>. (for example, a1_prob.)

4. Quit the Sicstus

| ?- halt.

The output file has the same name as the input file but the extension is .smo. For instance, the output logic program for the a1_prob.pl domain will be a1_prob.smo.

The next step is to use smodels and lparse to generate solutions for the given domain. You need to provide the maximum length and maximum level for search space. Notice that for conformant plans, the value of the level should be set to 1. For example, the following command will generate the plan for the a1_prob domain:

bangkok[10]% lparse -c length = 5 -c level = 2 a1_prob.smo | smodels

Test Results

Domains

The domains/problems used to test the program are shown in the table below. The first column shows problems and domains. These problems and domains are expressed as Ak programs in the second column. The corresponding logic programs for these domains, generated by the translator, are shown in the third column.

 Domains/Problems Ak Smodels Cassandra a1-prob a1_prob.pl a1_prob.smo a2-prob a2_prob.pl a2_prob.smo a3-prob a3_prob.pl a3_prob.smo a4-prob a4_prob.pl a4_prob.smo a5-prob a5_prob.pl a5_prob.smo a6-prob a6_prob.pl a6_prob.smo a7-prob a7_prob.pl a7_prob.smo Bomb in the toilet bt-1sa bt_1sa.pl bt_1sa.smo bt-2sa bt_2sa.pl bt_2sa.smo bt-3sa bt_3sa.pl bt_3sa.smo bt-4sa bt_4sa.pl bt_4sa.smo Sickness sick-3-1 sick_3_1ill.pl sick_3_1ill.smo sick-3-2 sick_3_2ill.pl sick-3-3 sick_3_3ill.pl sick-3-4 sick_3_4ill.pl sick-3-5 sick_3_5ill.pl

The following table shows the comparison between our planner and SGP for the above domains.

 Problems/ SGP p(P) Domains 1st 2nd 3rd Avg. 1st (*) 1st (**) 2nd(*) 2nd(**) 3rd (*) 3rd(**) Avg.(*) Avg.(**) Cassandra a1-prob 140 170 140 150 387 190 358 210 390 190 378 197 a2-prob 40 40 40 40 811 500 810 510 809 460 810 490 a3-prob 50 50 40 47 282 110 284 110 282 130 283 117 a4-prob 300 300 300 300 704 470 705 480 705 490 705 480 a5-prob 50 30 40 40 185 80 219 70 185 80 196 77 a6-prob NA NA NA NA 7,990 6,860 7,977 6,850 7,971 6,930 7,979 6,880 a7-prob 120 120 120 120 238 80 239 90 239 80 239 83 Bomb in the toilet bt-1sa 1,790 1,630 1,660 1,693 4,491 3,660 4,420 3,510 4,702 3,640 4,538 3,603 bt-2sa 1,760 1,760 1,710 1,743 5,386 4,220 5,349 4,070 5,285 4,080 5,340 4,123 bt-3sa 1,940 1,910 1,900 1,917 5,404 3,950 5,349 4,140 5,369 4,070 5,374 4,053 bt-4sa 2,130 2,150 2,080 2,120 7,387 5,650 7,286 5,530 7,335 5,530 7,336 5,570 Sickness sick-3-1 20 20 10 17 437 70 459 50 449 60 448 60 sick-3-2 130 130 160 140 810 320 812 320 791 300 804 313 sick-3-3 500 480 550 510 2,740 1,640 2,735 1,790 2,705 1,760 2,727 1,730 sick-3-4 2,630 2,610 2,650 2,630 3,632 2,390 3,652 2,400 3,633 2,460 3,639 2,417 sick-3-5 17,070 17,370 17,690 17,377 3,749 2,510 3,810 2,620 3,613 2,750 3,724 2,627

Unit: millisecond

Notes:

(*) Total time (smodels and lparse).

(**) Time consumed by smodels only.

NA: Errors due to memory limit exceeded.