Plain text version | Style: Default, Black and White, Bath

University of Bath Logo
Dr Marina De Vos
Department of Computer Science
Monday, 11-Dec-2017 20:59:49 GMT

Msc. Project Suggestions 2006 - 2007

On this page you can find a number of project suggestions for students on the Msc. in Computer Science and Msc. Multi-Media Technology. Feel free to contact me with suggestions of your own.

These are the current project suggestions:

  1. Project 1: General Game Playing in ASP
  2. Project 2: Clima Competition Agent in ASP
  3. Project 3: Finite State Autonoma Generation
  4. Project 4: A Logic Programming Tutor
  5. Project 5: Playing Answer Set Programs as Games
  6. Project 6: A ccNUMA core for Platypus and / or an UltraSPARC T1 core
  7. Project 7: Profile and optimise smodels
  8. Project 8: A DNF based solver

Project 1: General Game Playing in ASP

Task - Write a GGP player with an answer set as its core.

Description - A General Game Playing System is one that can accept a formal description of an arbitrary game and, without further human interaction, can play the game effectively.

This projects seeks to develop a GGP player partially based on answer set programming. All other tools and techniques can be freely chosen.

ASP (Answer Set Programming) is an up and coming field in logic programming. Programs consist of a series of logical rules which are then put into a solver, which produces a list of 'possible world views' that are consistent with the information provided by the rules.

More information on GGP and support tools can be found on the GGP homepage.



Project 2: Clima Competition Agent in ASP

Task - Write an agent capable of entering the Clima Competition.

Description - This project seeks to implement an agent capable of entering the Clima VII competition. The agent should use ASP as its core computational logic formalism.

ASP (Answer Set Programming) is an up and coming field in logic programming. Programs consist of a series of logical rules which are then put into a solver, which produces a list of 'possible world views' that are consistent with the information provided by the rules.



Project 3: Finite State Autonoma Generation

Task - Implementing a program that translates a logic program into a finite state automaton that generates the same semantics

Description - When creating "intelligent systems" there are a variety of approaches that can be used. Finite State Autonoma are very fast and efficient to implement but are difficult and unintuitive to design and often difficult to prove. Logic programming gives a very simple and intuitive way of designing of creating sophisticated 'intelligent' systems but are often too slow to be used in time critical applications, such as games.

This project seeks to combine the advantages of both by generating finite state autonoma from logic programs. A logic program is developed that will plan one step of a solution, it is evaluated with respect to all possible states of the world and this used to build a planning graph with nodes corresponding to actions and links to changes in the state of the world, from the graph a finite state autonoma is then created.

The first step of the project would be to create tool to automate the process of creating autonoma from logic programs. Possible extensions are taking results on adding rules to logic programs and using them to update the finite state autonoma, creating a 'learning' system or to compare the performance of the tool against similar systems, such as qsmodels - a Quake 3 bot implemented using logic programming.



Project 4: A Logic Programming Tutor

Task - Write a tutor for novel ASP users.

Description - This project aims to produce a software product capable of explaining undergraduate students how answer set programs and their respective solvers work.



Project 5: Playing Answer Set Programs as Games

Task - Write a program that takes an answer set program as input and returns its game tree and winning strategies

Description - AnsProlog is a declarative logic programming system that is used at the University of Bath. Programs are made up of a series of rules, each of which expresses a simple statement about logical inference. One way of looking at the semantics these programs is using logic games such that the answer sets and the winning strategies correspond.

The aim of this project is to implement an algorithm and interface for computing the winning strategies of a program.



Project 6: A ccNUMA core for Platypus and / or an UltraSPARC T1 core

Task - Write a new core (a specific part of the program) for the Platypus system such that the distributed answer set solver can run efficiently on a ccNuma or UltraSparc TI machine.

Description The distribution system of Platypus works by distributing partial assignments - points within a tree of computations in which the leaves are conflicts or answer sets. The probing module allows an implementor to change partial assignment after a fixed number of conflicts have been reached. This allows the work to be divided up into packets in such a way that a packet of work is deterministic and repeatable. The central server stores these packets of work as files in a file system and assigns them to clients. This allows clients to work at their own rate, using a distributed, ad-hoc networking model and not needing interaction between them. Using the file system to store the computation tree means that tools (such as monitoring, logging, partial recomputes, etc.) can be greatly simplified and the server is fault tolerant and easily distributed. The implementation of Platypus is very machine dependent. For this project you are asked to alter the Platypus code so it can run on either ccNUMA or UltraSPARC T1

Prerequisites: You need to be a good program for this project. Platypus is written in C++. Also an active interest in machine architectures is necessary.



Project 8: Profile and optimise Smodels

Task To run a set of profiling tools on the answer set solver Smodels. Insights should then be used to suggest and improve Smodels

Description After some initial profiling, we found out that Smodels does not always work as optimal as I should. This project aims to discover more problems with the code and ways to solve them.

Prerequisites: Good coding skills. The program is written in C++. Some experience or strong interest in profiling code.



Project 8: A DNF based solver

Task Write a new front-end for minisat, a sat solver, so that it can take DNF based input

Description Traditionally Sat solvers only take CNF input. This project aims to extend their range by adding a pre-processor that translates DNF to CNF.

Prerequisites: You need to be a good program for this project. The project also requires some understanding of logic formulas. An interest in theory is also necessary.