Prolog/LP/CP Programming Contest 2018

The LP/CP programming contest (Prolog, ASP, SAT, CLP) will be run from 4-6PM (London time) on Monday, 16th of July 2018, at the 34th International Conference on Logic Programming, July 14​-​17 2018, Oxford, UK, https://www.cs.nmsu.edu/ALP/iclp2018/index.html in Blavatnik Seminar Rooms 3 & 4.

This programming contest combines the ideas of the Prolog programming contest, the ASP model & solve contest, IDP system and the Minizinc model & solve contest.

Previous contests: https://people.cs.kuleuven.be/~bart.demoen/PrologProgrammingContests/index.html

The LP/CP programming contest consists of two tracks: one on-site track and one online track (the online track will be open for submissions for 24 hours). For both tracks, each team can consist of up to three participants, and each team may only use a single LP/CP system. For the on-site track, each team can use at most TWO computers. For the online track, there is no limit to the number of computers that can be used.

Contest Problems:

http://www3.cs.stonybrook.edu/~pfodor/LPCP2018/

Report: https://sites.google.com/site/prologcontest2018/report

Submission page: https://easychair.org/conferences/?conf=lpcppc2018

Each program is submitted as a "paper", in which the title has the form Track:LastNamesConcatenated:SystemName:FileName (e.g., onsite:SmithDoe:xsb:prog1), the authors are the team members and the abstract contains the program. No attachments are allowed. A team may resubmit their program by updating the submission's information (the time of the last submission is considered for ranking). For each problem, only the final submission will be counted.

For the on-site track, submission on a USB stick is also acceptable if there is no Internet or Easychair access (the time of the submission will be saved). In this case, the program must be saved in the USB stick with the designated name.

Each team is given 2 hours to solve 5 programming problems. Each team must submit solutions as programs in their chosen language. For each problem, a submitted program must have the main name as specified by the problem description, and the extension name must correctly indicate the used language. For ASP the extension is “.asp”; for Minizinc the extension is ".mzn"; for Prolog the extension name is “.pl”; and for Picat the extension is “.pi”.

One of the following systems can be used:

If a team wants to use any other system, the team must contact the organizers in advance, offer assistance in installing and testing the system, and provide solutions for the sample problems.

Sample Problems and Solutions can be found at previous installments of the competition like the 2017 version: https://sites.google.com/site/prologcontest2017/

For each problem, a set of instances is used to test submitted programs. A smaller set of the test instances and their sample outputs will be made available online during the competition. A program-run is started by a command that consists of the system’s executable name, the program file, and an instance file. Examples:

swipl -g "main,halt." prog1.pl instance1.pl

eclipse -e main -f prog1.pl -f instance1.pl

xsb -e "[prog1], [instance1], main, halt."
clingo prog1.asp instance1.pl 
picat prog1.pi instance1.pl 
minizinc prog1.mzn instance1.dzn 

All outputs must be sent to the console in the format specified by the problem description. Programs are run on test instances during the competition. If a program fails to give a correct answer or fails to solve an instance in 60 seconds, the team may be notified by email and can submit another program.

There will be prizes for the winners of both the on-site and online tracks. There are separate rankings for the on-site and online tracks. The teams are ranked by the number of correctly solved problems. If necessary, the submission times and the run times of the solutions are used to break ties.

FAQ

Q1: Do I have to register for the competition in advance?

No, you do not have to register in advance. Nevertheless, you may want to test your Easychair account by submitting an empty solution in advance, so that you can save some time when submitting real solutions.

Q2: Can I use a Prolog system that does not support constraints?

Yes, most of the instances are easy to solve, even with simple backtracking.

Organizers

  • Paul Fodor: pfodor at cs.stonybrook.edu

Example 1 for RBAC problem:

users(3).

roles(3).

perms(3).

urs(3).

ur(1,1,1).

ur(2,1,2).

ur(3,1,3).

rps(3).

rp(1,1,1).

rp(2,1,2).

rp(3,1,3).

rhs(3).

rh(1,1,2).

rh(1,2,3).

rh(1,1,3).

Output:

minRoleAssignmentsWithHierarchy(4).

because userroles(1,1) rolepermissions(1,1) rolepermissions(1,2) rolepermissions(1,3)