# Aligned Induction

## Fud decomposition inducers

Haskell commentary on the implementation of Tractable and Practicable Inducers/Haskell Implementation/Fud decomposition inducers

### Sections

Practicable highest-layer summed shuffle content alignment valency-density fud decomposition inducer

Highest-layer fud decomper

Highest-layer excluded-self maximum-roll fud decomper

Highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper

Practicable level summed shuffle content alignment valency-density fud decomposition inducer

Level highest-layer excluded-self maximum-roll fud decomper

Level highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper

### Practicable highest-layer summed shuffle content alignment valency-density fud decomposition inducer

Define the limited-models infinite-layer substrate fud decompositions tree searcher $Z_{P,A,\mathrm{D,F}} = \mathrm{searchTreer}(\mathcal{D}_{\mathrm{F},\infty,U,V} \cap \mathrm{trees}(\mathcal{S} \times \mathcal{F}_{\mathrm{q}}),P_{P,A,\mathrm{D,F}},R_{P,A,\mathrm{D,F}})$ where the neighbourhood function returns a singleton $\begin{eqnarray} &&P_{P,A,\mathrm{D,F}}(D) = \{E : \\ &&\hspace{2em}(\cdot,S,G,L) \in \mathrm{maxd}(\mathrm{order}(D_{\mathbf{Q} \times \mathrm{S} \times \mathcal{X}^2},\{(\mathrm{size}(B),S,G,L) : \\ &&\hspace{4em}(L,Y) \in \mathrm{places}(D),\\ &&\hspace{4em}R_L = \bigcup \mathrm{dom}(\mathrm{set}(L)),~H_L = \bigcup \mathrm{ran}(\mathrm{set}(L)),\\ &&\hspace{4em}(\cdot,F) = L_{|L|},~W=\mathrm{der}(F),\\ &&\hspace{4em}S \in W^{\mathrm{CS}} \setminus \mathrm{dom}(\mathrm{dom}(Y)),\\ &&\hspace{4em}B = \mathrm{apply}(V_A,V_A,\mathrm{his}(H_L) \cup \{\{R_L \cup S\}^{\mathrm{U}}\},A),~\mathrm{size}(B)>0,\\ &&\hspace{4em}F_{\mathrm{L}} \in \mathrm{leaves}(\mathrm{tree}(Z_{P,B,B_{R(B)},\mathrm{L}})),\\ &&\hspace{4em}(K,a) \in \mathrm{max}(\mathrm{elements}(Z_{P,B,B_{R(B)},F_{\mathrm{L}},\mathrm{D}})),~a>0,\\ &&\hspace{4em}G = \mathrm{depends}(F_{\mathrm{L}},K)\})),\\ &&\hspace{2em}M=L \cup \{(|L|+1,(S,G))\},\\ &&\hspace{2em}E = \mathrm{tree}(\mathrm{paths}(D) \setminus \{L\} \cup \{M\})\} \end{eqnarray}$ where $\begin{eqnarray} &&R_{P,A,\mathrm{D,F}} = \{\{((\emptyset,G),\emptyset)\} : \\ &&\hspace{2em}G \in \mathrm{maxd}(\mathrm{order}(D_{\mathrm{F}},\{G : \\ &&\hspace{4em}F_{\mathrm{L}} \in \mathrm{leaves}(\mathrm{tree}(Z_{P,A,A_{R(A)},\mathrm{L}})),\\ &&\hspace{4em}(K,a) \in \mathrm{max}(\mathrm{elements}(Z_{P,A,A_{R(A)},F_{\mathrm{L}},\mathrm{D}})),~a>0,\\ &&\hspace{4em}G = \mathrm{depends}(F_{\mathrm{L}},K)\}))\} \end{eqnarray}$ The computation of the slice $B$ is a tractable fud application equivalent to the application of the fud’s transforms’ histograms, $\mathrm{his}(H_L)$, multiplied by the slice derived state, $\{R_L \cup S\}^{\mathrm{U}}$, followed by reduction to the substrate, $V_A$, $\mathrm{apply}(V_A,V_A,\mathrm{his}(H_L) \cup \{\{R_L \cup S\}^{\mathrm{U}}\},A) = A * \prod \mathrm{his}(H_L) * \{R_L \cup S\}^{\mathrm{U}}~\%~V_A$

The practicable summed shuffle content alignment valency-density fud decomposition inducer may then be implemented $\begin{eqnarray} &&I_{z,\mathrm{Scsd,D,F,\infty,q},P}^{‘ * }(A) = \\ &&\hspace{2em}\mathrm{if}(Q \neq \emptyset, \{(D,I_{\mathrm{Scsd}}^{ * }((A,D)))\},\{(D_{\emptyset},0)\}) :\\ &&\hspace{5em}Q = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,\mathrm{D,F}})),~\{D\} = Q \end{eqnarray}$

The highest-layer limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F,d}}$, is defined exactly the same as the limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F}}$, except that it depends instead on the highest-layer limited-layer limited-underlying limited-breadth fud tree searcher, $Z_{P,B,B_R,\mathrm{L,d}}$, and the highest-layer limited-derived derived variables set list maximiser, $Z_{P,B,B_R,F_{\mathrm{L}},\mathrm{D,d}}$.

The practicable highest-layer summed shuffle content alignment valency-density fud decomposition inducer is implemented (Text) $\begin{eqnarray} &&I_{z,\mathrm{Scsd,D,F,\infty,q},P,\mathrm{d}}^{‘ * }(A) = \\ &&\hspace{2em}\mathrm{if}(Q \neq \emptyset, \{(D,I_{\mathrm{Scsd}}^{ * }((A,D)))\},\{(D_{\emptyset},0)\}) :\\ &&\hspace{5em}Q = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,\mathrm{D,F,d}})),~\{D\} = Q \end{eqnarray}$

The fud decomposition inducer is defined in module AlignmentPracticable. The implementation replaces partition variables by cardinal variables and so has an additional argument of a list of variables, [Variable],

parametersSystemsSamplesListVariablesInducerDecompFudHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Histogram -> [Variable] ->
Maybe (DecompFud,(System,[Variable]))


as

parametersSystemsSamplesListVariablesInducerDecompFudHighest
wmax lmax xmax omax bmax mmax umax pmax mult seed uu aa ll
...
| ... = Just $dec emptyTree uu ll seed | otherwise = Nothing where dec zz uu ll s | zz == emptyTree && ffr == fudEmpty = (decompFudEmpty, (uu, ll)) | zz == emptyTree = dec zzr uur llr (s + mult) | mm == [] = (zzdf (zztrim zz), (uu, ll)) | otherwise = dec zzc uuc llc (s + mult) where aarr = ashuffle aa s mult ((ffr,_),(uur,llr)) = iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll zzr = tsgl (stateEmpty,ffr) mm = [(size bb,nn,ss,bb,bbrr) | (nn,yy) <- qqll (treesPlaces zz), let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty, ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)), let bb = apply (vars aa) (vars aa) (hhc union rrc add unit ss) aa, let bbrr = ashuffle bb s mult, size bb > 0] (_,nn,ss,bb,bbrr) = last$ sort mm
((ffc,_),(uuc,llc)) = iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu bb bbrr ll
zzc = pathsTree $treesPaths zz add (nn ++ [(ss,ffc)]) iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll = fromJust$
wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll
zztrim = pathsTree . Set.map lltrim . treesPaths
lltrim ll = let (_,ff) = last ll in if ff == fudEmpty then init ll else ll
...
hshuffle hh r = fromJust $historiesShuffle hh (fromInteger r) ashuffle aa seed mult = let hh = aahh aa in resize (size aa)$ foldl1 aadd [hhaa $hshuffle hh (seed + r) | r <- [0..mult-1]] ...  There is also an implementation that does not shuffle the slice, but calculates the independent,$(A * C)^{\mathrm{X}}$, parametersSystemsSamplesListVariablesInducerDecompFudHighestNoShuffle :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Histogram -> [Variable] -> Maybe (DecompFud,(System,[Variable]))  as parametersSystemsSamplesListVariablesInducerDecompFudHighestNoShuffle wmax lmax xmax omax bmax mmax umax pmax uu aa ll | wmax < 0 || lmax < 0 || xmax < 0 || omax < 0 || bmax < 0 || mmax < 1 || umax < 0 || pmax < 0 = Nothing | vars aa subset uvars uu = Just$ dec emptyTree uu ll
| otherwise = Nothing
where
dec zz uu ll
| zz == emptyTree && ffr == fudEmpty = (decompFudEmpty, (uu, ll))
| zz == emptyTree = dec zzr uur llr
| mm == [] = (zzdf (zztrim zz), (uu, ll))
| otherwise = dec zzc uuc llc
where
((ffr,_),(uur,llr)) = iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa (ind aa) ll
zzr = tsgl (stateEmpty,ffr)
mm = [(size bb,nn,ss,bb) | (nn,yy) <- qqll (treesPlaces zz),
let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty,
ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)),
let bb = apply (vars aa) (vars aa) (hhc union rrc add unit ss) aa,
size bb > 0]
(_,nn,ss,bb) = last $sort mm ((ffc,_),(uuc,llc)) = iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu bb (ind bb) ll zzc = pathsTree$ treesPaths zz add (nn ++ [(ss,ffc)])
iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll = fromJust $parametersSystemsSamplesShufflesListVariablesInducerFudHighest wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll zztrim = pathsTree . Set.map lltrim . treesPaths lltrim ll = let (_,ff) = last ll in if ff == fudEmpty then init ll else ll ...  Note that these implementations do not implement the set-theoretic definition in Fud Decomposition Inducers exactly. Instead of recalculating all possible leaf fuds at each step of the decomposition, each slice has its fud computed only once. Independent slices are stubbed with an empty fud in the decomposition tree. These stub fuds are trimmed from the decomposition at the termination of the function when the decomposition is ideal. For example, let iilldfshighind aa wmax lmax xmax omax bmax mmax umax pmax = fst$ fromJust $parametersSystemsSamplesListVariablesInducerDecompFudHighestNoShuffle wmax lmax xmax omax bmax mmax umax pmax (sys aa) aa [VarInt i | i <-[101..]] let iilldfshigh aa wmax lmax xmax omax bmax mmax umax pmax mult seed = fst$ fromJust $parametersSystemsSamplesListVariablesInducerDecompFudHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) aa [VarInt i | i <-[101..]]   let aa = resize 1000$ regdiag 2 2 mul (cdrefr [3,4] (regpivot 3 2))

rp $iilldfshighind aa (2^2) 3 (3^2) 2 2 2 (3^2) 1 "{(({},{({({(1,1),(101,1)},1 % 1),({(1,2),(101,2)},1 % 1)},{101}),({({(2,1),(102,1)},1 % 1),({(2,2),(102,2)},1 % 1)},{102})}),{(({(101,1),(102,1)},{({({(3,1),(137,1)},1 % 1),({(3,2),(137,2)},1 % 1),({(3,3),(137,2)},1 % 1)},{137}),({({(4,1),(138,1)},1 % 1),({(4,2),(138,2)},1 % 1),({(4,3),(138,2)},1 % 1)},{138})}),{}),(({(101,2),(102,2)},{({({(3,1),(117,1)},1 % 1),({(3,2),(117,2)},1 % 1),({(3,3),(117,2)},1 % 1)},{117}),({({(4,1),(118,1)},1 % 1),({(4,2),(118,2)},1 % 1),({(4,3),(118,2)},1 % 1)},{118})}),{})})}" rp$ iilldfshigh aa (2^2) 3 (3^2) 2 2 2 (3^2) 1 1 1
"{(({},{({({(1,1),(101,1)},1 % 1),({(1,2),(101,2)},1 % 1)},{101}),({({(2,1),(102,1)},1 % 1),({(2,2),(102,2)},1 % 1)},{102})}),{(({(101,1),(102,1)},{({({(3,1),(137,1)},1 % 1),({(3,2),(137,2)},1 % 1),({(3,3),(137,2)},1 % 1)},{137}),({({(4,1),(138,1)},1 % 1),({(4,2),(138,2)},1 % 1),({(4,3),(138,2)},1 % 1)},{138})}),{}),(({(101,2),(102,2)},{({({(3,1),(118,1)},1 % 1),({(3,2),(118,2)},1 % 1),({(3,3),(118,2)},1 % 1)},{118}),({({(4,1),(117,1)},1 % 1),({(4,2),(117,2)},1 % 1),({(4,3),(117,2)},1 % 1)},{117})}),{})})}"

rp $iilldfshigh aa (2^2) 3 (3^2) 2 2 2 (3^2) 1 1 2 "{(({},{({({(1,1),(101,1)},1 % 1),({(1,2),(101,2)},1 % 1)},{101}),({({(2,1),(102,1)},1 % 1),({(2,2),(102,2)},1 % 1)},{102})}),{(({(101,1),(102,1)},{({({(3,1),(138,1)},1 % 1),({(3,2),(138,2)},1 % 1),({(3,3),(138,2)},1 % 1)},{138}),({({(4,1),(137,1)},1 % 1),({(4,2),(137,2)},1 % 1),({(4,3),(137,2)},1 % 1)},{137})}),{}),(({(101,2),(102,2)},{({({(3,1),(117,1)},1 % 1),({(3,2),(117,2)},1 % 1),({(3,3),(117,2)},1 % 1)},{117}),({({(4,1),(118,1)},1 % 1),({(4,2),(118,2)},1 % 1),({(4,3),(118,2)},1 % 1)},{118})}),{})})}"  In the weather forecast example (summarised in Functional definition sets), let zzllfuds aa aarr lmax xmax omax bmax mmax umax pmax = last$ fst $fromJust$ parametersSystemsSamplesShufflesListVariablesSearcherFud lmax xmax omax bmax mmax umax pmax (sys aa) aa aarr [VarInt i | i <-[101..]]

let iillfudshigh aa aarr wmax lmax xmax omax bmax mmax umax pmax = fst $fst$ fromJust $parametersSystemsSamplesShufflesListVariablesInducerFudHighest wmax lmax xmax omax bmax mmax umax pmax (sys aa) aa aarr [VarInt i | i <-[101..]]   let aa = hhaa hh rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $zzllfuds aa (ind aa) 1 (3^4) 4 4 4 (3^4) 1 "({(cloud,heavy),(199,1)},1 % 1)" "({(cloud,light),(199,2)},1 % 1)" "({(cloud,none),(199,3)},1 % 1)" "({(pressure,high),(197,1)},1 % 1)" "({(pressure,low),(197,2)},1 % 1)" "({(pressure,medium),(197,2)},1 % 1)" "({(rain,heavy),(200,1)},1 % 1)" "({(rain,light),(200,2)},1 % 1)" "({(rain,none),(200,3)},1 % 1)" "({(wind,light),(198,1)},1 % 1)" "({(wind,none),(198,1)},1 % 1)" "({(wind,strong),(198,2)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $iillfudshigh aa (ind aa) (3^4) 1 (3^4) 4 4 4 (3^4) 1 "({(cloud,heavy),(199,1)},1 % 1)" "({(cloud,light),(199,2)},1 % 1)" "({(cloud,none),(199,3)},1 % 1)" "({(pressure,high),(197,1)},1 % 1)" "({(pressure,low),(197,2)},1 % 1)" "({(pressure,medium),(197,2)},1 % 1)" "({(rain,heavy),(200,1)},1 % 1)" "({(rain,light),(200,2)},1 % 1)" "({(rain,none),(200,3)},1 % 1)" "({(wind,light),(198,1)},1 % 1)" "({(wind,none),(198,1)},1 % 1)" "({(wind,strong),(198,2)},1 % 1)"   let df = iilldfshighind aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{197,198,199,200}),({(197,2),(198,1),(199,2),(200,2)},{pressure,wind},{273,274})]"



let [[(_,ff1),(ss1,ff11)]] = Set.toList $treesPaths$ dfzz $df rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff1 "({(cloud,heavy),(199,1)},1 % 1)" "({(cloud,light),(199,2)},1 % 1)" "({(cloud,none),(199,3)},1 % 1)" "({(pressure,high),(197,1)},1 % 1)" "({(pressure,low),(197,2)},1 % 1)" "({(pressure,medium),(197,2)},1 % 1)" "({(rain,heavy),(200,1)},1 % 1)" "({(rain,light),(200,2)},1 % 1)" "({(rain,none),(200,3)},1 % 1)" "({(wind,light),(198,1)},1 % 1)" "({(wind,none),(198,1)},1 % 1)" "({(wind,strong),(198,2)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff1)$ states $aa fmul ff1 "({(197,1),(198,1),(199,2),(200,1)},{(cloud,light),(pressure,high),(rain,heavy),(wind,light)})" "({(197,1),(198,1),(199,3),(200,3)},{(cloud,none),(pressure,high),(rain,none),(wind,light)})" "({(197,1),(198,1),(199,3),(200,3)},{(cloud,none),(pressure,high),(rain,none),(wind,none)})" "({(197,1),(198,2),(199,2),(200,2)},{(cloud,light),(pressure,high),(rain,light),(wind,strong)})" "({(197,2),(198,1),(199,1),(200,1)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,light)})" "({(197,2),(198,1),(199,2),(200,2)},{(cloud,light),(pressure,low),(rain,light),(wind,none)})" "({(197,2),(198,1),(199,2),(200,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,light)})" "({(197,2),(198,1),(199,2),(200,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,none)})" "({(197,2),(198,1),(199,2),(200,3)},{(cloud,light),(pressure,medium),(rain,none),(wind,none)})" "({(197,2),(198,1),(199,3),(200,2)},{(cloud,none),(pressure,low),(rain,light),(wind,light)})" "({(197,2),(198,1),(199,3),(200,2)},{(cloud,none),(pressure,medium),(rain,light),(wind,light)})" "({(197,2),(198,1),(199,3),(200,3)},{(cloud,none),(pressure,medium),(rain,none),(wind,none)})" "({(197,2),(198,2),(199,1),(200,1)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,strong)})" "({(197,2),(198,2),(199,2),(200,1)},{(cloud,light),(pressure,medium),(rain,heavy),(wind,strong)})"   rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa "({(cloud,light),(pressure,low),(rain,light),(wind,none)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff11 "({(pressure,high),(273,1)},1 % 1)" "({(pressure,low),(273,1)},1 % 1)" "({(pressure,medium),(273,2)},1 % 1)" "({(wind,light),(274,1)},1 % 1)" "({(wind,none),(274,2)},1 % 1)" "({(wind,strong),(274,1)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa fmul ff11 "({(cloud,light),(pressure,low),(rain,light),(wind,none),(273,1),(274,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light),(273,2),(274,1)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none),(273,2),(274,2)},1 % 1)"  In this case the decomposition has a single path containing the root fud and a child fud which is contingent on state let ss1 = {(197,2),(198,1),(199,2),(200,2)}. The child slice contains only three events which all have light cloud and rain. The child fud distinguishes between low and medium pressure and between no wind and light wind. If we now constrain mmax we obtain a decomposition of two paths and four fuds, let df = iilldfshighind aa (3^4) 1 (3^4) 4 4 3 (3^4) 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{634,635,636}),({(634,2),(635,1),(636,1)},{pressure,wind},{1281,1282})]"
"[({},{cloud,pressure,rain,wind},{634,635,636}),({(634,2),(635,1),(636,2)},{cloud,pressure,rain,wind},{1224,1225,1226}),({(1224,2),(1225,2),(1226,2)},{pressure,wind},{1263,1264})]"



let [[(_,ff1),(ss1,ff11)],[(_,_),(ss2,ff21),(ss21,ff211)]] = Set.toList $treesPaths$ dfzz $df rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff1 "({(cloud,heavy),(634,1)},1 % 1)" "({(cloud,light),(634,2)},1 % 1)" "({(cloud,none),(634,2)},1 % 1)" "({(pressure,high),(wind,light),(635,1)},1 % 1)" "({(pressure,high),(wind,none),(635,1)},1 % 1)" "({(pressure,high),(wind,strong),(635,1)},1 % 1)" "({(pressure,low),(wind,light),(635,2)},1 % 1)" "({(pressure,low),(wind,none),(635,1)},1 % 1)" "({(pressure,low),(wind,strong),(635,2)},1 % 1)" "({(pressure,medium),(wind,light),(635,1)},1 % 1)" "({(pressure,medium),(wind,none),(635,1)},1 % 1)" "({(pressure,medium),(wind,strong),(635,1)},1 % 1)" "({(rain,heavy),(636,1)},1 % 1)" "({(rain,light),(636,2)},1 % 1)" "({(rain,none),(636,2)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff1)$ states $aa fmul ff1 "({(634,1),(635,2),(636,1)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,light)})" "({(634,1),(635,2),(636,1)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,strong)})" "({(634,2),(635,1),(636,1)},{(cloud,light),(pressure,high),(rain,heavy),(wind,light)})" "({(634,2),(635,1),(636,1)},{(cloud,light),(pressure,medium),(rain,heavy),(wind,strong)})" "({(634,2),(635,1),(636,2)},{(cloud,light),(pressure,high),(rain,light),(wind,strong)})" "({(634,2),(635,1),(636,2)},{(cloud,light),(pressure,low),(rain,light),(wind,none)})" "({(634,2),(635,1),(636,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,light)})" "({(634,2),(635,1),(636,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,none)})" "({(634,2),(635,1),(636,2)},{(cloud,light),(pressure,medium),(rain,none),(wind,none)})" "({(634,2),(635,1),(636,2)},{(cloud,none),(pressure,high),(rain,none),(wind,light)})" "({(634,2),(635,1),(636,2)},{(cloud,none),(pressure,high),(rain,none),(wind,none)})" "({(634,2),(635,1),(636,2)},{(cloud,none),(pressure,medium),(rain,light),(wind,light)})" "({(634,2),(635,1),(636,2)},{(cloud,none),(pressure,medium),(rain,none),(wind,none)})" "({(634,2),(635,2),(636,2)},{(cloud,none),(pressure,low),(rain,light),(wind,light)})"   rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa "({(cloud,light),(pressure,high),(rain,heavy),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,heavy),(wind,strong)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff11 "({(pressure,high),(1281,1)},1 % 1)" "({(pressure,low),(1281,1)},1 % 1)" "({(pressure,medium),(1281,2)},1 % 1)" "({(wind,light),(1282,1)},1 % 1)" "({(wind,none),(1282,1)},1 % 1)" "({(wind,strong),(1282,2)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa fmul ff11 "({(cloud,light),(pressure,high),(rain,heavy),(wind,light),(1281,1),(1282,1)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,heavy),(wind,strong),(1281,2),(1282,2)},1 % 1)"   rpln$ aall $aa fmul ff1 mul single ss2 1 ared vars aa "({(cloud,light),(pressure,high),(rain,light),(wind,strong)},1 % 1)" "({(cloud,light),(pressure,low),(rain,light),(wind,none)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,none),(wind,none)},1 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,light)},2 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,none)},3 % 1)" "({(cloud,none),(pressure,medium),(rain,light),(wind,light)},2 % 1)" "({(cloud,none),(pressure,medium),(rain,none),(wind,none)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff21 "({(cloud,heavy),(1225,1)},1 % 1)" "({(cloud,light),(1225,2)},1 % 1)" "({(cloud,none),(1225,1)},1 % 1)" "({(pressure,high),(wind,light),(1224,1)},1 % 1)" "({(pressure,high),(wind,none),(1224,1)},1 % 1)" "({(pressure,high),(wind,strong),(1224,2)},1 % 1)" "({(pressure,low),(wind,light),(1224,1)},1 % 1)" "({(pressure,low),(wind,none),(1224,2)},1 % 1)" "({(pressure,low),(wind,strong),(1224,1)},1 % 1)" "({(pressure,medium),(wind,light),(1224,3)},1 % 1)" "({(pressure,medium),(wind,none),(1224,2)},1 % 1)" "({(pressure,medium),(wind,strong),(1224,1)},1 % 1)" "({(rain,heavy),(1226,1)},1 % 1)" "({(rain,light),(1226,2)},1 % 1)" "({(rain,none),(1226,1)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss2 1 ared vars aa fmul ff21 "({(cloud,light),(pressure,high),(rain,light),(wind,strong),(1224,2),(1225,2),(1226,2)},1 % 1)" "({(cloud,light),(pressure,low),(rain,light),(wind,none),(1224,2),(1225,2),(1226,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light),(1224,3),(1225,2),(1226,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none),(1224,2),(1225,2),(1226,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,none),(wind,none),(1224,2),(1225,2),(1226,1)},1 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,light),(1224,1),(1225,1),(1226,1)},2 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,none),(1224,1),(1225,1),(1226,1)},3 % 1)" "({(cloud,none),(pressure,medium),(rain,light),(wind,light),(1224,3),(1225,1),(1226,2)},2 % 1)" "({(cloud,none),(pressure,medium),(rain,none),(wind,none),(1224,2),(1225,1),(1226,1)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff21)$ states $aa fmul ff1 mul single ss2 1 ared vars aa fmul ff21 "({(1224,1),(1225,1),(1226,1)},{(cloud,none),(pressure,high),(rain,none),(wind,light)})" "({(1224,1),(1225,1),(1226,1)},{(cloud,none),(pressure,high),(rain,none),(wind,none)})" "({(1224,2),(1225,1),(1226,1)},{(cloud,none),(pressure,medium),(rain,none),(wind,none)})" "({(1224,2),(1225,2),(1226,1)},{(cloud,light),(pressure,medium),(rain,none),(wind,none)})" "({(1224,2),(1225,2),(1226,2)},{(cloud,light),(pressure,high),(rain,light),(wind,strong)})" "({(1224,2),(1225,2),(1226,2)},{(cloud,light),(pressure,low),(rain,light),(wind,none)})" "({(1224,2),(1225,2),(1226,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,none)})" "({(1224,3),(1225,1),(1226,2)},{(cloud,none),(pressure,medium),(rain,light),(wind,light)})" "({(1224,3),(1225,2),(1226,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,light)})"   rpln$ aall $aa fmul ff1 mul single ss2 1 fmul ff21 mul single ss21 1 ared vars aa "({(cloud,light),(pressure,high),(rain,light),(wind,strong)},1 % 1)" "({(cloud,light),(pressure,low),(rain,light),(wind,none)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff211 "({(pressure,high),(1264,1)},1 % 1)" "({(pressure,low),(1264,2)},1 % 1)" "({(pressure,medium),(1264,2)},1 % 1)" "({(wind,light),(1263,1)},1 % 1)" "({(wind,none),(1263,2)},1 % 1)" "({(wind,strong),(1263,1)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss2 1 fmul ff21 mul single ss21 1 ared vars aa fmul ff211 "({(cloud,light),(pressure,high),(rain,light),(wind,strong),(1263,1),(1264,1)},1 % 1)" "({(cloud,light),(pressure,low),(rain,light),(wind,none),(1263,2),(1264,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none),(1263,2),(1264,2)},1 % 1)"  Now consider predicting the weather, let bb = aa red [pressure,cloud,wind] let df = iilldfshighind bb (3^3) 1 (3^3) 3 3 3 (3^3) 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,wind},{155,156,157}),({(155,2),(156,1),(157,1)},{cloud,pressure,wind},{221,222,223})]"
"[({},{cloud,pressure,wind},{155,156,157}),({(155,2),(156,1),(157,2)},{cloud,wind},{245,246})]"


let [[(_,ff1),(ss1,ff11)],[(_,_),(ss2,ff21)]] = Set.toList $treesPaths$ dfzz $df rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff1 "({(cloud,heavy),(155,1)},1 % 1)" "({(cloud,light),(155,2)},1 % 1)" "({(cloud,none),(155,2)},1 % 1)" "({(pressure,high),(157,1)},1 % 1)" "({(pressure,low),(157,2)},1 % 1)" "({(pressure,medium),(157,1)},1 % 1)" "({(wind,light),(156,1)},1 % 1)" "({(wind,none),(156,1)},1 % 1)" "({(wind,strong),(156,2)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff1)$ states $bb fmul ff1 "({(155,1),(156,1),(157,2)},{(cloud,heavy),(pressure,low),(wind,light)})" "({(155,1),(156,2),(157,2)},{(cloud,heavy),(pressure,low),(wind,strong)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,high),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,medium),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,medium),(wind,none)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,high),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,high),(wind,none)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,medium),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,medium),(wind,none)})" "({(155,2),(156,1),(157,2)},{(cloud,light),(pressure,low),(wind,none)})" "({(155,2),(156,1),(157,2)},{(cloud,none),(pressure,low),(wind,light)})" "({(155,2),(156,2),(157,1)},{(cloud,light),(pressure,high),(wind,strong)})" "({(155,2),(156,2),(157,1)},{(cloud,light),(pressure,medium),(wind,strong)})" rpln$ Set.toList $setVarsSetStatesSplit (fder ff1)$ states $aa fmul ff1 "({(155,1),(156,1),(157,2)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,light)})" "({(155,1),(156,2),(157,2)},{(cloud,heavy),(pressure,low),(rain,heavy),(wind,strong)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,high),(rain,heavy),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,medium),(rain,light),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,medium),(rain,light),(wind,none)})" "({(155,2),(156,1),(157,1)},{(cloud,light),(pressure,medium),(rain,none),(wind,none)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,high),(rain,none),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,high),(rain,none),(wind,none)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,medium),(rain,light),(wind,light)})" "({(155,2),(156,1),(157,1)},{(cloud,none),(pressure,medium),(rain,none),(wind,none)})" "({(155,2),(156,1),(157,2)},{(cloud,light),(pressure,low),(rain,light),(wind,none)})" "({(155,2),(156,1),(157,2)},{(cloud,none),(pressure,low),(rain,light),(wind,light)})" "({(155,2),(156,2),(157,1)},{(cloud,light),(pressure,high),(rain,light),(wind,strong)})" "({(155,2),(156,2),(157,1)},{(cloud,light),(pressure,medium),(rain,heavy),(wind,strong)})" rpln$ Set.toList $setVarsSetStatesSplit (fder ff1)$ states $aa fmul ff1 ared (rain Set.insert fder ff1) "({(155,1),(156,1),(157,2)},{(rain,heavy)})" "({(155,1),(156,2),(157,2)},{(rain,heavy)})" "({(155,2),(156,1),(157,1)},{(rain,heavy)})" "({(155,2),(156,1),(157,1)},{(rain,light)})" "({(155,2),(156,1),(157,1)},{(rain,none)})" "({(155,2),(156,1),(157,2)},{(rain,light)})" "({(155,2),(156,2),(157,1)},{(rain,heavy)})" "({(155,2),(156,2),(157,1)},{(rain,light)})"   rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars bb "({(cloud,light),(pressure,high),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(wind,none)},2 % 1)" "({(cloud,none),(pressure,high),(wind,light)},2 % 1)" "({(cloud,none),(pressure,high),(wind,none)},3 % 1)" "({(cloud,none),(pressure,medium),(wind,light)},2 % 1)" "({(cloud,none),(pressure,medium),(wind,none)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa "({(cloud,light),(pressure,high),(rain,heavy),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,none),(wind,none)},1 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,light)},2 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,none)},3 % 1)" "({(cloud,none),(pressure,medium),(rain,light),(wind,light)},2 % 1)" "({(cloud,none),(pressure,medium),(rain,none),(wind,none)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff11 "({(cloud,heavy),(222,1)},1 % 1)" "({(cloud,light),(222,1)},1 % 1)" "({(cloud,none),(222,2)},1 % 1)" "({(pressure,high),(221,1)},1 % 1)" "({(pressure,low),(221,1)},1 % 1)" "({(pressure,medium),(221,2)},1 % 1)" "({(wind,light),(223,1)},1 % 1)" "({(wind,none),(223,2)},1 % 1)" "({(wind,strong),(223,1)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars aa fmul ff11 "({(cloud,light),(pressure,high),(rain,heavy),(wind,light),(221,1),(222,1),(223,1)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,light),(221,2),(222,1),(223,1)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,light),(wind,none),(221,2),(222,1),(223,2)},1 % 1)" "({(cloud,light),(pressure,medium),(rain,none),(wind,none),(221,2),(222,1),(223,2)},1 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,light),(221,1),(222,2),(223,1)},2 % 1)" "({(cloud,none),(pressure,high),(rain,none),(wind,none),(221,1),(222,2),(223,2)},3 % 1)" "({(cloud,none),(pressure,medium),(rain,light),(wind,light),(221,2),(222,2),(223,1)},2 % 1)" "({(cloud,none),(pressure,medium),(rain,none),(wind,none),(221,2),(222,2),(223,2)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff11)$ states $aa fmul ff1 mul single ss1 1 ared vars aa fmul ff11 "({(221,1),(222,1),(223,1)},{(cloud,light),(pressure,high),(rain,heavy),(wind,light)})" "({(221,1),(222,2),(223,1)},{(cloud,none),(pressure,high),(rain,none),(wind,light)})" "({(221,1),(222,2),(223,2)},{(cloud,none),(pressure,high),(rain,none),(wind,none)})" "({(221,2),(222,1),(223,1)},{(cloud,light),(pressure,medium),(rain,light),(wind,light)})" "({(221,2),(222,1),(223,2)},{(cloud,light),(pressure,medium),(rain,light),(wind,none)})" "({(221,2),(222,1),(223,2)},{(cloud,light),(pressure,medium),(rain,none),(wind,none)})" "({(221,2),(222,2),(223,1)},{(cloud,none),(pressure,medium),(rain,light),(wind,light)})" "({(221,2),(222,2),(223,2)},{(cloud,none),(pressure,medium),(rain,none),(wind,none)})" rpln$ Set.toList $setVarsSetStatesSplit (fder ff11)$ states $aa fmul ff1 mul single ss1 1 ared vars aa fmul ff11 ared (rain Set.insert fder ff11) "({(221,1),(222,1),(223,1)},{(rain,heavy)})" "({(221,1),(222,2),(223,1)},{(rain,none)})" "({(221,1),(222,2),(223,2)},{(rain,none)})" "({(221,2),(222,1),(223,1)},{(rain,light)})" "({(221,2),(222,1),(223,2)},{(rain,light)})" "({(221,2),(222,1),(223,2)},{(rain,none)})" "({(221,2),(222,2),(223,1)},{(rain,light)})" "({(221,2),(222,2),(223,2)},{(rain,none)})"   rpln$ aall $aa fmul ff1 mul single ss2 1 ared vars bb "({(cloud,light),(pressure,low),(wind,none)},1 % 1)" "({(cloud,none),(pressure,low),(wind,light)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss2 1 ared vars aa "({(cloud,light),(pressure,low),(rain,light),(wind,none)},1 % 1)" "({(cloud,none),(pressure,low),(rain,light),(wind,light)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff21 "({(cloud,heavy),(245,1)},1 % 1)" "({(cloud,light),(245,2)},1 % 1)" "({(cloud,none),(245,1)},1 % 1)" "({(wind,light),(246,1)},1 % 1)" "({(wind,none),(246,2)},1 % 1)" "({(wind,strong),(246,1)},1 % 1)" rpln$ aall $aa fmul ff1 mul single ss2 1 ared vars aa fmul ff21 "({(cloud,light),(pressure,low),(rain,light),(wind,none),(245,2),(246,2)},1 % 1)" "({(cloud,none),(pressure,low),(rain,light),(wind,light),(245,1),(246,1)},1 % 1)" rpln$ Set.toList $setVarsSetStatesSplit (fder ff21)$ states $aa fmul ff1 mul single ss2 1 ared vars aa fmul ff21 "({(245,1),(246,1)},{(cloud,none),(pressure,low),(rain,light),(wind,light)})" "({(245,2),(246,2)},{(cloud,light),(pressure,low),(rain,light),(wind,none)})" rpln$ Set.toList $setVarsSetStatesSplit (fder ff21)$ states $aa fmul ff1 mul single ss2 1 ared vars aa fmul ff21 ared (rain Set.insert fder ff21) "({(245,1),(246,1)},{(rain,light)})" "({(245,2),(246,2)},{(rain,light)})"  The partition transform corresponding to the fud decomposition can be constructed to obtain the overall entropy properties, let dftt uu df = partitionsTransformVarPartition$ fromJust $systemsDecompsPartition uu (fromJust (decompFudsDecomp df)) let iilldfshighind aa wmax lmax xmax omax bmax mmax umax pmax = fromJust$ parametersSystemsSamplesListVariablesInducerDecompFudHighestNoShuffle wmax lmax xmax omax bmax mmax umax pmax (sys aa) aa [VarInt i | i <-[101..]]

let (df,(uu',_)) = iilldfshighind bb (3^3) 1 (3^3) 3 3 3 (3^3) 1

let tt = dftt uu' df

ent (aa tmul tt)
2.415052121917807

cent tt (aa red [cloud,pressure,wind])
6.931471805599453e-2

rent (aa tmul tt) (vvc tmul tt)
11.156016272510726

tlalgn tt aa [rain]
8.077984267904197

tlent tt aa [rain]
2.772588722239781

size $eff (aa tmul tt) mul (vvc tmul tt) 48 % 1  This model has the lowest optimised label entropy, but is quite query effective. Now consider the effect of the shuffle in the weather example, let iilldfshighind aa wmax lmax xmax omax bmax mmax umax pmax = fst$ fromJust $parametersSystemsSamplesListVariablesInducerDecompFudHighestNoShuffle wmax lmax xmax omax bmax mmax umax pmax (sys aa) aa [VarInt i | i <-[101..]] let iilldfshigh aa wmax lmax xmax omax bmax mmax umax pmax mult seed = fst$ fromJust $parametersSystemsSamplesListVariablesInducerDecompFudHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) aa [VarInt i | i <-[101..]]   let df = iilldfshighind aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{197,198,199,200}),({(197,2),(198,1),(199,2),(200,2)},{pressure,wind},{273,274})]"

let ((_,ff1):_):_ = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(197,1),(198,1),(199,2),(200,1)},1 % 1)" "({(197,1),(198,1),(199,3),(200,3)},5 % 1)" "({(197,1),(198,2),(199,2),(200,2)},1 % 1)" "({(197,2),(198,1),(199,1),(200,1)},2 % 1)" "({(197,2),(198,1),(199,2),(200,2)},3 % 1)" "({(197,2),(198,1),(199,2),(200,3)},1 % 1)" "({(197,2),(198,1),(199,3),(200,2)},3 % 1)" "({(197,2),(198,1),(199,3),(200,3)},1 % 1)" "({(197,2),(198,2),(199,1),(200,1)},2 % 1)" "({(197,2),(198,2),(199,2),(200,1)},1 % 1)" algn$ aa fapply ff1
11.110317593941938



let df = iilldfshigh aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 1 1

rpln $Set.toList$ treesPaths $funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff))$ dfzz $df "[({},{cloud,pressure,rain},{155,156,157}),({(155,2),(156,2),(157,1)},{pressure,rain,wind},{221,222,223})]" let ((_,ff1):_):_ = Set.toList$ treesPaths $dfzz$ df

rpln $aall$ aa fapply ff1
"({(155,1),(156,1),(157,2)},4 % 1)"
"({(155,2),(156,1),(157,1)},2 % 1)"
"({(155,2),(156,2),(157,1)},12 % 1)"
"({(155,2),(156,2),(157,2)},2 % 1)"

algn $aa fapply ff1 9.099015828910998   let df = iilldfshigh aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 10 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,1),(246,2),(247,1),(248,1)},{pressure,wind},{585,586})]"
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,2),(246,2),(247,1),(248,1)},{cloud,pressure,rain,wind},{561,562,563,564})]"
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,2),(246,2),(247,1),(248,2)},{cloud,pressure,rain},{409,410,411})]"

let ((_,ff1):_):_ = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(245,1),(246,1),(247,2),(248,1)},4 % 1)" "({(245,1),(246,2),(247,1),(248,1)},2 % 1)" "({(245,2),(246,2),(247,1),(248,1)},6 % 1)" "({(245,2),(246,2),(247,1),(248,2)},6 % 1)" "({(245,2),(246,2),(247,2),(248,1)},1 % 1)" "({(245,2),(246,2),(247,2),(248,2)},1 % 1)" algn$ aa fapply ff1
9.402475111705488


let df = iilldfshigh aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 1

rpln $Set.toList$ treesPaths $funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff))$ dfzz $df "[({},{cloud,pressure,rain,wind},{197,198,199,200}),({(197,2),(198,1),(199,2),(200,2)},{pressure,wind},{275,276})]" let ((_,ff1):_):_ = Set.toList$ treesPaths $dfzz$ df

rpln $aall$ aa fapply ff1
"({(197,1),(198,1),(199,2),(200,1)},1 % 1)"
"({(197,1),(198,1),(199,3),(200,3)},5 % 1)"
"({(197,1),(198,2),(199,2),(200,2)},1 % 1)"
"({(197,2),(198,1),(199,1),(200,1)},2 % 1)"
"({(197,2),(198,1),(199,2),(200,2)},3 % 1)"
"({(197,2),(198,1),(199,2),(200,3)},1 % 1)"
"({(197,2),(198,1),(199,3),(200,2)},3 % 1)"
"({(197,2),(198,1),(199,3),(200,3)},1 % 1)"
"({(197,2),(198,2),(199,1),(200,1)},2 % 1)"
"({(197,2),(198,2),(199,2),(200,1)},1 % 1)"

algn aa fapply ff1 11.110317593941938  We can see that shuffling this histogram of small size without a shuffle multiplier, let mult = 1, has a large effect on the resultant decomposition, removing wind from the root fud and adding rain to the child fud. In the case of a non-unit shuffle multiplier, let mult = 10, the resultant decomposition looks more similar to the no-shuffle case with an intermediate alignment of the root fud, but the root fud is still different. Increasing the shuffle multiplier still further, let mult = 20, recovers the no-shuffle model. The weather forecast example continues in Highest-layer fud decomper. ### Highest-layer fud decomper Now consider the practicable highest-layer summed shuffle content alignment valency-density fud decomposition inducer,I_{z,\mathrm{Scsd,D,F,\infty,q},P,\mathrm{d}}^{‘}$, (Haskell) implemented by means of induction computers. The implementation of the practicable fud decomposition inducer in terms of optimisers is described above in section ‘Optimisation’. The functionality of the highest-layer limited-models infinite-layer substrate fud decompositions tree searcher,$Z_{P,A,\mathrm{D,F,d}}$, is implemented in the highest-layer fud decomper$I_{P,U,\mathrm{D,F,d}} \in \mathrm{computers}$, which is defined such that (i) the domain is$\mathrm{domain}(I_{P,U,\mathrm{D,F,d}}) = \mathrm{P}(\mathcal{V}_U) \times \mathcal{A}_U$, (ii) the range is$\mathrm{range}(I_{P,U,\mathrm{D,F,d}}) = \mathcal{U} \times \mathcal{D}_{\mathrm{F,d}}$, and (iii) the application is (Text) $\begin{eqnarray} I_{P,U,\mathrm{D,F,d}}^{ * }((V,A)) = \mathrm{decomp}(V,A,U,\emptyset,1,\emptyset) \end{eqnarray}$ where$\mathrm{decomp} \in \mathrm{P}(\mathcal{V}) \times \mathcal{A} \times \mathcal{U} \times \mathcal{D}_{\mathrm{F,d}} \times \mathbf{N} \times \mathrm{P}(\mathcal{L}(\mathcal{S} \times \mathcal{F}) \times \mathcal{S}) \to (\mathcal{U} \times \mathcal{D}_{\mathrm{F,d}})$is defined as $\begin{eqnarray} &&\mathrm{decomp}(V,A,U,D,f,Z) = \\ &&\hspace{1em}\mathrm{if}(Q \neq \emptyset,\\ &&\hspace{4em}\mathrm{if}(N \neq \emptyset \wedge \mathrm{maxr}(N)>0,\\ &&\hspace{6em}\mathrm{decomp}(V,A,U’,E,f+1,Z’),\\ &&\hspace{6em}\mathrm{decomp}(V,A,U,D,f,Z’)),\\ &&\hspace{4em}(U,D)) : \\ &&\hspace{2em}Q = \mathrm{maxd}(\mathrm{order}(D_{\mathbf{Q} \times \mathrm{S} \times \mathcal{X}^3},\{(z_B,S,L,B) : \\ &&\hspace{4em}(L,Y) \in \mathrm{places}(D),\\ &&\hspace{4em}(\cdot,F) = L_{|L|},~W=\mathrm{der}(F),\\ &&\hspace{4em}S \in W^{\mathrm{CS}} \setminus \mathrm{dom}(\mathrm{dom}(Y)),\\ &&\hspace{4em}(L,S) \notin Z,\\ &&\hspace{4em}R_L = \bigcup \mathrm{dom}(\mathrm{set}(L)),~H_L = \bigcup \mathrm{ran}(\mathrm{set}(L)),\\ &&\hspace{4em}B = I_{\%}^{ * }((V,I_{ * }^{ * }((I_{\mathrm{ * X}}^{ * }((H_L,A)),\{R_L \cup S\}^{\mathrm{U}})))),\\ &&\hspace{4em}z_B = \mathrm{size}(B),~z_B>0\})),\\ &&\hspace{2em}\{(\cdot,S,L,B)\} = Q,\\ &&\hspace{2em}Z’ = Z \cup \{(L,S)\},\\ &&\hspace{2em}(U’,F,N) = I_{P,U,\mathrm{L,d}}^{ * }((V,B,B_{R(B)},f)),\\ &&\hspace{2em}\{K\} = \mathrm{maxd}(\mathrm{order}(D_{\mathrm{K}},\mathrm{dom}(N))),\\ &&\hspace{2em}G = \mathrm{depends}(F,K),\\ &&\hspace{2em}M=L \cup \{(|L|+1,(S,G))\},\\ &&\hspace{2em}E = \mathrm{tree}(\mathrm{paths}(D) \setminus \{L\} \cup \{M\})\} \end{eqnarray}$ and $\begin{eqnarray} &&\mathrm{decomp}(V,A,U,\emptyset,f,Z) = \\ &&\hspace{1em}\mathrm{if}(N \neq \emptyset \wedge \mathrm{maxr}(N)>0,\\ &&\hspace{4em}\mathrm{decomp}(V,A,U’,D,f+1,\emptyset),\\ &&\hspace{4em}(U,D_{\emptyset})) : \\ &&\hspace{2em}(U’,F,N) = I_{P,U,\mathrm{L,d}}^{ * }((V,A,A_{R(A)},f)),\\ &&\hspace{2em}\{K\} = \mathrm{maxd}(\mathrm{order}(D_{\mathrm{K}},\mathrm{dom}(N)))),\\ &&\hspace{2em}G = \mathrm{depends}(F,K),\\ &&\hspace{2em}D = \{((\emptyset,G),\emptyset)\} \end{eqnarray}$ The decomper is defined in module AlignmentPracticable, parametersSystemsDecomperHighest :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Maybe (System, DecompFud)  as parametersSystemsDecomperHighest wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa ... | otherwise = Just$ decomp uu emptyTree 1 seed
where
decomp uu zz f s
| zz == emptyTree && (ffr == fudEmpty || nnr == mempty || ar <= 0) = (uu, decompFudEmpty)
| zz == emptyTree = decomp uur zzr (f+1) (s + mult)
| mm == [] = (uu, zzdf (zztrim zz))
| otherwise = decomp uuc zzc (f+1) (s + mult)
where
aarr = ashuffle aa s mult
(uur,ffr,nnr) = layerer uu aa aarr f
(ar,kkr) = maxd nnr
ffr' = if ar > 0 then depends ffr kkr else fudEmpty
zzr = tsgl (stateEmpty,ffr')
mm = [(size bb,nn,ss,bb) | (nn,yy) <- qqll (treesPlaces zz),
let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty,
ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)),
let xx = hhc union rrc add unit ss,
let bb = apply vv vv xx aa,
size bb > 0]
(_,nn,ss,bb) = last $sort mm bbrr = ashuffle bb s mult (uuc,ffc,nnc) = layerer uu bb bbrr f (ac,kkc) = maxd nnc ffc' = if ac > 0 then depends ffc kkc else fudEmpty zzc = pathsTree$ treesPaths zz add (nn ++ [(ss,ffc')])
layerer uu aa aarr f = fromJust $parametersSystemsLayererHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f ...  The highest-layer fud decomper,$I_{P,U,\mathrm{D,F,d}}, can be compared to the practicable summed shuffle content alignment valency-density fud decomposition inducer,I_{z,\mathrm{Scsd,D,F,\infty,q},P}$, using the weather forecast example (summarised in Functional definition sets), let iilldfshigh aa wmax lmax xmax omax bmax mmax umax pmax mult seed = fst$ fromJust $parametersSystemsSamplesListVariablesInducerDecompFudHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) aa [VarInt i | i <-[101..]] let decomper aa wmax lmax xmax omax bmax mmax umax pmax mult seed = snd$ fromJust $parametersSystemsDecomperHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) (vars aa) aa   let df = iilldfshigh aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 10 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,1),(246,2),(247,1),(248,1)},{pressure,wind},{585,586})]"
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,2),(246,2),(247,1),(248,1)},{cloud,pressure,rain,wind},{561,562,563,564})]"
"[({},{cloud,pressure,rain,wind},{245,246,247,248}),({(245,2),(246,2),(247,1),(248,2)},{cloud,pressure,rain},{409,410,411})]"

let [[(_,ff1),(ss1,ff11)],[_,(ss2,ff21)],[_,(ss3,ff31)]] = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(245,1),(246,1),(247,2),(248,1)},4 % 1)" "({(245,1),(246,2),(247,1),(248,1)},2 % 1)" "({(245,2),(246,2),(247,1),(248,1)},6 % 1)" "({(245,2),(246,2),(247,1),(248,2)},6 % 1)" "({(245,2),(246,2),(247,2),(248,1)},1 % 1)" "({(245,2),(246,2),(247,2),(248,2)},1 % 1)" algn$ aa fapply ff1
9.402475111705488

algn $aa fmul ff1 mul single ss1 1 fapply ff11 0.4831289506253467 algn$ aa fmul ff1 mul single ss2 1 fapply ff21
2.4223021592021015

algn $aa fmul ff1 mul single ss3 1 fapply ff31 1.4735290887851153   let df = decomper aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 10 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,3>,<<1,1>,4>}),({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,0),(<<1,1>,4>,0)},{pressure,wind},{<<8,1>,1>,<<8,1>,2>})]"
"[({},{cloud,pressure,rain,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,3>,<<1,1>,4>}),({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,1),(<<1,1>,4>,0)},{cloud,pressure,rain,wind},{<<3,1>,1>,<<3,1>,2>,<<3,1>,3>,<<3,1>,4>})]"
"[({},{cloud,pressure,rain,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,3>,<<1,1>,4>}),({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,1),(<<1,1>,4>,1)},{cloud,pressure,rain},{<<2,1>,1>,<<2,1>,2>,<<2,1>,3>})]"

let [[(_,ff1),(ss1,ff11)],[_,(ss2,ff21)],[_,(ss3,ff31)]] = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(<<1,1>,1>,0),(<<1,1>,2>,1),(<<1,1>,3>,0),(<<1,1>,4>,0)},4 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,0),(<<1,1>,4>,0)},2 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,1),(<<1,1>,4>,0)},6 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,1),(<<1,1>,4>,1)},6 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,1),(<<1,1>,4>,0)},1 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,1),(<<1,1>,4>,1)},1 % 1)" algn$ aa fapply ff1
9.402475111705488

algn $aa fmul ff1 mul single ss1 1 fapply ff11 0.4831289506253467 algn$ aa fmul ff1 mul single ss2 1 fapply ff21
2.4223021592021015

algn $aa fmul ff1 mul single ss3 1 fapply ff31 1.4735290887851153  In this comparison both methods are shuffled with a multiplier of let mult = 10 and a seed of let seed = 1. The resultant decompositions are identical except for the construction of the variable names.  let df = iilldfshigh aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{197,198,199,200}),({(197,2),(198,1),(199,2),(200,2)},{pressure,wind},{275,276})]"

let [[(_,ff1),(ss1,ff11)]] = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(197,1),(198,1),(199,2),(200,1)},1 % 1)" "({(197,1),(198,1),(199,3),(200,3)},5 % 1)" "({(197,1),(198,2),(199,2),(200,2)},1 % 1)" "({(197,2),(198,1),(199,1),(200,1)},2 % 1)" "({(197,2),(198,1),(199,2),(200,2)},3 % 1)" "({(197,2),(198,1),(199,2),(200,3)},1 % 1)" "({(197,2),(198,1),(199,3),(200,2)},3 % 1)" "({(197,2),(198,1),(199,3),(200,3)},1 % 1)" "({(197,2),(198,2),(199,1),(200,1)},2 % 1)" "({(197,2),(198,2),(199,2),(200,1)},1 % 1)" algn$ aa fapply ff1
11.110317593941938

algn $aa fmul ff1 mul single ss1 1 fapply ff11 0.14333087703345487   let df = decomper aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,3>,<<1,1>,4>}),({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,1),(<<1,1>,4>,0)},{pressure,wind},{<<4,1>,1>,<<4,1>,2>})]"

let [[(_,ff1),(ss1,ff11)]] = Set.toList $treesPaths$ dfzz $df rpln$ aall $aa fapply ff1 "({(<<1,1>,1>,0),(<<1,1>,2>,1),(<<1,1>,3>,0),(<<1,1>,4>,0)},2 % 1)" "({(<<1,1>,1>,0),(<<1,1>,2>,1),(<<1,1>,3>,0),(<<1,1>,4>,2)},2 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,0),(<<1,1>,4>,0)},1 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,3>,1),(<<1,1>,4>,2)},1 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,0),(<<1,1>,4>,2)},1 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,1),(<<1,1>,4>,0)},3 % 1)" "({(<<1,1>,1>,1),(<<1,1>,2>,1),(<<1,1>,3>,2),(<<1,1>,4>,0)},1 % 1)" "({(<<1,1>,1>,2),(<<1,1>,2>,0),(<<1,1>,3>,2),(<<1,1>,4>,0)},5 % 1)" "({(<<1,1>,1>,2),(<<1,1>,2>,1),(<<1,1>,3>,1),(<<1,1>,4>,0)},3 % 1)" "({(<<1,1>,1>,2),(<<1,1>,2>,1),(<<1,1>,3>,2),(<<1,1>,4>,0)},1 % 1)" algn$ aa fapply ff1
11.110317593941934

algn aa fmul ff1 mul single ss1 1 fapply ff11 0.1433308770334549  The resultant decompositions remain identical when shuffled with a higher multiplier of let mult = 20. The weather forecast example continues in Highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper. ### Highest-layer excluded-self maximum-roll fud decomper The practicable highest-layer excluded-self maximum-roll summed shuffle content alignment valency-density fud decomposition inducer,I_{z,\mathrm{Scsd,D,F,\infty,q},P,\mathrm{mr,xs,d}}^{‘}$, is implemented in the highest-layer excluded-self maximum-roll fud decomper$I_{P,U,\mathrm{D,F,mr,xs,d}} \in \mathrm{computers}$(Text) exactly as in the highest-layer fud decomper$I_{P,U,\mathrm{D,F,d}}$, above, except that the highest-layer maximum-roll excluded-self fud induction computer,$I_{P,U,\mathrm{Z,F,mr,xs,d}}$, replaces the highest-layer fud induction computer,$I_{P,U,\mathrm{Z,F,d}}$. The decomper is defined in module AlignmentPracticable, parametersSystemsDecomperMaximumRollExcludedSelfHighest :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Maybe (System, DecompFud)  as parametersSystemsDecomperMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa ... | otherwise = Just$ decomp uu emptyTree 1 seed
where
decomp uu zz f s
| zz == emptyTree && (ffr == fudEmpty || nnr == mempty || ar <= 0) = (uu, decompFudEmpty)
| zz == emptyTree = decomp uur zzr (f+1) (s + mult)
| mm == [] = (uu, zzdf (zztrim zz))
| otherwise = decomp uuc zzc (f+1) (s + mult)
where
aarr = ashuffle aa s mult
(uur,ffr,nnr) = layerer uu aa aarr f
(ar,kkr) = maxd nnr
ffr' = if ar > 0 then depends ffr kkr else fudEmpty
zzr = tsgl (stateEmpty,ffr')
mm = [(size bb,nn,ss,bb) | (nn,yy) <- qqll (treesPlaces zz),
let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty,
ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)),
let xx = hhc union rrc add unit ss,
let bb = apply vv vv xx aa,
size bb > 0]
(_,nn,ss,bb) = last $sort mm bbrr = ashuffle bb s mult (uuc,ffc,nnc) = layerer uu bb bbrr f (ac,kkc) = maxd nnc ffc' = if ac > 0 then depends ffc kkc else fudEmpty zzc = pathsTree$ treesPaths zz add (nn ++ [(ss,ffc')])
layerer uu aa aarr f = fromJust parametersSystemsLayererMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f ...  ### Highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper The practicable highest-layer excluded-self maximum-roll-by-derived-dimension summed shuffle content alignment valency-density fud decomposition inducer,I_{z,\mathrm{Scsd,D,F,\infty,q},P,\mathrm{mm,xs,d}}^{‘}$, is implemented in the highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper$I_{P,U,\mathrm{D,F,mm,xs,d}} \in \mathrm{computers}$(Text) exactly as in the highest-layer fud decomper$I_{P,U,\mathrm{D,F,d}}$, above, except that the highest-layer maximum-roll-by-derived-dimension excluded-self fud induction computer,$I_{P,U,\mathrm{Z,F,mm,xs,d}}$, replaces the highest-layer fud induction computer,$I_{P,U,\mathrm{Z,F,d}}$. The decomper is defined in module AlignmentPracticable, parametersSystemsDecomperMaxRollByMExcludedSelfHighest :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Maybe (System, DecompFud)  as parametersSystemsDecomperMaxRollByMExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa ... | otherwise = Just$ decomp uu emptyTree 1 seed
where
decomp uu zz f s
| zz == emptyTree && (ffr == fudEmpty || nnr == mempty || ar <= 0) = (uu, decompFudEmpty)
| zz == emptyTree = decomp uur zzr (f+1) (s + mult)
| mm == [] = (uu, zzdf (zztrim zz))
| otherwise = decomp uuc zzc (f+1) (s + mult)
where
aarr = ashuffle aa s mult
(uur,ffr,nnr) = layerer uu aa aarr f
(ar,kkr) = maxd nnr
ffr' = if ar > 0 then depends ffr kkr else fudEmpty
zzr = tsgl (stateEmpty,ffr')
mm = [(size bb,nn,ss,bb) | (nn,yy) <- qqll (treesPlaces zz),
let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty,
ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)),
let xx = hhc union rrc add unit ss,
let bb = apply vv vv xx aa,
size bb > 0]
(_,nn,ss,bb) = last $sort mm bbrr = ashuffle bb s mult (uuc,ffc,nnc) = layerer uu bb bbrr f (ac,kkc) = maxd nnc ffc' = if ac > 0 then depends ffc kkc else fudEmpty zzc = pathsTree$ treesPaths zz add (nn ++ [(ss,ffc')])
layerer uu aa aarr f = fromJust $parametersSystemsLayererMaxRollByMExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f ...  An example of practicable model induction is described in Analysis of the UCI Machine Learning Repository Mushroom Data Set - Model 16 induction. In the weather forecast example (summarised in Functional definition sets), let decompermmxs aa wmax lmax xmax omax bmax mmax umax pmax mult seed = snd$ fromJust $parametersSystemsDecomperMaxRollByMExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) (vars aa) aa   let aa = hhaa hh let df = decompermmxs aa (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 1 rpln$ Set.toList $treesPaths$ funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff)) $dfzz$ df
"[({},{cloud,pressure,rain,wind},{<<1,1>,3>,<<1,1>,4>,<<1,1>,5>,<<1,1>,6>,<<1,1>,7>}),({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,0),(<<1,1>,6>,2),(<<1,1>,7>,0)},{pressure,wind},{<<8,1>,1>,<<8,1>,2>})]"
"[({},{cloud,pressure,rain,wind},{<<1,1>,3>,<<1,1>,4>,<<1,1>,5>,<<1,1>,6>,<<1,1>,7>}),({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,0),(<<1,1>,7>,2)},{cloud,pressure,wind},{<<2,1>,3>,<<2,1>,4>}),({(<<2,1>,3>,0),(<<2,1>,4>,1)},{pressure,rain},{<<6,1>,1>,<<6,1>,2>})]"
"[({},{cloud,pressure,rain,wind},{<<1,1>,3>,<<1,1>,4>,<<1,1>,5>,<<1,1>,6>,<<1,1>,7>}),({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,0),(<<1,1>,7>,2)},{cloud,pressure,wind},{<<2,1>,3>,<<2,1>,4>}),({(<<2,1>,3>,1),(<<2,1>,4>,0)},{cloud,pressure,wind},{<<5,1>,1>,<<5,1>,2>,<<5,1>,3>,<<5,1>,5>})]"



let ((_,ff):_):_ = Set.toList $treesPaths$ dfzz $df rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) ff
"({(cloud,heavy),(rain,heavy),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,heavy),(rain,light),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,heavy),(rain,none),(<<1,1>,6>,2)},1 % 1)"
"({(cloud,light),(rain,heavy),(<<1,1>,6>,2)},1 % 1)"
"({(cloud,light),(rain,light),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,light),(rain,none),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,none),(rain,heavy),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,none),(rain,light),(<<1,1>,6>,0)},1 % 1)"
"({(cloud,none),(rain,none),(<<1,1>,6>,2)},1 % 1)"
"({(cloud,heavy),(<<1,1>,3>,0)},1 % 1)"
"({(cloud,light),(<<1,1>,3>,1)},1 % 1)"
"({(cloud,none),(<<1,1>,3>,1)},1 % 1)"
"({(pressure,high),(wind,light),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,high),(wind,none),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,high),(wind,strong),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,low),(wind,light),(<<1,1>,4>,3)},1 % 1)"
"({(pressure,low),(wind,none),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,low),(wind,strong),(<<1,1>,4>,3)},1 % 1)"
"({(pressure,medium),(wind,light),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,medium),(wind,none),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,medium),(wind,strong),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,high),(wind,light),(<<1,1>,7>,0)},1 % 1)"
"({(pressure,high),(wind,none),(<<1,1>,7>,0)},1 % 1)"
"({(pressure,high),(wind,strong),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,low),(wind,light),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,low),(wind,none),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,low),(wind,strong),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,medium),(wind,light),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,medium),(wind,none),(<<1,1>,7>,2)},1 % 1)"
"({(pressure,medium),(wind,strong),(<<1,1>,7>,0)},1 % 1)"
"({(rain,heavy),(<<1,1>,5>,0)},1 % 1)"
"({(rain,light),(<<1,1>,5>,1)},1 % 1)"
"({(rain,none),(<<1,1>,5>,1)},1 % 1)"

rpln $aall$ aa fapply ff
"({(<<1,1>,3>,0),(<<1,1>,4>,3),(<<1,1>,5>,0),(<<1,1>,6>,0),(<<1,1>,7>,2)},4 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,0),(<<1,1>,6>,2),(<<1,1>,7>,0)},2 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,0),(<<1,1>,7>,2)},7 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,2),(<<1,1>,7>,0)},5 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,2),(<<1,1>,7>,2)},1 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,3),(<<1,1>,5>,1),(<<1,1>,6>,0),(<<1,1>,7>,2)},1 % 1)"

algn (aa fapply ff) - algn (ind aa fapply ff)
14.91684019471893

algnden (aa fapply ff) - algnden (ind aa fapply ff)
7.458420097359465

ent (aa fapply ff)
1.5657306529961337

cent (fftt ff) aa
0.9879509050336628

rent (aa fapply ff) (vvc fapply ff)
19.908579842311866


Now consider predicting the weather,

let bb = aa red [pressure,cloud,wind]

let df = decompermmxs bb (3^3) 1 (3^3) 3 3 3 (3^3) 1 20 1

rpln $Set.toList$ treesPaths $funcsTreesMap (\(ss,ff) -> (ss,fund ff,fder ff))$ dfzz $df "[({},{cloud,pressure,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,5>}),({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,5>,0)},{cloud,pressure,wind},{<<2,1>,1>,<<2,1>,4>}),({(<<2,1>,1>,0),(<<2,1>,4>,0)},{pressure,wind},{<<3,1>,1>,<<3,1>,2>})]" "[({},{cloud,pressure,wind},{<<1,1>,1>,<<1,1>,2>,<<1,1>,5>}),({(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,5>,0)},{cloud,pressure,wind},{<<2,1>,1>,<<2,1>,4>}),({(<<2,1>,1>,1),(<<2,1>,4>,2)},{pressure,wind},{<<4,1>,1>,<<4,1>,2>})]" let [[(_,ff1),(ss1,ff11),(ss11,ff111)],[(_,_),(_,_),(ss21,ff211)]] = Set.toList$ treesPaths $dfzz$ df



rpln $(concat . map (aall . ttaa) . Set.toList . ffqq)$ ff1
"({(cloud,heavy),(<<1,1>,1>,0)},1 % 1)"
"({(cloud,light),(<<1,1>,1>,1)},1 % 1)"
"({(cloud,none),(<<1,1>,1>,1)},1 % 1)"
"({(pressure,high),(wind,light),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,high),(wind,none),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,high),(wind,strong),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,low),(wind,light),(<<1,1>,5>,3)},1 % 1)"
"({(pressure,low),(wind,none),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,low),(wind,strong),(<<1,1>,5>,3)},1 % 1)"
"({(pressure,medium),(wind,light),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,medium),(wind,none),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,medium),(wind,strong),(<<1,1>,5>,0)},1 % 1)"
"({(pressure,high),(<<1,1>,2>,0)},1 % 1)"
"({(pressure,low),(<<1,1>,2>,1)},1 % 1)"
"({(pressure,medium),(<<1,1>,2>,0)},1 % 1)"

rp $ss1 "{(<<1,1>,1>,1),(<<1,1>,2>,0),(<<1,1>,5>,0)}" rpln$ aall $aa fmul ff1 mul single ss1 1 ared vars bb "({(cloud,light),(pressure,high),(wind,light)},1 % 1)" "({(cloud,light),(pressure,high),(wind,strong)},1 % 1)" "({(cloud,light),(pressure,medium),(wind,light)},1 % 1)" "({(cloud,light),(pressure,medium),(wind,none)},2 % 1)" "({(cloud,light),(pressure,medium),(wind,strong)},1 % 1)" "({(cloud,none),(pressure,high),(wind,light)},2 % 1)" "({(cloud,none),(pressure,high),(wind,none)},3 % 1)" "({(cloud,none),(pressure,medium),(wind,light)},2 % 1)" "({(cloud,none),(pressure,medium),(wind,none)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff11 "({(cloud,heavy),(<<2,1>,1>,0)},1 % 1)" "({(cloud,light),(<<2,1>,1>,1)},1 % 1)" "({(cloud,none),(<<2,1>,1>,0)},1 % 1)" "({(pressure,high),(wind,light),(<<2,1>,4>,0)},1 % 1)" "({(pressure,high),(wind,none),(<<2,1>,4>,0)},1 % 1)" "({(pressure,high),(wind,strong),(<<2,1>,4>,2)},1 % 1)" "({(pressure,low),(wind,light),(<<2,1>,4>,2)},1 % 1)" "({(pressure,low),(wind,none),(<<2,1>,4>,2)},1 % 1)" "({(pressure,low),(wind,strong),(<<2,1>,4>,2)},1 % 1)" "({(pressure,medium),(wind,light),(<<2,1>,4>,0)},1 % 1)" "({(pressure,medium),(wind,none),(<<2,1>,4>,2)},1 % 1)" "({(pressure,medium),(wind,strong),(<<2,1>,4>,2)},1 % 1)" rp$ ss11
"{(<<2,1>,1>,0),(<<2,1>,4>,0)}"

rpln $aall$ aa fmul ff1 mul single ss1 1  fmul ff11 mul single ss11 1 ared vars bb
"({(cloud,none),(pressure,high),(wind,light)},2 % 1)"
"({(cloud,none),(pressure,high),(wind,none)},3 % 1)"
"({(cloud,none),(pressure,medium),(wind,light)},2 % 1)"

rpln $(concat . map (aall . ttaa) . Set.toList . ffqq)$ ff111
"({(pressure,high),(<<3,1>,1>,0)},1 % 1)"
"({(pressure,low),(<<3,1>,1>,1)},1 % 1)"
"({(pressure,medium),(<<3,1>,1>,1)},1 % 1)"
"({(wind,light),(<<3,1>,2>,0)},1 % 1)"
"({(wind,none),(<<3,1>,2>,1)},1 % 1)"
"({(wind,strong),(<<3,1>,2>,1)},1 % 1)"

rp $ss21 "{(<<2,1>,1>,1),(<<2,1>,4>,2)}" rpln$ aall $aa fmul ff1 mul single ss1 1 fmul ff11 mul single ss21 1 ared vars bb "({(cloud,light),(pressure,high),(wind,strong)},1 % 1)" "({(cloud,light),(pressure,medium),(wind,none)},2 % 1)" "({(cloud,light),(pressure,medium),(wind,strong)},1 % 1)" rpln$ (concat . map (aall . ttaa) . Set.toList . ffqq) $ff211 "({(pressure,high),(<<4,1>,1>,0)},1 % 1)" "({(pressure,low),(<<4,1>,1>,1)},1 % 1)" "({(pressure,medium),(<<4,1>,1>,1)},1 % 1)" "({(wind,light),(<<4,1>,2>,0)},1 % 1)" "({(wind,none),(<<4,1>,2>,1)},1 % 1)" "({(wind,strong),(<<4,1>,2>,0)},1 % 1)"  The partition transform corresponding to the fud decomposition can be constructed to obtain the overall entropy properties, let decompermmxs aa wmax lmax xmax omax bmax mmax umax pmax mult seed = fromJust$ parametersSystemsDecomperMaxRollByMExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax mult seed (sys aa) (vars aa) aa

let dftt uu df = partitionsTransformVarPartition $fromJust$ systemsDecompsPartition uu (fromJust (decompFudsDecomp df))

let (uu',df) = decompermmxs bb (3^3) 1 (3^3) 3 3 3 (3^3) 1 20 1

let tt = dftt uu' df

ent (aa tmul tt)
2.276422685805818

cent tt bb
0.20794415416798356

rent (aa tmul tt) (vvc tmul tt)
9.916651030764797

tlalgn tt aa [rain]
8.730663306858734

tlent tt aa [rain]
2.772588722239781

size eff (aa tmul tt) mul (vvc tmul tt) 60 % 1  This model has the lowest optimised label entropy, but is very query effective. ### Practicable level summed shuffle content alignment valency-density fud decomposition inducer Define the level limited-models infinite-layer substrate fud decompositions tree searcher $Z_{P,A,\mathrm{D,F,g}} = \mathrm{searchTreer}(\mathcal{D}_{\mathrm{F},\infty,U,V} \cap \mathrm{trees}(\mathcal{S} \times \mathcal{F}_{\mathrm{q}}),P_{P,A,\mathrm{D,F,g}},R_{P,A,\mathrm{D,F,g}})$ where the parameters includes the level hierarchy tree,Z_{\mathrm{g}} \in \mathrm{set}(P)$, where$Z_{\mathrm{g}} \in \mathrm{trees}(\mathbf{N}_{>0} \times \mathrm{P}(V_A) \times (\mathcal{F}_{\infty,U_A,V_A} \cap \mathcal{F}_{\mathrm{u}} \cap \mathcal{F}_{\mathrm{b}} \cap \mathcal{F}_{\mathrm{h}})). The neighbourhood function is defined $\begin{eqnarray} &&P_{P,A,\mathrm{D,F,g}}(D) = \{E : \\ &&\hspace{2em}(\cdot,S,G,L) \in \mathrm{maxd}(\mathrm{order}(D_{\mathbf{Q} \times \mathrm{S} \times \mathcal{X}^2},\{(\mathrm{size}(B),S,G,L) : \\ &&\hspace{4em}(L,Y) \in \mathrm{places}(D),\\ &&\hspace{4em}R_L = \bigcup \mathrm{dom}(\mathrm{set}(L)),~H_L = \bigcup \mathrm{ran}(\mathrm{set}(L)),\\ &&\hspace{4em}(\cdot,F) = L_{|L|},~W=\mathrm{der}(F),\\ &&\hspace{4em}S \in W^{\mathrm{CS}} \setminus \mathrm{dom}(\mathrm{dom}(Y)),\\ &&\hspace{4em}B = \mathrm{apply}(V_A,V_A,\mathrm{his}(H_L) \cup \{\{R_L \cup S\}^{\mathrm{U}}\},A),~\mathrm{size}(B)>0,\\ &&\hspace{4em}G = \mathrm{level}(B,B_{R(B)})(Z_{\mathrm{g}}),~G \neq \emptyset\})),\\ &&\hspace{2em}M=L \cup \{(|L|+1,(S,G))\},\\ &&\hspace{2em}E = \mathrm{tree}(\mathrm{paths}(D) \setminus \{L\} \cup \{M\})\} \end{eqnarray}$ where $\begin{eqnarray} R_{P,A,\mathrm{D,F,g}} = \{\{((\emptyset,G),\emptyset)\} : G \in \mathrm{maxd}(\mathrm{order}(D_{\mathrm{F}},\mathrm{level}(A,A_{R(A)})(Z_{\mathrm{g}})))\} \end{eqnarray}$ and $\begin{eqnarray} &&\mathrm{level}(A,A_R) \in \mathrm{trees}(\mathbf{N}_{>0} \times \mathrm{P}(V_A) \times (\mathcal{F}_{\infty,U_A,V_A} \cap \mathcal{F}_{\mathrm{u}} \cap \mathcal{F}_{\mathrm{b}} \cap \mathcal{F}_{\mathrm{h}})) \to \\ &&\hspace{15em}(\mathcal{F}_{\infty,U_A,V_A} \cap \mathcal{F}_{\mathrm{u}} \cap \mathcal{F}_{\mathrm{b}} \cap \mathcal{F}_{\mathrm{h}}) \end{eqnarray}$ is defined $\begin{eqnarray} &&\mathrm{level}(A,A_R)(Z_{\mathrm{g}}) = \bigcup \{G : \\ &&\hspace{2em}((\mathrm{wmax}_{\mathrm{g}}, V_{\mathrm{g}}, F_{\mathrm{g}}),X_{\mathrm{g}}) \in Z_{\mathrm{g}},\\ &&\hspace{2em}F_{\mathrm{h}} = \mathrm{level}(A,A_R)(X_{\mathrm{g}}),~\mathrm{wmax}_{\mathrm{g}} \in \mathrm{set}(P_{\mathrm{g}}),\\ &&\hspace{2em}F_{\mathrm{L}} \in \mathrm{leaves}(\mathrm{tree}(Z_{P_{\mathrm{g}},A,A_R,V_{\mathrm{g}},F_{\mathrm{g}} \cup F_{\mathrm{h}},\mathrm{L}})),\\ &&\hspace{2em}(K,a) \in \mathrm{max}(\mathrm{elements}(Z_{P_{\mathrm{g}},A,A_R,F_{\mathrm{g}} \cup F_{\mathrm{h}},F_{\mathrm{L}},\mathrm{D}})),~a>0,\\ &&\hspace{2em}G = \mathrm{depends}(F_{\mathrm{L}},K)\} \end{eqnarray}$ The practicable level summed shuffle content alignment valency-density fud decomposition inducer may then be implemented (Text) $\begin{eqnarray} &&I_{z,\mathrm{Scsd,D,F,\infty,q},P,\mathrm{g}}^{‘ * }(A) = \\ &&\hspace{2em}\mathrm{if}(Q \neq \emptyset, \{(D,I_{\mathrm{Scsd}}^{ * }((A,D)))\},\{(D_{\emptyset},0)\}) :\\ &&\hspace{5em}Q = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,\mathrm{D,F,g}})),~\{(D,\cdot)\} = Q \end{eqnarray}$ The fud decomposition inducer is defined in module AlignmentPracticable. The implementation replaces partition variables by cardinal variables and so has an additional argument of a list of variables, [Variable], parametersSystemsSamplesLevelsListVariablesInducerDecompFudHighest_u :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Histogram -> Tree (Integer, Set.Set Variable, Fud) -> [Variable] -> Maybe (DecompFud,(System,[Variable]))  as parametersSystemsSamplesLevelsListVariablesInducerDecompFudHighest_u lmax xmax omax bmax mmax umax pmax mult seed uu aa zzg ll ... | ... = Just dec emptyTree uu ll seed
| otherwise = Nothing
where
dec zz uu ll s
| zz == emptyTree && ffr == fudEmpty = (decompFudEmpty, (uu, ll))
| zz == emptyTree = dec zzr uur llr (s + mult)
| mm == [] = (zzdf (zztrim zz), (uu, ll))
| otherwise = dec zzc uuc llc (s + mult)
where
aarr = ashuffle aa s mult
(ffr,(uur,llr)) = level uu aa aarr zzg ll
zzr = tsgl (stateEmpty,ffr)
mm = [(size bb,nn,ss,bb,bbrr) | (nn,yy) <- qqll (treesPlaces zz),
let rrc = llsthis nn, let hhc = llfhis nn, let (_,ff) = last nn, ff /= fudEmpty,
ss <- qqll (cart uu (fder ff) minus dom (treesRoots yy)),
let bb = apply (vars aa) (vars aa) (hhc union rrc add unit ss) aa,
let bbrr = ashuffle bb s mult,
size bb > 0]
(_,nn,ss,bb,bbrr) = last $sort mm (ffc,(uuc,llc)) = level uu bb bbrr zzg ll zzc = pathsTree$ treesPaths zz add (nn ++ [(ss,ffc)])
level uu aa aarr (Tree ttg) ll = foldl next (fudEmpty,(uu,ll)) (Map.toList ttg)
where
next (ff,(uu,ll)) ((wmaxg,vvg,ffg),xxg) = (ff funion gg,(uu',ll'))
where
(ffh,(uuh,llh)) = level uu aa aarr xxg ll
((gg,_),(uu',ll')) =
iillfudshigh wmaxg lmax xmax omax bmax mmax umax pmax uuh aa aarr vvg (ffg funion ffh) llh
iillfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll = fromJust $parametersSystemsSamplesShufflesLevelsListVariablesInducerFudHighest wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll zztrim = pathsTree . Set.map lltrim . treesPaths lltrim ll = let (_,ff) = last ll in if ff == fudEmpty then init ll else ll ... hshuffle hh r = fromJust$ historiesShuffle hh (fromInteger r)
ashuffle aa seed mult = let hh = aahh aa in
resize (size aa) $foldl1 aadd [hhaa$ hshuffle hh (seed + r) | r <- [0..mult-1]]
...


Note that the _u suffix in the function name indicates that some or all of the checks on the arguments have been dropped.

### Level highest-layer excluded-self maximum-roll fud decomper

The level highest-layer excluded-self maximum-roll fud decomper, $I_{P,U,\mathrm{D,F,mr,xs,d,l}}$, is defined in module AlignmentPracticable,

parametersSystemsDecomperLevelMaximumRollExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Tree (Integer, Set.Set Variable, Fud) ->
Maybe (System, DecompFud)

layerer wmax uu vvg ffg aa aarr f g = fromJust $parametersSystemsLayererLevelMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg aa aarr f g ...  ### Level highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper The level highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper,$I_{P,U,\mathrm{D,F,mm,xs,d,l}}$, is defined in module AlignmentPracticable, parametersSystemsDecomperLevelMaxRollByMExcludedSelfHighest :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> System -> Set.Set Variable -> Histogram -> Tree (Integer, Set.Set Variable, Fud) -> Maybe (System, DecompFud) parametersSystemsDecomperLevelMaxRollByMExcludedSelfHighest lmax xmax omax bmax mmax umax pmax mult seed uu vv aa zzg ... layerer wmax uu vvg ffg aa aarr f g = fromJust$