I've read a little Karl Popper yesterday in hopes of trying to understand how
people find causes for failures.Popper suggested that finding confirming
examples of theories is easy, but finding falsifying examples is hard.
Furthermore, once people form a theory, however that happens, they often create
gedankenexperiments (thought experiments) to verify the theory, or design and
execute real experiments.
I'm hoping to build some falsifier component, which proves theories cannot be
supported by the current knowledgebase, to help weed out poor theories.
Let's start with some prototypes for a basic theory, solution, and a solution
trial. This is using the Premise language for knowledge representation.
let theory :R :before :after :within ; timeframe :reliab ;
reliabilityend
let solution :goal :before :steps :after end
let try :solution :start :until :outcomeend
I was given a phone number some time ago and I dialed the number and was told
the number was invalid.
(new solution :goal call-phone-number :before { know-phone-number have-phone
} :steps { dial-first-digit ... dial-last-digit } :after { call-phone-number
})
.: solution_1
(new try :solution solution_1 :start 2014-06-26-09-00 :until
2016-06-26-09-05 :outcome pending)
.: try_1
I dialed the numbers but was not able to get through. I failed at achieving
my goal.
(set try_1 :outcome failure)
Immediately I had a problem.
let problem :goals :factsend
(new problem :goals { call-phone-number } :facts { know-phone-number
have-phone dial-first-digit ... dial-last-digit })
.: problem_1
For some time I had this problem and did not know what caused it: I had no
theory that predicted it.
Prior to dialing the number, I had transcribed the number on a piece of
paper.Upon closer inspection of the paper I realized that I placed the number 1
close to a pre-existing letter D on the paper, and when I dialed the number I
actually dialed nine instead of one.
Immediately I was confident that if I had dialed a one instead of a nine I
would havedialed the correct number.
(new theory :R causes :before { {goal call-phone-number} misread-number
dialing-misread-number } :after { problem_1 } )
.: theory_1
So I'm curious as to (a) how this episode could be better represented, (b) how
the theorizingshould work and (c) whether we use any kind of falsification to
determine confidence in theories.
In PAM-P2 once a solution failure is detected a problem is created by the
solution regulator, a Theorizer component finds a cause for the failure by
finding a proof of the failure given the initial state of the solution
combined with the steps of the solution. This initial theory of the cause may
not be very good, and it may require several revisions to get it right. Or,
the theory may be defeated entirely by finding counterexamples.
However, often failures involve hidden knowledge that must be synthesized and
factored into a theory of the problem. How does this happen?
Thoughts?
~PM.
-------------------------------------------
AGI
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/21088071-f452e424
Modify Your Subscription:
https://www.listbox.com/member/?member_id=21088071&id_secret=21088071-58d57657
Powered by Listbox: http://www.listbox.com