AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Problem Solving Methods
 
 

Suppose you decide to add a problem-solving function to your intelligent agent, let’s say, diagnostician. John Stuart Mill in his “System of Logic” (1843) developed five methods of inference for the purpose of understanding the grounds upon which it is appropriate to make judgments about a single cause when there are multiple cases. The five methods include: method of agreement, method of difference, joint method, method of residues, and the method of concomitant variation.
In the following example, you tell the agent “I have a stomachache”. This motivates the agent to discover the cause of the malady using one of “Mill’s Methods.” Your job is to determine how you would implement this function.

Tom: I have a stomachache.
Harry: Who else has a stomachache?
Tom: mom, dad, and sis.
Harry: Did you all eat at the same place recently?
Tom: Yes, we ate a buffet dinner together.
Harry: What did you eat?
Tom: oyster and salad.
Harry: What did mom eat?
Tom: oyster, beef, salad and noodles.
Harry: What did dad eat?
Tom: oyster and noodles.
Harry: What did sis eat?
Tom: oyster and beef.
Harry: since everyone ate oyster, oyster is the probable cause of the stomachache.
Tom: How did you arrive at this answer?
Harry: I used Mill’s Method of Agreement.
Tom: list the steps you took.
Harry: I collected all the cases with the same effect, compared the effect to the rules to create a list of candidate rules, compared the candidate rules to the situation to find a relevant rule, compared the causal side of the rule to each case to create a list of possible causes and compared the possible causes for each case to find a common cause for all cases.

 

 
  [ # 1 ]

I think that we must solve the first steps on this “stairway to heaven” and as I see they are far from being solved already.

Part of Speech (POS) tagging is rather not perfect, but goes circa 95% (good start) but it’s not robust, is too sensitive to ‘noise’ and misspelling, there is no ‘read over’ the words, or between lines.

Shallow Parsing works on 70% of the ‘test’ corpus, and is very sensitive to ‘noise’ and misspelling

Deep Parsing is only working on ‘test’ sets and rarely surpasses 40%.

Pragmatic interpretation is worse! (have no statistics about this) but guess there is less than 30%

Starting from pragmatics, there must be a cognitive model to put the results inside, and only then, we can ‘may be’ try to solve how to build reasoning’ algorithms… only then!

Its like playing God being an ant!

We need to evolve first, and I think there is a long way ahead!

Lets first concentrate on the 4 first steps!
wink

 

 
  [ # 2 ]

Reminds me of Mycin:

http://en.wikipedia.org/wiki/Mycin
http://lazax.com/software/Mycin/mycin.html

The problem with Mycin (imho) is that it doesn’t understand a natural language statement of symptoms, and it’s too hard to translate the natural language formulation of new rules into the formal language version required by the program. There’s an impedance mismatch between the subject-predicate syntax of natural languages, and the function-argument syntax common in programming languages…

IBM says they’re applying Watson to medical diagnosis. I think they may get something that works, but it’ll be needlessly over-engineered because the only way they can think is in terms of function-argument syntax, and arbitrary protocols such as UIMA, instead of using the ready-made, evolutionarily-fit syntax and protocols of natural language. To get something like Voyager’s doctor program, in my opinion you need to deal with natural language from the start, instead of tacking it on at the end.

 

 
  [ # 3 ]

Toborman, are you interested in the NLP abilities necessary for such a “logic bot” or, assuming accurate parsing, how one would implement “Mill’s Methods” themselves? Because this conversation seems to be leading to yet another thread about the challenges of parsing. Which—don’t get me wrong—I find endlessly interesting. smile But I don’t think it’s a direction you’re intending.

 

 
  [ # 4 ]
C R Hunt - Aug 21, 2011:

Toborman, are you interested in the NLP abilities necessary for such a “logic bot” or, assuming accurate parsing, how one would implement “Mill’s Methods” themselves? Because this conversation seems to be leading to yet another thread about the challenges of parsing. Which—don’t get me wrong—I find endlessly interesting. smile But I don’t think it’s a direction you’re intending.

I am also interested in NLP, but I’m willing to work on some of the functions that will still be required after the “birth” of NLP. I’m OK with evolving from zero percent to 30% using the pragmatic approach. I believe that Mill’s Methods can be implemented to work some of the time.  By exploring these methods I might even get some insight to the really interesting question: How did Mill discover his methods?

 

 
  [ # 5 ]

I find the Mills method in the example above to be both interesting but the logic seems to be too linear and rigid. A diagnosis based on deduction is very narrow, and to simply hone in on a common denominator may be helpful but it may also be a red herring. An example could be that the family has come in contact with a person carrying a particular disease. Such information can be gleaned only through open questioning , discussion and story telling.
I do agree with Toborman that it may ‘work some of the time”.

Thanks for the reference to the Mycin article.

 

 
  [ # 6 ]
Michael Stoddart - Aug 22, 2011:

I find the Mills method in the example above to be both interesting but the logic seems to be too linear and rigid. A diagnosis based on deduction is very narrow, and to simply hone in on a common denominator may be helpful but it may also be a red herring. An example could be that the family has come in contact with a person carrying a particular disease. Such information can be gleaned only through open questioning , discussion and story telling.
I do agree with Toborman that it may ‘work some of the time”.

Thanks for the reference to the Mycin article.

Excellent! You have identified one of the typical criticisms of Mill’s Methods: determining a plausible cause. A list of plausible causes can be inferred abductively by looking at known cause-effect relationships which match the effect. These relationships would have been learned from earlier experience, open questioning, discussion and story telling, as you have pointed out.

As with all problem-solving methods, these only work some of the time, depending on the events and circumstances at the time.

There are two more conditions which limit the use of these methods. In those cases, other fault diagnosis methods are available.

The last two responses in the example are not from Mill. They come from an independent metacogition process.

For those of you who have the interest,there are still four more methods from Mill to explore after this one.smile

 

 
  [ # 7 ]

Here’s one possible approach to Mill’s Methods. The psuedocode is somewhat difficult to read. Sorry.red face

interpret input “I have a &symptom;”
test interpretation for inference match
abductive search of rules for matching proposition2

case: no rule found
  tell regret

Case: one rule found
  create input(category1) list
  add input(object1) to input(category1) list
  ask “Who or what else has input(object2)?”
  add responses to input(category1) list
 
  parse rule for proposition1
  remember proposition1
  parse proposition1
  for each input(object1) on input(category1) list
  ask “what proposition1(category2) did input(object1) proposition1(action) ?”
  create input(object1),proposition1(category2) list
  add responses to input(object1),proposition1(category2) list

  compare input(object1),proposition1(category2) lists for single common response (Mill’s Method of Agreement)

  if single common response found then
  remember common response
  tell “Since every case has ” common response “,” common response ” is the probable cause.”
  otherwise
  try method two

Case: more than one rule found
  reduce to single rule or try each rule

Using Mill’s Method of Agreement and the following data, determine the probable cause for the symptom:

english: “I have a &symptom;” interprets to “person,&user;,has,condition,&symptom;”
inference: if person,&human;,has,condition,&symptom; then try “mill’s methods”.
causal rule: proposition1(person,&human;,eat,food,&food;) causes proposition2(person,&human;,has,condition,stomachache)
regret:“I’m sorry.”

tom:symptom=stomachache, foods eaten=oyster,salad
mom:symptom=stomachache, foods eaten=oyster,beef,salad,noodles
dad:symptom=stomachache, foods eaten=oyster,noodles
sis:symptom=stomachache, foods eaten=oyster,beef

Mill’s Method of Agreement only needs the last 4 statements to do the compare.  The rest of the code gets the data in and the answer out.

 

 
  [ # 8 ]

oops. I left out:
input:I have a stomachache.
symptom:stomachache

 

 
  [ # 9 ]

If Mill’s Methods are not to your liking, perhaps you will find one of these 13 approaches to problem-solving interesting.
Abstraction: solving the problem in a model of the system before applying it to the real system
Analogy: using a solution that solved an analogous problem
Brainstorming: (especially among groups of people) suggesting a large number of solutions or ideas and combining and developing them until an optimum is found
Divide and conquer: breaking down a large, complex problem into smaller, solvable problems
Hypothesis testing: assuming a possible explanation to the problem and trying to prove (or, in some contexts, disprove) the assumption
Lateral thinking: approaching solutions indirectly and creatively
Means-ends analysis: choosing an action at each step to move closer to the goal
Method of focal objects: synthesizing seemingly non-matching characteristics of different objects into something new
Morphological analysis: assessing the output and interactions of an entire system
Reduction: transforming the problem into another problem for which solutions exist
Research: employing existing ideas or adapting existing solutions to similar problems
Root cause analysis: eliminating the cause of the problem
Trial-and-error: testing possible solutions until the right one is found.

 

 
  [ # 10 ]

Toborman, you left one out:

Delegation Assign the problem to another, and let them figure it out.

raspberry

Just kidding. I can see quite a number of methods there that we all use in our problem solving “repertoire”. Well done.

 

 
  login or register to react