Fast Instantiation of GGP Game Descriptions Using Prolog with Tabling

Revision: 
1
Contributing Authors: 
  • Jean-Noël Vittaut
  • Jean Méhat
Description: 

The experiment consists in measuring the time taken to instantiate a GDL
description and the size of the description in function of this time. I
attached an example of the original description of the game maze (maze.gdl) and
its equivalent instantiated version where all the variables have been
eliminated (maze.inst.gdl).

In this experiment, we try to instantiate the 246 GDL game descriptions that
were active in February 2014 on the Dresden general game playing server and we
measure the time taken to instantiate each description and its size. The
results are summarized in two figures. Figure 1 presents the percentage of
instantiated game descriptions that were grounded within the time budget in the
x-axis. Figure 2 presents the number of generated rules as a function of
instantiation time. The computed instantiated descriptions are not saved on
disk because it would slow down the experiment although it is possible to use
the program grounder to verify that the instantiation is correct.

Files:

experiment.py
launch the whole experiment and generates two tables (ground.dat and
grsize.dat) and the two plots of the paper (figure1.png and figure2.png). This
script calls grounder on each file of the collection and gather the time to
instantiate and the size of the instantiation. A timeout is set to 1800s for
each instantiation.

grounder
This program takes a GDL description and print 3 numbers : the time to compute
input/base, the time to instantiate, the size of the instantiation. It uses the
Yap Prolog 6.2.2 C library (www.dcc.fc.up.pt/~vsc/Yap/) Usage: ./grounder [-v]
filename.gdl -v : also print the instantiation

plot1.pg and plot2.pg
Those are gnuplot scripts to generate the figures

db
Directory containing the collection of 246 game descriptions.

Instructions for running the experiment:

$ vagrant init SomeName http://recomputation.org/ecai2014/experiments/jean/Grounding1.box
$ vagrant up