Strimko by Resolution

An Intro-AI Project



Summary

Develop a Strimko solver by repeated and systematic application of the resolution inference procedure.

Topics

Knowledge representation (propositional logic), logical inference (resolution), backtracking search, Python programming

Audience

Undergraduate students in an introductory AI class.

Difficulty

Being meant for undergraduates, this is a fairly straighforward project. The basic project (without extra credits) should not take more than a week between assignment and due date.

Strengths

This project allows students to get an integrated view of logical inference and backtracking search in a small and manageable problem (Strimko). It also encourages goal-oriented research into an advanced topic. By avoiding the use of a black-box SAT solver in the base project, the students get a "look under the hood" of logical reasoning.

Weaknesses

Some Strimko puzzles cannot be represented due to limitations in the GUI. However, the solver (when completed) will work for all Strimko puzzles. The demo version does not include backtracking search.

Dependencies

Students should be able to translate formal pseudocode as well as less formal instruction into program, and also follow pseudocode logic to be able to answer questions about it. Knowledge of Python required.

Variants

An in-class demo variant could be developed that lists the disjunctions on the GUI, and highlights reduction by resolution, guesses made for backtracking, etc., to demonstrate inferences incrementally.


Project Description
Base code (for students)
Demo version (an extended version could be used in class; not available to students)