Using SMILE for Influence Diagrams

The engine.
Post Reply
nikkne
Posts: 19
Joined: Tue Mar 18, 2008 8:03 pm

Using SMILE for Influence Diagrams

Post by nikkne »

Hi,
I have a rather simple question about SMILE. If I want to use it for solving Influence Diagrams, is this the usual workflow:
- set the graph/read it from the file
- manually update the probabilities based on the dataset
- calculate the expected values for utility nodes
- set some of the nodes as evidence nodes
- use the approach from:
<http://genie.sis.pitt.edu/wiki/SMILE_Tu ... e_Diagrams>
to find the instantiation of the parents with the highest utility

Am I missing something?

Thanks!
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Re: Using SMILE for Influence Diagrams

Post by shooltz[BayesFusion] »

nikkne wrote:Am I missing something?
You can use DSL_ALG_ID_SHACHTER algorithm - it'll find the best policy at SMILE level. It's the equivalent of 'Find best policy' selection from the Network|Algorithm in GeNIe. The code in the tutorial invokes the default influence diagram algorithm DSL_ALG_ID_COOPERSOLVING ("Policy Evaluation" in GeNIe).
nikkne
Posts: 19
Joined: Tue Mar 18, 2008 8:03 pm

Post by nikkne »

Thanks!

What I don't understand from the example is how one finds the "best" values in the decision nodes, which yield the maximum utility, based on evidences. Example iterates through the list of indexing parents, which is enough if the network/ID is of height 1. What to do when the network is much, much bigger (for example, there are 5 chance nodes between a decision and value node)?
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Post by shooltz[BayesFusion] »

nikkne wrote:Example iterates through the list of indexing parents, which is enough if the network/ID is of height 1. What to do when the network is much, much bigger (for example, there are 5 chance nodes between a decision and value node)?
Check my reply to your post about indexing parents.
nikkne
Posts: 19
Joined: Tue Mar 18, 2008 8:03 pm

Post by nikkne »

Thanks!

I read the post on the Indexing parents, but I fail to understand how it relates to my question. Indexing parents are parents, not the predecessors, so I don't see how to make the connection.

Another question on the same topic. Shachter's algorithm require expectations for values nodes, right? So, I can plug those values into the Dmatrix in that's node Definition(). IIRC, Shachter's algorithm also needs expectations for chance nodes. Where should I add them? Is SMILE doing that for me?

Cheers,
Nikola
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Post by shooltz[BayesFusion] »

nikkne wrote:I read the post on the Indexing parents, but I fail to understand how it relates to my question. Indexing parents are parents, not the predecessors, so I don't see how to make the connection.
The indexing parents set may contain predecessors - check the definition. If you have GeNIe installed, load tutorial11.xdsl from the examples directory, perform inference, open 'Financial Gain' properties, then go to 'Value' page. You'll notice that indexing parents are 'Expert forecast' and 'Investment decision'. The 'Expert forecast' node is clearly a predecessor.
Another question on the same topic. Shachter's algorithm require expectations for values nodes, right? So, I can plug those values into the Dmatrix in that's node Definition(). IIRC, Shachter's algorithm also needs expectations for chance nodes. Where should I add them? Is SMILE doing that for me?
I'll need to check that. Stay tuned.
marek [BayesFusion]
Site Admin
Posts: 430
Joined: Tue Dec 11, 2007 4:24 pm

Post by marek [BayesFusion] »

shooltz wrote:
nikkne wrote:Another question on the same topic. Shachter's algorithm require expectations for values nodes, right? So, I can plug those values into the Dmatrix in that's node Definition(). IIRC, Shachter's algorithm also needs expectations for chance nodes. Where should I add them? Is SMILE doing that for me?
I'll need to check that. Stay tuned.
I'm not sure I understand your question. ID algorithms (including Shachter's) compute expected utilities for all decision options and choose the option with the highest utility. This is all done "under the hood" and you don't need to specify in your model anything else but probabilities and utilities. Does this help? Cheers,

Marek
Post Reply