(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 4.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 40314, 1058]*) (*NotebookOutlinePosition[ 41690, 1102]*) (* CellTagsIndexPosition[ 41611, 1096]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["BeliefMatrices.nb", "Title"], Cell["\<\ Matrix calculus for belief functions\ \>", "Subtitle"], Cell["Minh Ha-Duong, 2002, 2003", "Author"], Cell["minh.ha.duong@cmu.edu", "Address"], Cell[BoxData[ \(Version : \ \(25/3\)/2003\)], "Input"], Cell["\<\ This package implements Matrix calculus for belief functions, as \ described by Philippe Smets (2001) http://iridia.ulb.ac.be/~psmets Licensed under GPL version 2 or later.\ \>", "Abstract"], Cell[CellGroupData[{ Cell["TODO", "Subsubsection"], Cell["\<\ Add {:Keywords:} Replace b, pl, bel, q by english full words. BeliefMatrices::usage i defaults to Length[\[CapitalOmega]]\ \>", "Abstract"] }, Open ]], Cell[CellGroupData[{ Cell["Public interface", "Subsection", InitializationCell->True], Cell[BoxData[ \(BeginPackage["\"]\)], "Input", InitializationCell->True], Cell[BoxData[{ \(Belief::usage = \*"\"\\""\n\), "\[IndentingNewLine]", \(Plausibility::usage = \*"\"\\""\ \[IndentingNewLine]\), "\n", \(Commonality::usage = \*"\"\\""\[IndentingNewLine]\), \ "\n", \(Implicability::usage = \*"\"\\""\n\ \), "\[IndentingNewLine]", \(PignisticProbability::usage = "\"\)}], "Input", CellLabel->"In[193]:=", InitializationCell->True], Cell[BoxData[{ \(\(bba::usage = "\";\)\), \ "\[IndentingNewLine]", \(\(b::usage = "\";\)\), "\[IndentingNewLine]", \(\(q::usage = "\";\)\), \ "\[IndentingNewLine]", \(\(bel::usage = "\";\)\), \ "\[IndentingNewLine]", \(\(pl::usage = "\";\)\ \)}], "Input", CellLabel->"In[42]:=", InitializationCell->True], Cell[BoxData[ \(\(TransformMatrix::usage = "\";\)\)], \ "Input", CellLabel->"In[1]:=", InitializationCell->True], Cell[BoxData[ \(\(betPMatrix::usage = "\";\)\)], "Input", CellLabel->"In[15]:=", InitializationCell->True], Cell[BoxData[{ \(\(\(SpecializationMatrix::usage = "\";\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(\(GeneralizationMatrix::usage = "\";\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(ConditionatingMatrix::usage = "\";\)\)}], "Input", CellLabel->"In[19]:=", InitializationCell->True], Cell[BoxData[ \(\(NonInteractiveConjunction::usage = "\";\)\)], "Input", CellLabel->"In[141]:=", InitializationCell->True], Cell[BoxData[ \(\(NonInteractiveDisjunction::usage = "\";\)\)], "Input", CellLabel->"In[141]:=", InitializationCell->True], Cell[BoxData[{ \(\(\(AlphaJunction::usage = "\";\)\(\ \[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(AlphaJunctionMatrix::usage = "\";\)\)}], "Input",\ CellLabel->"In[31]:=", InitializationCell->True], Cell[BoxData[ \(\(Unspecificity::usage = "\";\ \)\)], "Input", CellLabel->"In[47]:=", InitializationCell->True], Cell[BoxData[ \(\(CautiousConjunction::usage = "\";\)\)], "Input", InitializationCell->True], Cell[BoxData[ \(Begin["\<`Private`\>"]\)], "Input", CellLabel->"In[5]:= ", InitializationCell->True, CellTags->"BeginPackage"] }, Open ]], Cell[CellGroupData[{ Cell["The matrices", "Subsection", InitializationCell->True], Cell[BoxData[{ \(\(\(TransformMatrix[b, bba, 0] = {1};\)\(\n\) \)\), "\[IndentingNewLine]", \(\(\(TransformMatrix[b, bba, i_]\ /; i > 0\ := \[IndentingNewLine]\(TransformMatrix[b, bba, i] = \[IndentingNewLine]Join[\[IndentingNewLine]Flatten /@ Transpose[{TransformMatrix[b, bba, i - 1], Table[0, {2\^\(i - 1\)}, {2\^\(i - 1\)}]}], \ \[IndentingNewLine]Flatten /@ Transpose[{TransformMatrix[b, bba, i - 1], TransformMatrix[b, bba, i - 1]}]\[IndentingNewLine]]\)\)\(\[IndentingNewLine]\) \)\), "\n", \(\(\(TransformMatrix[j, i_] := \(TransformMatrix[j, i] = Reverse[IdentityMatrix[2\^i]]\)\)\(\n\) \)\), "\n", \(\(\(TransformMatrix[q, bba, i_] := \(TransformMatrix[q, bba, i] = TransformMatrix[j, i] . \ TransformMatrix[b, bba, i] . \ TransformMatrix[j, i]\)\)\(\[IndentingNewLine]\) \)\), "\n", \(\(\(TransformMatrix[b, q, i_] := \(TransformMatrix[b, q, i] = TransformMatrix[b, bba, i] . \ TransformMatrix[bba, q, i]\)\)\(\n\) \)\), "\[IndentingNewLine]", \(\(\(TransformMatrix[bel, bba, i_] := \(TransformMatrix[bel, bba, i] = \ ReplacePart[TransformMatrix[b, bba, i] /. {1, l__} \[Rule] {0, l}, \ 1, {1, 1}]\)\)\(\n\) \)\), "\[IndentingNewLine]", \(\(\(TransformMatrix[pl, bba, i_] := \(TransformMatrix[pl, bba, i] = ReplacePart[\((\ Table[1, {2\^i}, {2\^i}] - TransformMatrix[j, i]\ . TransformMatrix[bel, bba, i])\)\ /. {1, l__} \[Rule] {0, l}\ , 1, {1, 1}]\)\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(TransformMatrix[bba, b, i_] := \(TransformMatrix[bba, b, i] = Inverse[TransformMatrix[b, bba, i]]\)\), "\n", \(TransformMatrix[bba, q, i_] := \(TransformMatrix[bba, q, i] = Inverse[TransformMatrix[q, bba, i]]\)\), "\n", \(\(\(TransformMatrix[q, b, i_] := \(TransformMatrix[q, b, i] = Inverse[TransformMatrix[b, q, i]]\)\)\(\n\) \)\), "\[IndentingNewLine]", \(TransformMatrix[bba, pl, i_] := \(TransformMatrix[bba, pl, i] = Inverse[TransformMatrix[pl, bba, i]]\)\), "\n", \(TransformMatrix[bba, bel, i_] := \(TransformMatrix[bba, bel, i] = Inverse[TransformMatrix[bel, bba, i]]\)\)}], "Input", CellLabel->"In[3]:=", InitializationCell->True], Cell["\<\ Compare with Smets (2001) Tables 4, 5 and 6 page 7: Matrices for bel and pl are modified so that they are no more singular \ \>", \ "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \({TransformMatrix[b, bba, 3] // MatrixForm, \ TransformMatrix[bba, b, 3] // MatrixForm}\), "\[IndentingNewLine]", \({TransformMatrix[q, bba, 3] // MatrixForm, \ TransformMatrix[bba, q, 3] // MatrixForm}\), "\[IndentingNewLine]", \({TransformMatrix[b, q, 3] // MatrixForm, \ TransformMatrix[q, b, 3] // MatrixForm}\), "\[IndentingNewLine]", \({TransformMatrix[bel, bba, 3] // MatrixForm, TransformMatrix[bba, bel, 3] // MatrixForm}\), "\[IndentingNewLine]", \({TransformMatrix[pl, bba, 3] // MatrixForm, TransformMatrix[bba, pl, 3] // MatrixForm}\), "\[IndentingNewLine]", \(\)}], "Input", CellLabel->"In[56]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {"1", "1", "0", "0", "0", "0", "0", "0"}, {"1", "0", "1", "0", "0", "0", "0", "0"}, {"1", "1", "1", "1", "0", "0", "0", "0"}, {"1", "0", "0", "0", "1", "0", "0", "0"}, {"1", "1", "0", "0", "1", "1", "0", "0"}, {"1", "0", "1", "0", "1", "0", "1", "0"}, {"1", "1", "1", "1", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {\(-1\), "1", "0", "0", "0", "0", "0", "0"}, {\(-1\), "0", "1", "0", "0", "0", "0", "0"}, {"1", \(-1\), \(-1\), "1", "0", "0", "0", "0"}, {\(-1\), "0", "0", "0", "1", "0", "0", "0"}, {"1", \(-1\), "0", "0", \(-1\), "1", "0", "0"}, {"1", "0", \(-1\), "0", \(-1\), "0", "1", "0"}, {\(-1\), "1", "1", \(-1\), "1", \(-1\), \(-1\), "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[56]="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "1", "1", "1", "1", "1", "1", "1"}, {"0", "1", "0", "1", "0", "1", "0", "1"}, {"0", "0", "1", "1", "0", "0", "1", "1"}, {"0", "0", "0", "1", "0", "0", "0", "1"}, {"0", "0", "0", "0", "1", "1", "1", "1"}, {"0", "0", "0", "0", "0", "1", "0", "1"}, {"0", "0", "0", "0", "0", "0", "1", "1"}, {"0", "0", "0", "0", "0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-1\), \(-1\), "1", \(-1\), "1", "1", \(-1\)}, {"0", "1", "0", \(-1\), "0", \(-1\), "0", "1"}, {"0", "0", "1", \(-1\), "0", "0", \(-1\), "1"}, {"0", "0", "0", "1", "0", "0", "0", \(-1\)}, {"0", "0", "0", "0", "1", \(-1\), \(-1\), "1"}, {"0", "0", "0", "0", "0", "1", "0", \(-1\)}, {"0", "0", "0", "0", "0", "0", "1", \(-1\)}, {"0", "0", "0", "0", "0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[57]="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-1\), \(-1\), "1", \(-1\), "1", "1", \(-1\)}, {"1", "0", \(-1\), "0", \(-1\), "0", "1", "0"}, {"1", \(-1\), "0", "0", \(-1\), "1", "0", "0"}, {"1", "0", "0", "0", \(-1\), "0", "0", "0"}, {"1", \(-1\), \(-1\), "1", "0", "0", "0", "0"}, {"1", "0", \(-1\), "0", "0", "0", "0", "0"}, {"1", \(-1\), "0", "0", "0", "0", "0", "0"}, {"1", "0", "0", "0", "0", "0", "0", "0"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0", "0", "0", "0", "0", "0", "1"}, {"0", "0", "0", "0", "0", "0", \(-1\), "1"}, {"0", "0", "0", "0", "0", \(-1\), "0", "1"}, {"0", "0", "0", "0", "1", \(-1\), \(-1\), "1"}, {"0", "0", "0", \(-1\), "0", "0", "0", "1"}, {"0", "0", "1", \(-1\), "0", "0", \(-1\), "1"}, {"0", "1", "0", \(-1\), "0", \(-1\), "0", "1"}, {\(-1\), "1", "1", \(-1\), "1", \(-1\), \(-1\), "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[58]="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {"0", "1", "0", "0", "0", "0", "0", "0"}, {"0", "0", "1", "0", "0", "0", "0", "0"}, {"0", "1", "1", "1", "0", "0", "0", "0"}, {"0", "0", "0", "0", "1", "0", "0", "0"}, {"0", "1", "0", "0", "1", "1", "0", "0"}, {"0", "0", "1", "0", "1", "0", "1", "0"}, {"0", "1", "1", "1", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {"0", "1", "0", "0", "0", "0", "0", "0"}, {"0", "0", "1", "0", "0", "0", "0", "0"}, {"0", \(-1\), \(-1\), "1", "0", "0", "0", "0"}, {"0", "0", "0", "0", "1", "0", "0", "0"}, {"0", \(-1\), "0", "0", \(-1\), "1", "0", "0"}, {"0", "0", \(-1\), "0", \(-1\), "0", "1", "0"}, {"0", "1", "1", \(-1\), "1", \(-1\), \(-1\), "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[59]="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {"0", "1", "0", "1", "0", "1", "0", "1"}, {"0", "0", "1", "1", "0", "0", "1", "1"}, {"0", "1", "1", "1", "0", "1", "1", "1"}, {"0", "0", "0", "0", "1", "1", "1", "1"}, {"0", "1", "0", "1", "1", "1", "1", "1"}, {"0", "0", "1", "1", "1", "1", "1", "1"}, {"0", "1", "1", "1", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", \(-1\), "1"}, {"0", "0", "0", "0", "0", \(-1\), "0", "1"}, {"0", "0", "0", "0", \(-1\), "1", "1", \(-1\)}, {"0", "0", "0", \(-1\), "0", "0", "0", "1"}, {"0", "0", \(-1\), "1", "0", "0", "1", \(-1\)}, {"0", \(-1\), "0", "1", "0", "1", "0", \(-1\)}, {"0", "1", "1", \(-1\), "1", \(-1\), \(-1\), "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[60]="] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Pignistic probabilities", "Subsection", InitializationCell->True], Cell[BoxData[{ \(supS[i_] := Transpose[ Table[Reverse[PadLeft[IntegerDigits[k, 2], i]], {k, 0, 2\^i - 1}]]\[IndentingNewLine]\), "\[IndentingNewLine]", \(cardAInv[i_] := \(cardAInv[i] = Join[{0}, Table[1\/DigitCount[k, 2, 1], {k, 1, 2\^i - 1}]]\)\[IndentingNewLine]\), "\n", \(betPMatrix[bba, i_] := supS[i] . DiagonalMatrix[cardAInv[i]]\)}], "Input", CellLabel->"In[16]:=", InitializationCell->True], Cell["\<\ Check. (note: need to do also the probability -> possibility transformation. See \ Smets (2000) theorem 7.1...)\ \>", "Text", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[{ \(supS[3] // MatrixForm\), "\n", \(cardAInv[3]\), "\n", \(betPMatrix[bba, 3] // MatrixForm\)}], "Input", CellLabel->"In[61]:="], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "1", "0", "1", "0", "1", "0", "1"}, {"0", "0", "1", "1", "0", "0", "1", "1"}, {"0", "0", "0", "0", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output", CellLabel->"Out[61]//MatrixForm="], Cell[BoxData[ \({0, 1, 1, 1\/2, 1, 1\/2, 1\/2, 1\/3}\)], "Output", CellLabel->"Out[62]="], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "1", "0", \(1\/2\), "0", \(1\/2\), "0", \(1\/3\)}, {"0", "0", "1", \(1\/2\), "0", "0", \(1\/2\), \(1\/3\)}, {"0", "0", "0", "0", "1", \(1\/2\), \(1\/2\), \(1\/3\)} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output", CellLabel->"Out[63]//MatrixForm="] }, Open ]], Cell["\<\ TODO also the probability -> possibility transformation. See Smets \ (2000) theorem 7.1...)\ \>", "Text", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell["Direct access to belief functions", "Subsection"], Cell[BoxData[{ \(Clear[vec]\), "\n", \(vec[bba, m_, i_] := Table[m[k], {k, 0, 2\^i - 1}]\), "\[IndentingNewLine]", \(vec[x_, m_, i_] := TransformMatrix[x, bba, i] . vec[bba, m, i]\)}], "Input", CellLabel->"In[22]:=", InitializationCell->True], Cell[BoxData[{ \(Belief[m_, i_] := vec[bel, m, i] // Rest\), "\n", \(Plausibility[m_, i_] := vec[pl, m, i] // Rest\), "\n", \(Commonality[m_, i_] := vec[q, m, i] // Rest\), "\n", \(Implicability[m_, i_] := vec[b, m, i] // Rest\), "\n", \(PignisticProbability[m_, \ i_] := betPMatrix[bba, i] . vec[bba, m, i]\)}], "Input", CellLabel->"In[193]:=", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell["Generalization, specialization and conditioning", "Subsection", InitializationCell->True], Cell[BoxData[{ \(\(\(SpecializationMatrix[m_, i_] := TransformMatrix[bba, q, i] . DiagonalMatrix[vec[q, m, i]] . TransformMatrix[q, bba, i]\)\(\n\) \)\), "\[IndentingNewLine]", \(GeneralizationMatrix[m_, i_] := TransformMatrix[bba, b, i] . DiagonalMatrix[vec[b, m, i]] . TransformMatrix[b, bba, i]\)}], "Input", CellLabel->"In[25]:=", InitializationCell->True], Cell[BoxData[{ \(\(\(\(characteristicBba[event_]\)[x_] := KroneckerDelta[event, x]\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(ConditionatingMatrix[k_, i_] := SpecializationMatrix[characteristicBba[k], i]\)}], "Input", CellLabel->"In[27]:=", InitializationCell->True], Cell["Examples from Smets (2001) tables 10 and 11:", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(\(vec[bba, mSmets, 3]\ = {0.10, 0.05, 0.20, 0.15, 0.27, 0.08, 0.13, 0.02};\)\), "\[IndentingNewLine]", \(\(SpecializationMatrix[mSmets, 3] // Chop\) // MatrixForm\), "\[IndentingNewLine]", \(\(GeneralizationMatrix[mSmets, 3] // Chop\) // MatrixForm\)}], "Input", CellLabel->"In[76]:="], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1.`", "0.7`", "0.5`", "0.36999999999999994`", "0.5`", "0.29999999999999993`", "0.15`", "0.09999999999999994`"}, {"0", "0.30000000000000004`", "0", "0.13000000000000006`", "0", "0.20000000000000004`", "0", "0.05000000000000006`"}, {"0", "0", "0.5`", "0.33`", "0", "0", "0.35`", "0.2`"}, {"0", "0", "0", "0.16999999999999998`", "0", "0", "0", "0.15`"}, {"0", "0", "0", "0", "0.5`", "0.4`", "0.35`", "0.27`"}, {"0", "0", "0", "0", "0", "0.1`", "0", "0.08`"}, {"0", "0", "0", "0", "0", "0", "0.15`", "0.13`"}, {"0", "0", "0", "0", "0", "0", "0", "0.02`"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output", CellLabel->"Out[77]//MatrixForm="], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0.1`", "0", "0", "0", "0", "0", "0", "0"}, {"0.05000000000000002`", "0.15000000000000002`", "0", "0", "0", "0", "0", "0"}, {"0.20000000000000004`", "0", "0.30000000000000004`", "0", "0", "0", "0", "0"}, {"0.1499999999999999`", "0.35`", "0.19999999999999996`", "0.5`", "0", "0", "0", "0"}, {"0.27`", "0", "0", "0", "0.37`", "0", "0", "0"}, {"0.07999999999999996`", "0.35`", "0", "0", "0.13`", "0.5`", "0", "0"}, {"0.13`", "0", "0.4`", "0", "0.33000000000000007`", "0", "0.7000000000000001`", "0"}, {"0.020000000000000018`", "0.15000000000000002`", "0.09999999999999998`", "0.5`", "0.16999999999999993`", "0.5`", "0.29999999999999993`", "1.`"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output", CellLabel->"Out[78]//MatrixForm="] }, Open ]], Cell["\<\ Example, conditioning wrt to {a,b} when \[CapitalOmega]={a,b,c} see \ Smets (2001) p. 15.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(ConditionatingMatrix[3, 3] // MatrixForm\)], "Input", CellLabel->"In[67]:="], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "1", "0", "0", "0"}, {"0", "1", "0", "0", "0", "1", "0", "0"}, {"0", "0", "1", "0", "0", "0", "1", "0"}, {"0", "0", "0", "1", "0", "0", "0", "1"}, {"0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output", CellLabel->"Out[67]//MatrixForm="] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Non-interactive basic combination", "Subsection", InitializationCell->True], Cell[BoxData[{ \(NonInteractiveConjunction[m1_, \ m2_, i_] := SpecializationMatrix[m1, i] . vec[bba, m2, i]\), "\[IndentingNewLine]", \(NonInteractiveDisjunction[m1_, \ m2_, i_] := GeneralizationMatrix[m1, i] . vec[bba, m2, i]\)}], "Input", CellLabel->"In[144]:=", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell["Alpha-junctions", "Subsection", InitializationCell->True], Cell[BoxData[{ \(\(\(AlphaJunction[m1_, \ m2_, i_, \[Alpha]_, \ type_\ ] := AlphaJunctionMatrix[m1, i, \[Alpha], \ type] . vec[bba, m2, i]\)\(\n\) \)\), "\[IndentingNewLine]", \(AlphaJunctionMatrix[m_, i_, \[Alpha]_, \ type_] := Sum[m[k]\ KMatrix[k, i, \[Alpha], type], \ {k, 0, 2\^i - 1}]\)}], "Input", CellLabel->"In[33]:=", InitializationCell->True], Cell[BoxData[{ \(bitUnion[a_, b_] := BitOr[a, b]\), "\[IndentingNewLine]", \(bitIntersection[a_, b_] := BitAnd[a, b]\), "\[IndentingNewLine]", \(bitSubstraction[a_, b_] := \(\(b - a\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(bitInQ[x_, a_] := BitAnd[x, a] \[NotEqual] 0\), "\[IndentingNewLine]", \(bitCardinal[x_] := Plus @@ \(RealDigits[x, 2]\)\[LeftDoubleBracket]1\[RightDoubleBracket]\ \ \ \ (*\ Also\ used\ to\ define\ unspecificity\ *) \), "\[IndentingNewLine]", \(singletonQ[x_] := bitCardinal[x] \[Equal] 1\)}], "Input", CellLabel->"In[35]:=", InitializationCell->True], Cell[BoxData[{ \(\(\(KMatrix[compl[x_], i_, \[Alpha]_, \ And] /; \ singletonQ[x] := \[IndentingNewLine]Table[ Which[\[IndentingNewLine]\((b \[Equal] bitUnion[a, x])\)\ && \ \((\(! \ bitInQ[x, a]\))\), 1, \[IndentingNewLine]\((b \[Equal] a)\)\ && \ \((\(! \ bitInQ[x, b]\))\), \[Alpha], \[IndentingNewLine]\((a \[Equal] bitUnion[b, x])\)\ && \ \((\(! \ bitInQ[x, b]\))\), 1 - \[Alpha], \[IndentingNewLine]True, \ 0], \[IndentingNewLine]{a, 0, 2\^i - 1}, {b, 0, 2\^i - 1}]\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(KMatrix[j_, i_, \[Alpha]_, And] := \[IndentingNewLine]\ IdentityMatrix[2\^i]\ . Dot @@ \((\(KMatrix[compl[#], i, \[Alpha], And] &\) /@ Select[Table[ 2\^k, {k, 0, i - 1}], \(! bitInQ[#, j]\) &])\)\)}], "Input",\ CellLabel->"In[41]:=", InitializationCell->True], Cell[BoxData[{ \(\(\(KMatrix[x_, i_, \[Alpha]_, Or] /; \ singletonQ[x] := \[IndentingNewLine]Table[ Which[\[IndentingNewLine]\((a \[Equal] bitUnion[b, x])\)\ && \ \((\(! \ bitInQ[x, b]\))\), 1, \[IndentingNewLine]\((b \[Equal] a)\)\ && \ \((bitInQ[x, b])\), \[Alpha], \[IndentingNewLine]\((b \[Equal] bitUnion[a, x])\)\ && \ \((\(! \ bitInQ[x, a]\))\), 1 - \[Alpha], \[IndentingNewLine]True, \ 0], \[IndentingNewLine]{a, 0, 2\^i - 1}, {b, 0, 2\^i - 1}]\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(KMatrix[j_, i_, \[Alpha]_, Or] := \[IndentingNewLine]\ IdentityMatrix[2\^i]\ . Dot @@ \((\(KMatrix[#, i, \[Alpha], Or] &\) /@ Select[Table[2\^k, {k, 0, i - 1}], bitInQ[#, j] &])\)\)}], "Input", CellLabel->"In[43]:=", InitializationCell->True], Cell["Example 12.1 from Smets p. 21", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Table[ MatrixForm[ KMatrix[k, 2, \[Alpha], And] /. {1 - \[Alpha] \[Rule] \[Alpha]\&_}], {k, 0, 3}]\)], "Input", CellLabel->"In[68]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(\[Alpha]\^2\), "\[Alpha]", "\[Alpha]", "1"}, {\(\[Alpha]\ \[Alpha]\&_\), "0", \(\[Alpha]\&_\), "0"}, {\(\[Alpha]\ \[Alpha]\&_\), \(\[Alpha]\&_\), "0", "0"}, {\(\[Alpha]\&_\^2\), "0", "0", "0"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[Alpha]", "0", "1", "0"}, {"0", "\[Alpha]", "0", "1"}, {\(\[Alpha]\&_\), "0", "0", "0"}, {"0", \(\[Alpha]\&_\), "0", "0"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[Alpha]", "1", "0", "0"}, {\(\[Alpha]\&_\), "0", "0", "0"}, {"0", "0", "\[Alpha]", "1"}, {"0", "0", \(\[Alpha]\&_\), "0"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[68]="] }, Open ]], Cell["\<\ Check that \[Alpha]=1 corresponds to specialization\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(MatrixForm[AlphaJunctionMatrix[m, 2, 1, And]] \[Equal] MatrixForm[SpecializationMatrix[m, 2]]\)], "Input", CellLabel->"In[69]:="], Cell[BoxData[ \(True\)], "Output", CellLabel->"Out[69]="] }, Open ]], Cell["Example 12.2 from Smets", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Table[ MatrixForm[ KMatrix[k, 2, \[Alpha], Or] /. {1 - \[Alpha] \[Rule] \[Alpha]\&_}], {k, 0, 3}]\)], "Input",\ CellLabel->"In[70]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", \(\[Alpha]\&_\), "0", "0"}, {"1", "\[Alpha]", "0", "0"}, {"0", "0", "0", \(\[Alpha]\&_\)}, {"0", "0", "1", "\[Alpha]"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0", \(\[Alpha]\&_\), "0"}, {"0", "0", "0", \(\[Alpha]\&_\)}, {"1", "0", "\[Alpha]", "0"}, {"0", "1", "0", "\[Alpha]"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]], ",", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0", "0", \(\[Alpha]\&_\^2\)}, {"0", "0", \(\[Alpha]\&_\), \(\[Alpha]\ \[Alpha]\&_\)}, {"0", \(\[Alpha]\&_\), "0", \(\[Alpha]\ \[Alpha]\&_\)}, {"1", "\[Alpha]", "\[Alpha]", \(\[Alpha]\^2\)} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]}], "}"}]], "Output", CellLabel->"Out[70]="] }, Open ]], Cell["\<\ Check that \[Alpha]=1 corresponds to generalization\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(MatrixForm[AlphaJunctionMatrix[m, 3, 1, Or]] \[Equal] MatrixForm[GeneralizationMatrix[m, 3]]\)], "Input", CellLabel->"In[71]:="], Cell[BoxData[ \(True\)], "Output", CellLabel->"Out[71]="] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Uncertainty criteria", "Subsection", InitializationCell->True], Cell[BoxData[ \(Unspecificity[m_, i_] := vec[bba, m, i] . Table[\ bitCardinal[k], {k, 0, 2\^i - 1}]\)], "Input", CellLabel->"In[79]:=", InitializationCell->True], Cell["\<\ This unspecificity generalizes cardinality. As discussed in Rocha \ (1997) Relative uncertainty and evidence sets, it could be divided by Lengh[\ \[CapitalOmega]] to give an index of relative unspecificity. Absolut \ unspecificity uses Log[Length[subset[k]]] instead.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(Unspecificity[m, 3]\), "\[IndentingNewLine]", \(Unspecificity[mSmets, 3] \[Equal] 1.3\)}], "Input", CellLabel->"In[82]:="], Cell[BoxData[ \(m[1] + m[2] + 2\ m[3] + m[4] + 2\ m[5] + 2\ m[6] + 3\ m[7]\)], "Output",\ CellLabel->"Out[82]="], Cell[BoxData[ \(True\)], "Output", CellLabel->"Out[83]="] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Cautious combination using maximum unspecificity", "Subsection"], Cell[BoxData[{ \(\(\(CautiousConjunction[m1_, \ m2_, i_] := vec[bba, m, i] /. \(cautiousConjunctionProgram[m1, m2, i]\)\[LeftDoubleBracket]2\[RightDoubleBracket]\)\(\ \[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(\(cautiousConjunctionProgram[m1_, \ m2_, i_] := \[IndentingNewLine]\(optimum = ConstrainedMax[\[IndentingNewLine]Unspecificity[m, i], \[IndentingNewLine]constraintList[m, m1, m2, mm1, mm2, i], \[IndentingNewLine]Join[vec[bba, m, i], vec[bba, mm1, i], vec[bba, mm2, i]]\[IndentingNewLine]]\);\)\(\[IndentingNewLine]\) \)\), "\n", \(constraintList[m_, m1_, m2_, mm1_, mm2_, i_] := Flatten[{Table[ mm1[k] \[GreaterEqual] 0, \ {k, 0, 2\^i - 1}], \[IndentingNewLine]Table[ mm2[k] \[GreaterEqual] 0, \ {k, 0, 2\^i - 1}], \[IndentingNewLine]Sum[ mm1[k], \ {k, 0, 2\^i - 1}]\ \[Equal] \ 1\ , \[IndentingNewLine]Sum[ mm2[k], \ {k, 0, 2\^i - 1}]\ \[Equal] \ 1\ , Transpose\ [{vec[bba, m, i], nonInteractiveConjunction[m1, \ mm1, i]}] /. List[a_, b_] \[Rule] Equal[a, b], \[IndentingNewLine]Transpose\ [{vec[bba, m, i], nonInteractiveConjunction[m2, \ mm2, i]}] /. List[a_, b_] \[Rule] Equal[a, b]\[IndentingNewLine]}]\)}], "Input",\ CellLabel->"In[134]:=", InitializationCell->True], Cell["Check that cautious combination is idempotent", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(Do[mSmets[i] = \(vec[bba, mSmets, 3]\)\[LeftDoubleBracket] i + 1\[RightDoubleBracket], {i, 0, 7}]\), "\n", \(\(\(vec[bba, mSmets, 3]\)\(\[IndentingNewLine]\) \)\), "\n", \(CautiousConjunction[mSmets, mSmets, 3]\)}], "Input", CellLabel->"In[137]:="], Cell[BoxData[ \({0.1`, 0.05`, 0.2`, 0.15`, 0.27`, 0.08`, 0.13`, 0.02`}\)], "Output", CellLabel->"Out[138]="], Cell[BoxData[ \({0.10000000000000021`, 0.05000000000000005`, 0.1999999999999999`, 0.14999999999999997`, 0.27`, 0.0799999999999999`, 0.12999999999999995`, 0.01999999999999999`}\)], "Output", CellLabel->"Out[139]="] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "Hyper Cautious combination w", "hen ", Cell[BoxData[ \(TraditionalForm\`m\)]], " is a possibility function." }], "Subsection", InitializationCell->True], Cell[BoxData[ \(hyperCautiousConjunction[m1_, \ m2_, i_] := \[IndentingNewLine]TransformMatrix[bba, q, i] . \((Transpose[{vec[q, m1, i], vec[q, m2, i]}] /. List[a_, b_] \[Rule] Min[a, b])\)\)], "Input", CellLabel->"In[90]:=", InitializationCell->True], Cell["\<\ Example: Smets (2000) QEPT seen as Hyper Cautious TBM tables 1-4 (there are two errors in the paper)\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(\(mO[_] = 0;\)\), "\[IndentingNewLine]", \(\(mO[2] = 0.1;\)\), "\[IndentingNewLine]", \(\(mO[3] = 0.6;\)\), "\[IndentingNewLine]", \(\(\(mO[7] = 0.3;\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(mT[_] = 0;\)\), "\[IndentingNewLine]", \(\(mT[4] = 0.2;\)\), "\[IndentingNewLine]", \(\(mT[5] = 0.2;\)\), "\[IndentingNewLine]", \(\(\(mT[7] = 0.6;\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(\(hyperCautiousConjunction[mO, mT, 3]\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(TransformMatrix[q, bba, 3] . %\)}], "Input", CellLabel->"In[94]:="], Cell[BoxData[ \({0.19999999999999996`, 0.20000000000000007`, 0.`, 0.3`, 0.`, 0.`, 0.`, 0.3`}\)], "Output", CellLabel->"Out[102]="], Cell[BoxData[ \({1.`, 0.8`, 0.6`, 0.6`, 0.3`, 0.3`, 0.3`, 0.3`}\)], "Output", CellLabel->"Out[103]="] }, Open ]], Cell[BoxData[ \(End[]\)], "Input", CellLabel->"In[7]:= ", InitializationCell->True, CellTags->"BeginPackage"], Cell[BoxData[ \(EndPackage[]\)], "Input", CellLabel->"In[7]:= ", InitializationCell->True, CellTags->"BeginPackage"] }, Open ]] }, Open ]] }, FrontEndVersion->"4.2 for X", ScreenRectangle->{{0, 1400}, {0, 1050}}, AutoGeneratedPackage->Automatic, WindowSize->{1004, 938}, WindowMargins->{{Automatic, 108}, {Automatic, 0}}, PrintingPageRange->{Automatic, Automatic}, PrintingOptions->{"PaperSize"->{612, 792}, "PaperOrientation"->"Portrait", "PostScriptOutputFile":>FrontEnd`FileName[{$RootDirectory, "home", \ "haduong"}, "ExpertElicitationBounding.nb.ps", CharacterEncoding -> \ "iso8859-1"], "Magnification"->1}, StyleDefinitions -> "ArticleModern.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{ "BeginPackage"->{ Cell[9564, 231, 136, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"], Cell[40038, 1044, 119, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"], Cell[40160, 1050, 126, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"]} } *) (*CellTagsIndex CellTagsIndex->{ {"BeginPackage", 41263, 1082} } *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 34, 0, 89, "Title"], Cell[1813, 55, 65, 3, 72, "Subtitle"], Cell[1881, 60, 43, 0, 42, "Author"], Cell[1927, 62, 40, 0, 22, "Address"], Cell[1970, 64, 58, 1, 44, "Input"], Cell[2031, 67, 202, 5, 88, "Abstract"], Cell[CellGroupData[{ Cell[2258, 76, 29, 0, 44, "Subsubsection"], Cell[2290, 78, 149, 5, 106, "Abstract"] }, Open ]], Cell[CellGroupData[{ Cell[2476, 88, 66, 1, 56, "Subsection", InitializationCell->True], Cell[2545, 91, 96, 2, 44, "Input", InitializationCell->True], Cell[2644, 95, 2006, 30, 481, "Input", InitializationCell->True], Cell[4653, 127, 627, 13, 120, "Input", InitializationCell->True], Cell[5283, 142, 763, 14, 215, "Input", InitializationCell->True], Cell[6049, 158, 274, 5, 82, "Input", InitializationCell->True], Cell[6326, 165, 859, 15, 234, "Input", InitializationCell->True], Cell[7188, 182, 374, 6, 82, "Input", InitializationCell->True], Cell[7565, 190, 374, 6, 82, "Input", InitializationCell->True], Cell[7942, 198, 906, 15, 196, "Input", InitializationCell->True], Cell[8851, 215, 381, 7, 90, "Input", InitializationCell->True], Cell[9235, 224, 326, 5, 90, "Input", InitializationCell->True], Cell[9564, 231, 136, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"] }, Open ]], Cell[CellGroupData[{ Cell[9737, 240, 62, 1, 54, "Subsection", InitializationCell->True], Cell[9802, 243, 2437, 46, 576, "Input", InitializationCell->True], Cell[12242, 291, 149, 4, 44, "Text"], Cell[CellGroupData[{ Cell[12416, 299, 693, 12, 122, "Input"], Cell[13112, 313, 1414, 29, 168, "Output"], Cell[14529, 344, 1414, 29, 168, "Output"], Cell[15946, 375, 1453, 29, 168, "Output"], Cell[17402, 406, 1402, 29, 168, "Output"], Cell[18807, 437, 1411, 29, 168, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[20267, 472, 73, 1, 54, "Subsection", InitializationCell->True], Cell[20343, 475, 488, 12, 132, "Input", InitializationCell->True], Cell[20834, 489, 163, 5, 44, "Text", InitializationCell->True], Cell[CellGroupData[{ Cell[21022, 498, 158, 4, 74, "Input"], Cell[21183, 504, 378, 9, 92, "Output"], Cell[21564, 515, 95, 2, 59, "Output"], Cell[21662, 519, 423, 9, 112, "Output"] }, Open ]], Cell[22100, 531, 143, 4, 26, "Text", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[22280, 540, 55, 0, 54, "Subsection"], Cell[22338, 542, 274, 7, 76, "Input", InitializationCell->True], Cell[22615, 551, 406, 8, 106, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[23058, 564, 97, 1, 54, "Subsection", InitializationCell->True], Cell[23158, 567, 409, 9, 106, "Input", InitializationCell->True], Cell[23570, 578, 310, 7, 74, "Input", InitializationCell->True], Cell[23883, 587, 60, 0, 26, "Text"], Cell[CellGroupData[{ Cell[23968, 591, 337, 6, 74, "Input"], Cell[24308, 599, 896, 16, 182, "Output"], Cell[25207, 617, 1062, 21, 182, "Output"] }, Open ]], Cell[26284, 641, 113, 3, 26, "Text"], Cell[CellGroupData[{ Cell[26422, 648, 98, 2, 42, "Input"], Cell[26523, 652, 648, 14, 182, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[27220, 672, 83, 1, 54, "Subsection", InitializationCell->True], Cell[27306, 675, 326, 7, 58, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[27669, 687, 65, 1, 54, "Subsection", InitializationCell->True], Cell[27737, 690, 394, 8, 76, "Input", InitializationCell->True], Cell[28134, 700, 656, 12, 138, "Input", InitializationCell->True], Cell[28793, 714, 958, 18, 208, "Input", InitializationCell->True], Cell[29754, 734, 921, 17, 190, "Input", InitializationCell->True], Cell[30678, 753, 45, 0, 26, "Text"], Cell[CellGroupData[{ Cell[30748, 757, 192, 6, 42, "Input"], Cell[30943, 765, 1602, 39, 102, "Output"] }, Open ]], Cell[32560, 807, 75, 2, 26, "Text"], Cell[CellGroupData[{ Cell[32660, 813, 158, 3, 42, "Input"], Cell[32821, 818, 63, 2, 42, "Output"] }, Open ]], Cell[32899, 823, 39, 0, 26, "Text"], Cell[CellGroupData[{ Cell[32963, 827, 184, 6, 42, "Input"], Cell[33150, 835, 1602, 39, 102, "Output"] }, Open ]], Cell[34767, 877, 76, 2, 26, "Text"], Cell[CellGroupData[{ Cell[34868, 883, 157, 3, 42, "Input"], Cell[35028, 888, 63, 2, 42, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[35140, 896, 70, 1, 54, "Subsection", InitializationCell->True], Cell[35213, 899, 176, 4, 44, "Input", InitializationCell->True], Cell[35392, 905, 291, 5, 44, "Text"], Cell[CellGroupData[{ Cell[35708, 914, 150, 3, 58, "Input"], Cell[35861, 919, 119, 3, 42, "Output"], Cell[35983, 924, 63, 2, 42, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[36095, 932, 70, 0, 54, "Subsection"], Cell[36168, 934, 1526, 32, 322, "Input", InitializationCell->True], Cell[37697, 968, 61, 0, 26, "Text"], Cell[CellGroupData[{ Cell[37783, 972, 295, 6, 90, "Input"], Cell[38081, 980, 114, 2, 42, "Output"], Cell[38198, 984, 233, 4, 42, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[38480, 994, 185, 7, 54, "Subsection", InitializationCell->True], Cell[38668, 1003, 292, 6, 58, "Input", InitializationCell->True], Cell[38963, 1011, 124, 3, 44, "Text"], Cell[CellGroupData[{ Cell[39112, 1018, 655, 14, 234, "Input"], Cell[39770, 1034, 143, 3, 42, "Output"], Cell[39916, 1039, 107, 2, 42, "Output"] }, Open ]], Cell[40038, 1044, 119, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"], Cell[40160, 1050, 126, 4, 42, "Input", InitializationCell->True, CellTags->"BeginPackage"] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)