Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/bnt/examples/static/Models/mk_incinerator_bnet.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 function bnet = mk_incinerator_bnet(ns) | |
2 % MK_INCINERATOR_BNET The waste incinerator emissions example from Cowell et al p145 | |
3 % function bnet = mk_incinerator_bnet(ns) | |
4 % | |
5 % If ns is omitted, we use the scalars and binary nodes and the original params. | |
6 % Otherwise, we use random params of the desired size. | |
7 % | |
8 % Lauritzen, "Propogation of Probabilities, Means and Variances in Mixed Graphical Association Models", | |
9 % JASA 87(420): 1098--1108 | |
10 % This example is reprinted on p145 of "Probabilistic Networks and Expert Systems", | |
11 % Cowell, Dawid, Lauritzen and Spiegelhalter, 1999, Springer. | |
12 % For a picture, see http://www.cs.berkeley.edu/~murphyk/Bayes/usage.html#cg_model | |
13 | |
14 % node numbers | |
15 F = 1; W = 2; E = 3; B = 4; C = 5; D = 6; Min = 7; Mout = 8; L = 9; | |
16 names = {'F', 'W', 'E', 'B', 'C', 'D', 'Min', 'Mout', 'L'}; | |
17 n = 9; | |
18 dnodes = [F W B]; | |
19 cnodes = mysetdiff(1:n, dnodes); | |
20 | |
21 % node sizes - all cts nodes are scalar, all discrete nodes are binary | |
22 if nargin < 1 | |
23 ns = ones(1, n); | |
24 ns(dnodes) = 2; | |
25 rnd = 0; | |
26 else | |
27 rnd = 1; | |
28 end | |
29 | |
30 % topology (p 1099, fig 1) | |
31 dag = zeros(n); | |
32 dag(F,E)=1; | |
33 dag(W,[E Min D]) = 1; | |
34 dag(E,D)=1; | |
35 dag(B,[C D])=1; | |
36 dag(D,[L Mout])=1; | |
37 dag(Min,Mout)=1; | |
38 | |
39 % params (p 1102) | |
40 bnet = mk_bnet(dag, ns, 'discrete', dnodes, 'names', names); | |
41 | |
42 if rnd | |
43 for i=dnodes(:)' | |
44 bnet.CPD{i} = tabular_CPD(bnet, i); | |
45 end | |
46 for i=cnodes(:)' | |
47 bnet.CPD{i} = gaussian_CPD(bnet, i); | |
48 end | |
49 else | |
50 bnet.CPD{B} = tabular_CPD(bnet, B, 'CPT', [0.85 0.15]); % 1=stable, 2=unstable | |
51 bnet.CPD{F} = tabular_CPD(bnet, F, 'CPT', [0.95 0.05]); % 1=intact, 2=defect | |
52 bnet.CPD{W} = tabular_CPD(bnet, W, 'CPT', [2/7 5/7]); % 1=industrial, 2=household | |
53 bnet.CPD{E} = gaussian_CPD(bnet, E, 'mean', [-3.9 -0.4 -3.2 -0.5], ... | |
54 'cov', [0.00002 0.0001 0.00002 0.0001]); | |
55 bnet.CPD{D} = gaussian_CPD(bnet, D, 'mean', [6.5 6.0 7.5 7.0], ... | |
56 'cov', [0.03 0.04 0.1 0.1], 'weights', [1 1 1 1]); | |
57 bnet.CPD{C} = gaussian_CPD(bnet, C, 'mean', [-2 -1], 'cov', [0.1 0.3]); | |
58 bnet.CPD{L} = gaussian_CPD(bnet, L, 'mean', 3, 'cov', 0.25, 'weights', -0.5); | |
59 bnet.CPD{Min} = gaussian_CPD(bnet, Min, 'mean', [0.5 -0.5], 'cov', [0.01 0.005]); | |
60 bnet.CPD{Mout} = gaussian_CPD(bnet, Mout, 'mean', 0, 'cov', 0.002, 'weights', [1 1]); | |
61 end |