[SOLVED] CAP5605 - Introduction to AI - Project2

35.00 $

Programming resource
Digital learning resource
Category:
Practical programming resource
Suitable for guided study and reference
Tutor guidance available when needed

Description

5/5 - (1 vote)

For this project, you will design and build a knowledge-based intelligent system that collects user preferences and reasons about them.

1            Requirements

  1. The system should have an easy-to-use GUI (using the Python Tkinter module1) for collecting names of attributes and their values, hard constraints, and preferences. The system also should allow reading in these input from files. (See section 3 for formats of these files.)
    • Attributes (A) in this project are going to be binary.
    • Hard constraints (H) are represented as propositional formulas in the Conjunctional Normal Form (CNF).
    • The system should support preferences (T) in the preference language of penalty logic. Formulas involved in the preference theories are of CNF as well.
  2. The system should support the following reasoning tasks:
    • Existence of feasible objects: decide whether there are feasible objects w.r.t H, that is, whether there are models of H that are truth assignments making H
    • Exemplification: generate, if possible, two random feasible objects, and show the preference between the two (strict preference or equivalence) w.r.t T.
    • Optimization: find an optimal object w.r.t T.
    • Omni-optimization: find all optimal objects w.r.t T.
  3. The system should take advantage of the clasp system, a SAT solver that takes a propositional formula in CNF and computes its models. It can be used to compute feasible objects for H, check if a truth assignment satisfies a formula, etc.
  4. For testing, the system should solve an instance, developed by you, that contains at least 6 hard constraints and at least 6 preference rules over at least 8 attributes. Also use this instance when demonstrating your system.

1See https://pythonspot.com/tag/tkinter/ and https://www.python-course.eu/ tkinter_labels.php for helpful references

3            File Formats

3.1          Attributes File

appetizer: soup, salad entree: beef, fish drink: beer, wine dissert: cake, ice-cream …

3.2          Hard Constraints File

NOT soup OR NOT beer

NOT soup OR NOT wine

3.3          Preferences File

fish AND wine, 10 wine OR cake, 6

beer AND beer OR beef AND NOT soup, 7

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.