Feasibility Analysis of Proposed Knowledge-Based System Project

by Michael Wales

Version History:
Feasibility Analysis V1.0February 10, 2002Initial Document

Table of Contents

Brief Summary of Project:

I'm going to create a application used to recommend the computer hardware needed for a new computer based on the intended uses of the computer. It can be very confusing to figure out what components are the best for you when you set out to build a completely new system. There are many different types of CPUs, video cards, motherboards, hard disk drives, etc. I know many people who have bought a system and spent too much, because the computer is overkill for their application. I also know of instances where components were purchased, that didn't quite do what the user needed them to.

My application will survey the computer user of their typical needs of the system. Common needs are for gaming, video editing, home office, graphics, and others. The user can then rate the importance of each of these needs, so that the system knows how to weight the need. The user can also input the amount of money they are expecting to spend. The system will use these inputs to come up with a complete hardware recommendation.

Here is an example of how the application would work:

  1. The system would ask me what applications I typically use my system for.
  2. I would rate video editing and gaming performance as being very important for my system.
  3. The system would ask me how much I want to spend on the new system.
  4. I would tell it I'm looking to spend about $1,000 on the new system.
  5. The system would calculate the price of the basic components of the system that are unimportant to my applications.
  6. The system would then calculate how much money I have to spend on the components that are critical for my needs.
  7. It would then recommend a CPU, video card, and hard drive that would be the best performing that I could afford.

Project Evaluation Criteria

Does the problem really exist?

Very much so! Not many people can tell you the difference between a GeForce2 MX, GeForce2 Ti, GeForce3, GeForce3 Ti200, GeForce3 Ti500, and GeForce4 video card. The prices range from $50 - $300+ for the GeForce family of cards. A GeForce2 MX is plenty for a person who is just using the computer in a home office setting, but a negative impact on the gaming system. Here are some first hand examples of the problem:

There are also some groups that this system wouldn't help. Many computer users that demand hi-performance computers typically follow the computer industry news, and wouldn't need this application. Some computer "illiterate" users wouldn't be able to use the application, and therefore would have to rely on other sources for the computer purchasing advice.

This system could save a user from over-spending several hundred dollars on a system that doesn't meet their needs, or exceeds them, so it's valuable in that sense. I don't think I could sell a system like this for much because a user could go and do some research on their own and find the answers. Sadly, many computer users choose to be uninformed, and have to trust the judgment of a salesman who is typically working for commission. The system is very valuable to me because it represents a large portion of my grade in EEL5874. The value of the system is sufficient for this class, but probably wouldn't be great enough to become a commercial project.

Score: 0.85 / 1.0

Is the knowledge-base technique suited?

I'll look at this with some of the questions laid out in the book.

  1. Is human problem solving being replicated in the solution of the problem? I think this system will emulate human problem solving. I want it to take the user's needs, and then decide what hardware to recommend based on what the user says he needs most. It won't be simple IF-THEN decisions. This makes the problem more suited for a KB solution.
  2. Is the problem solving more heuristic or algorithmic? The problem is very heuristic. The system will have to know what each component's benefit to the system is. There are many different kind of components that the system will have to know. The only algorithmic part will be the price calculations. This makes the problem more suited for a KB solution.
  3. Does the knowledge (expertise) change or remain constant? The knowledge about the prices of components will change over time. The performance of each model of component will remain the same. Also, as time passes, if the system was to remain current, new components and needs will probably have to be added to the system. This makes the problem more suited for a KB solution.
  4. If expertise involved, is it well accepted and understood? The knowledge isn't well accepted. Many of the decisions are based on opinions, but there are ways to make the evaluation of components more systematic and independent of opinions. The expert's opinions will probably skew the recommendations towards their opinion, but since he is considered an "expert", we will assume that he has good reason for his opinions and recommendations. The problem is well understood though. This makes the problem less suited for a KB solution.
  5. Is the input data always complete and correct? The input data should be correct because the inputs are the user's system needs. But when we ask the user to weight each of their needs, it will be used like a confidence factor when the system decides what hardware to recommend. This makes the problem more suited for a KB solution.
  6. Can the problem be solved better through other means? This would not be an easy problem to solve with a conventional software program. The knowledge-based solution is probably the best way to solve the problem.
  7. Does it pass the telephone test? Very easily. The user could easily describe their needs and budget for a computer system and have an expert give them a list of recommended components.

The key factors that make this problem well suited for a knowledge-based solution is the heuristic knowledge involved, the changing knowledge, and that the problem is not easily solved with a conventional software program.

Score: 0.65 / 1.0

Is the knowledge based technique justified?

This has a "yes" and "no" answer. The problem is fairly simple to overcome, and most managers would just have someone research the hardware options when selecting new hardware. Low costs to maintain the system (update it with the newest hardware) over time might make it slightly more worthwhile. But for only occasional use, it would be cheaper for someone to do the research for each computer purchase. For our project though, the KB system development is free, so the technique will be justified.

Score: 0.5 / 1.0

Is there management support?

Since the project isn't in an actual corporate environment, we will assume management has a need for the project, and I, the knowledge engineer have the time to work on the project myself. I'll most likely be using free tools to develop the system, and I will have to train myself. I don't anticipate the training to take much time. My expert is easily accessible and doesn't mind giving me any support I need. My management shouldn't have any reason to not support the project.

Score: 1.0 / 1.0

Is there expert support?

The expert I will be using is a co-worker. He is giving me his support as a friendly favor. He will not feel that his job is threatened in any way, and he is interested in the concepts and implementation of the knowledge based system himself. We will also have plenty of time to meet together if needed.

I also chose this project because I happen to have acquired quite a bit of knowledge about building computer systems in the past, and keep pretty current on the latest hardware that comes out. I will be using some of my own expertise in the field along with my friends, and various Internet sources of information like TomsHardware.com and Anandtech.com.

Score: 1.0 / 1.0

Is the expert competent?

The expert is Computer Engineer that graduated from UCF with a BS in the spring of 2001. He has built dozens of computer systems for his home and work. In addition to working at Harris, he also does consulting work for a web development company. He handles their hardware and networking needs. I've personally asked for his assistance on hardware issues, and his advice has been very accurate and useful.

I think the perfect expert would be an employee for a computer system manufacturer. But even then, an employee for a computer system manufacturer may only have knowledge on the types of components that their company uses.

Also, with any type of expert in this field, their knowledge is going to base heavily on their opinions on the performance of hardware. Often, people tend to lean either towards AMD or Intel solutions for CPUs, or Nvidia or ATI solutions for video cards, or VIA, Intel, or AMD for motherboard chipsets. Some things are just a matter of taste.

Score: 0.85 / 1.0

Is the expert articulate?

I have found the expert to be very articulate, both in verbal and written forms. I view the expert as being even more articulate than myself, so my ability to communicate my ideas is more of a limitation.

Score: 1.0 / 1.0

Is the expert in close proximity?

I work on a daily basis with the expert, and we are pretty good friends. Our home locations are very close too. The expert does spend his weekends in Orlando (and we live in Palm Bay), which is an hour away. I think I can get the necessary information for the project during the time he spends here during the week.

Score: 0.9 / 1.0

Final Conclusions:

Here is a table presenting all the scores from the above criteria with the weighting specified in the assignment.

CriteriaWeightScoreWeighted Score
Does the problem really exist?0.20.850.17
Is KB technique suited?0.40.650.26
Is KB technique justified?
Is there management support?
Is there expert support?
Is the expert competent?0.050.850.043
Is the expert articulate?
Is the expert in close proximity?
Total Weighted Score1.0.786

The total weighted score of .786 indicates that this project is a "strong candidate application". I feel that with all the different hardware components available for a computer system that the goal of 50 rules for the system is well within reach also. I feel that by combining my expertise in this domain with another expert (who is going to give me excellent support) that I can come up with an excellent application.