Assigned: | Monday March 25 |
---|---|
Deadline: | Monday April 22, 11:59pm |
Some decision making domains, like medicine or finance or computer science, often have actual right answers. There are facts. There are clear outcomes. Even so, in a domain like medicine, it is not always the case that the standard practice is right for every patient. For example, something as common as a blood transfusion may not be appropriate for a patient who has religious objections to the procedure. Some people would rather die than compromise their convictions.
This is VOTE territory.
We pose a seemingly simple technology decision: what kind of computer should I buy? A Mac or Windows PC or Linux machine? How much memory? How big a screen? Desktop or laptop or notebook or tablet? How much am I willing to pay?
Implicit in the technical choices are the set of goals that the user wants to achieve. Most people don't buy a computer just for sake of owning a computer. They want to do stuff with it - surf the internet, edit videos, use facebook or zoom, run a business, create music. You get the idea.
The point is that there is a teleology to technology. There is a design and purpose to the many features of computers. I don't want to get all theological here - I am not arguing that your iPhone is proof of the existence of God. However, I am not arguing against that point of view. The point is that in making decisions about technology, you are on firmer ground than most political decisions. Technology, by God, has a demonstrable purpose and can help users achieve their goals.
Building on the classes in the Goals notebook, create a device
class,
which has instances of a features
class. Then create various
instances of the agent
class, each of which has a set
of feature stances, e.g., PRO or CON, and with an importance level.
You might want to add a level of indirection, in which feature stances
are inferred from goal stances. For example, I want to play video games,
therefore I need to have a high resolution monitor, fast CPU, lots of
memory, and a high-bandwidth internet connection.
Next write the following procedures:
likes(agent, device)
which decides if an agent
likes the given device or not.
prefers(agent, list of devices)
which selects
a device from a given collection. The procedure may select one, many, or no
devices.
recommend(agent)
which makes a recommendation based not only
the agent's own preferences, but also the program's knowledge of what
the agent might actually want or need, without knowing it. The recommend
procedure is like a salesperson at Best Buy, or maybe you advising your
parents or grandparents. You know more about what they might want
than they do. It can also include norms, such as most people
prefer color to black and white screens.
All three procedures must provide explanations. As in VOTE, the person has a set of preferences, a collection of relationships, and possibly a history of prior decisions. You may modify the agent class.
Hard as it may be for a computer science person to accept, it is possible that the recommendation is for the person not to get any computer. Again, there needs to be an explanation. As a rule of thumb, the explanation should lead with the most important reasons.
You may wish to incorporate qualitative arithmetic into the program, given that you have to deal with quantities such as price, memory size, screen size, disk space, etc. See An Intentional Arithmetic for Qualitative Decision Making and Qualitative Decision Explanation for Information Technology Investment and Qualitative Business Decision Making. For example, in the pc recommendation domain, certain dimensions have qualitative valences, e.g., memory is a HIGH, price is a LOW, and speed is a HIGH.
From my perspective, you could have just a couple of dozen types of machines, with orthogonal characteristics. For the purpose of this assignment, you do not need to use real machines. You can have fictional computers. You then need to come up with a user classification system that accounts for why a person actually needs a computer.
This line of analysis applies to other domains, for example, recommending movies or books or restaurants or automobiles. The computer program has to have a fine grained understanding of the person for whom the recommendation is being made.
Imagine that you have a restaurant with 1,000 items on the menu. If all you know about the customer is how many calories they desire and to what foods they are allergic, you are not going to make very pertinent (or appetizing) recommendations. The answer to that problem is not to put more items on the menu. Rather, it is to get a better model of the customer.
That principle applies to the pc recommendation domain. The system will not get better by adding hundreds of models if the model of the user is impoverished and does not reflect the diversity of goals that may occur.
One of the key features of VOTE which applies to this domain is the decision strategy. VOTE had over a dozen strategies which served to mediate the decision and also to generate the explanation. In the pc recommendation domain, decision strategies might include: