Computer purchase advisor expert system

Project Proposal by Martin Stacey


Computer purchase advisor expert system

Software

Any powerful object oriented language, or expert system shell, or Prolog

Covers

Artificial intelligence

Skills Required

Programming, some interest in artificial intelligence

Challenge

Conceptual ??? Technical ??? Programming ???

Brief Description

Figuring out what computer to buy can be a complicated problem, as you balance cost against the functionality you think you need, when you aren't really sure how much power (etc) you need, and you try to take into account noise, power draw and physical size. Different purchasers have different needs and priorities. Many other purchasing decisions are similarly difficult and might be even more important, such as figuring out how to invest your money for your retirement. Can artificial intelligence help?

The challenge of this project is to build an expert system to advise on purchasing decisions, where purchasers need to make trade-offs between cost and features they want, and aren't sure how to map between the features offered and their real needs, and where different purchasers may have different requirements.

Ideally the system should separate reasoning and data, so that information about particular products can be updated without needing to change the implementation of the reasoning process. It would be even better if the design of the system allowed the separation of setting numerical parameters in inference rules, if these are needed, from the structure of the rules themselves.

Variants

You could apply the same approach to any kind of difficult purchasing decision, such as making financial investments. Even within the scope of computer technology, you get different challenges deciding how to customize your computer build, versus choosing a laptop, versus choosing a monitor.

You either need to be knowledgeable about the type of purchasing decision you're building an advisor for, or you need to know someone who is. You could make doing your knowledge acquisition process properly and documenting it thoroughly a substantial part of the project.

If you like you can apply the CommonKADS development methodology to the development of your system, and produce the different models of the problem solving process it requires as a significant part of your project.

The project will have a very different character according to the programming language you use. Learning Prolog would be a challenge but would be a very valuable and mind-broadening part of a computer scientist's education.


Back to