Decompers
Haskell implementation of fast Practicable Inducers/Decompers
Sections
Limited-nodes highest-layer fud decomper
Highest-layer excluded-self maximum-roll fud decomper
Limited-nodes highest-layer excluded-self maximum-roll fud decomper
Limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
Label-entropy limited-nodes highest-layer excluded-self maximum-roll fud decomper
Label-mode limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
Level highest-layer excluded-self maximum-roll fud decomper
Level limited-nodes highest-layer excluded-self maximum-roll fud decomper
Level limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
Highest-layer fud decomper
The application of the highest-layer fud decomper $I_{P,U,\mathrm{D,F,d}} \in \mathrm{computers}$ is described in Haskell.
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)
parametersSystemsDecomperHighest wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa
...
layerer uu aa aarr f = fromJust $
parametersSystemsLayererHighestRepa wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa decomper is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram ->
Maybe (System, DecompFud)
parametersSystemsDecomperHighestRepa wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa
...
layerer uu aa aarr f = fromJust $
parametersSystemsLayererHighestRepa wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa decomper depends on the layerer.
Limited-nodes highest-layer fud decomper
The limited-nodes limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F,f}}$, is a variation of the limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F}}$, in which the cardinality of the fuds of the decomposition tree is limited to the maximum fuds limit $\mathrm{fmax} \in \mathbf{N}_{>0}$.
The corresponding repa decomper, $I_{P,U,\mathrm{D,F,d,f}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperHighestFmaxRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram ->
Maybe (System, DecompFud)
parametersSystemsDecomperHighestFmaxRepa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
...
layerer uu aa aarr f = fromJust $
parametersSystemsLayererHighestRepa wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa limited-nodes decomper depends on the layerer.
Highest-layer excluded-self maximum-roll fud decomper
The application of the highest-layer excluded-self maximum-roll fud decomper $I_{P,U,\mathrm{D,F,mr,xs,d}} \in \mathrm{computers}$ is described in Haskell.
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)
parametersSystemsDecomperMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa
...
layerer uu aa aarr f = fromJust $
parametersSystemsLayererMaximumRollExcludedSelfHighest wmax lmax xmax omax bmax mmax umax pmax uu vv aa aarr f
...
The repa decomper is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperMaximumRollExcludedSelfHighestRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram ->
Maybe (System, DecompFud)
parametersSystemsDecomperMaximumRollExcludedSelfHighestRepa wmax lmax xmax omax bmax mmax umax pmax mult seed uu vv aa
...
layerer uu aa f = parametersSystemsLayererMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa decomper depends on the layerer.
Limited-nodes highest-layer excluded-self maximum-roll fud decomper
The repa limited-nodes decomper, $I_{P,U,\mathrm{D,F,mr,xs,d,f}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram ->
Maybe (System, DecompFud)
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
...
layerer uu aa f = parametersSystemsLayererMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram ->
IO (Maybe (System, DecompFud))
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
...
layerer uu xx f =
do
...
parametersSystemsLayererMaximumRollExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The io repa decomper depends on the layerer.
A version of the io repa decomper takes a HistoryRepa
rather than a Histogram
,
parametersSystemsHistoryRepasDecomperMaximumRollExcludedSelfHighestFmaxIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperMaximumRollExcludedSelfHighestFmaxIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
Limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
The application of the highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper $I_{P,U,\mathrm{D,F,mm,xs,d}} \in \mathrm{computers}$ is described in Haskell.
The repa limited-nodes decomper, $I_{P,U,\mathrm{D,F,mm,xs,d,f}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa ->
Maybe (System, DecompFud)
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
...
layerer uu xx f = parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
Note that the repa decomper takes a HistoryRepa
rather than a Histogram
.
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
...
layerer uu xx f =
...
parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The io repa decomper depends on the layerer.
The weather forecast example (summarised in Functional definition sets) is discussed in Highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper,
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 the repa decomper,
let decompermmxsrr uu vv aa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed = snd $ fromJust $ parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxRepa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
let decompermmxsrrIO uu vv aa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed = parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxIORepa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
let hr = aahr aa
let df' = decompermmxsrr uu vv hr (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 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>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,0)},{cloud,pressure,rain,wind},{<<3,1>,1>,<<3,1>,2>,<<3,1>,3>,<<3,1>,4>,<<3,1>,6>,<<3,1>,9>})]"
"[({},{cloud,pressure,rain,wind},{<<1,1>,3>,<<1,1>,4>,<<1,1>,5>,<<1,1>,6>}),({(<<1,1>,3>,1),(<<1,1>,4>,1),(<<1,1>,5>,0),(<<1,1>,6>,1)},{cloud,pressure,rain,wind},{<<2,1>,1>,<<2,1>,6>,<<2,1>,7>}),({(<<2,1>,1>,0),(<<2,1>,6>,0),(<<2,1>,7>,1)},{pressure,rain,wind},{<<6,1>,2>,<<6,1>,3>,<<6,1>,4>}),({(<<6,1>,2>,1),(<<6,1>,3>,1),(<<6,1>,4>,0)},{pressure,rain},{<<7,1>,1>,<<7,1>,2>})]"
Just (_,df'') <- decompermmxsrrIO uu vv hr (3^4) 1 (3^4) 4 4 4 (3^4) 1 20 20 1
df'' == df'
True
The repa decomper model is similar to the set-theoretic model. It differs mainly because the shuffle implementation is different,
let ((_,ff'):_):_ = Set.toList $ treesPaths $ dfzz $ df'
rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) ff'
"({(cloud,heavy),(rain,heavy),(<<1,1>,5>,0)},1 % 1)"
"({(cloud,heavy),(rain,light),(<<1,1>,5>,1)},1 % 1)"
"({(cloud,heavy),(rain,none),(<<1,1>,5>,1)},1 % 1)"
"({(cloud,light),(rain,heavy),(<<1,1>,5>,1)},1 % 1)"
"({(cloud,light),(rain,light),(<<1,1>,5>,0)},1 % 1)"
"({(cloud,light),(rain,none),(<<1,1>,5>,0)},1 % 1)"
"({(cloud,none),(rain,heavy),(<<1,1>,5>,0)},1 % 1)"
"({(cloud,none),(rain,light),(<<1,1>,5>,0)},1 % 1)"
"({(cloud,none),(rain,none),(<<1,1>,5>,1)},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>,1)},1 % 1)"
"({(pressure,low),(wind,light),(<<1,1>,4>,2)},1 % 1)"
"({(pressure,low),(wind,none),(<<1,1>,4>,1)},1 % 1)"
"({(pressure,low),(wind,strong),(<<1,1>,4>,2)},1 % 1)"
"({(pressure,medium),(wind,light),(<<1,1>,4>,1)},1 % 1)"
"({(pressure,medium),(wind,none),(<<1,1>,4>,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(<<1,1>,4>,0)},1 % 1)"
"({(pressure,high),(wind,light),(<<1,1>,6>,0)},1 % 1)"
"({(pressure,high),(wind,none),(<<1,1>,6>,0)},1 % 1)"
"({(pressure,high),(wind,strong),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,low),(wind,light),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,low),(wind,none),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,low),(wind,strong),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,medium),(wind,light),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,medium),(wind,none),(<<1,1>,6>,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(<<1,1>,6>,0)},1 % 1)"
rpln $ aall $ aa `fapply` ff'
"({(<<1,1>,3>,0),(<<1,1>,4>,2),(<<1,1>,5>,0),(<<1,1>,6>,1)},4 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,0),(<<1,1>,5>,1),(<<1,1>,6>,0)},7 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,1),(<<1,1>,5>,0),(<<1,1>,6>,1)},7 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,1),(<<1,1>,5>,1),(<<1,1>,6>,1)},1 % 1)"
"({(<<1,1>,3>,1),(<<1,1>,4>,2),(<<1,1>,5>,0),(<<1,1>,6>,1)},1 % 1)"
algn (aa `fapply` ff') - algn (ind aa `fapply` ff')
11.139942347796755
algnden (aa `fapply` ff') - algnden (ind aa `fapply` ff')
5.033037112783653
ent (aa `fapply` ff')
1.3563362969912935
cent (fftt ff') aa
1.1973452610385027
rent (aa `fapply` ff') (vvc `fapply` ff')
17.058092311085176
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>})]"
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.
Again, consider the repa decomper,
let hr = aahr bb
let kk = vars bb
let df' = decompermmxsrr uu kk hr (3^3) 1 (3^3) 3 3 3 (3^3) 1 20 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>,1)},{pressure,wind},{<<4,1>,1>,<<4,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>,0)},{pressure,wind},{<<3,1>,1>,<<3,1>,2>})]"
Just (_,df'') <- decompermmxsrrIO uu kk hr (3^3) 1 (3^3) 3 3 3 (3^3) 1 20 20 1
df'' == df'
True
In this case the repa model is identical except for the variable naming. This can be seen by comparing the transform partitions,
let decompermmxsrr uu vv aa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed = fromJust $ parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxRepa wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa
let dftt uu df = partitionsTransformVarPartition $ fromJust $ systemsDecompsPartition uu (fromJust (decompFudsDecomp df))
let (uu',df') = decompermmxsrr uu kk hr (3^3) 1 (3^3) 3 3 3 (3^3) 1 20 20 1
let tt' = dftt uu' df'
tt' == tt
True
Label-entropy limited-nodes highest-layer excluded-self maximum-roll fud decomper
The label-entropy limited-nodes limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F,f,e},V_{\mathrm{L}}}$, is such that (i) the limited-layer limited-underlying limited-breadth fud tree searcher, $Z_{P,A,A_R,\mathrm{L}}$, and the limited-derived derived variables set list maximiser, $Z_{P,A,A_R,F,\mathrm{D}}$, are restricted to the query variables, $V_{\mathrm{Q}} = V_A \setminus V_{\mathrm{L}}$, (ii) the order of fud decomposition is modified to maximise slice label entropy and then slice size, and (iii) the decomposition of a slice with zero label entropy terminates.
The repa decomper, $I_{P,U,\mathrm{D,F,mr,xs,d,f,e},V_{\mathrm{L}}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxLabelMinEntropyRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Set.Set Variable ->
Maybe (System, DecompFud)
parametersSystemsDecomperMaximumRollExcludedSelfHighestFmaxLabelMinEntropyRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu aa f = parametersSystemsLayererMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperMaximumRollExcludedSelfHighestFmaxLabelMinEntropyIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> Set.Set Variable ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperMaximumRollExcludedSelfHighestFmaxLabelMinEntropyIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu xx f =
do
...
parametersSystemsLayererMaximumRollExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
Note that the io repa decomper takes a HistoryRepa
rather than a Histogram
.
The io repa decomper depends on the layerer.
Label-entropy limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
The label-entropy limited-nodes limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F,f,e},V_{\mathrm{L}}}$, is such that (i) the limited-layer limited-underlying limited-breadth fud tree searcher, $Z_{P,A,A_R,\mathrm{L}}$, and the limited-derived derived variables set list maximiser, $Z_{P,A,A_R,F,\mathrm{D}}$, are restricted to the query variables, $V_{\mathrm{Q}} = V_A \setminus V_{\mathrm{L}}$, (ii) the order of fud decomposition is modified to maximise slice label entropy and then slice size, and (iii) the decomposition of a slice with zero label entropy terminates.
The repa decomper, $I_{P,U,\mathrm{D,F,mm,xs,d,f,e},V_{\mathrm{L}}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelMinEntropyRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> Set.Set Variable ->
Maybe (System, DecompFud)
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelMinEntropyRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu xx f = parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
Note that the repa decomper takes a HistoryRepa
rather than a Histogram
.
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelMinEntropyIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> Set.Set Variable ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelMinEntropyIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu xx f =
do
...
parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The io repa decomper depends on the layerer.
An example of practicable model induction is described in Analysis of the UCI Machine Learning Repository Mushroom Data Set - Model 16 induction.
Label-mode limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
The label-mode limited-nodes limited-models infinite-layer substrate fud decompositions tree searcher, $Z_{P,A,\mathrm{D,F,f,m},V_{\mathrm{L}}}$, is such that (i) the limited-layer limited-underlying limited-breadth fud tree searcher, $Z_{P,A,A_R,\mathrm{L}}$, and the limited-derived derived variables set list maximiser, $Z_{P,A,A_R,F,\mathrm{D}}$, are restricted to the query variables, $V_{\mathrm{Q}} = V_A \setminus V_{\mathrm{L}}$, (ii) the order of fud decomposition is modified to maximise non-modal label size and then slice size, and (iii) the decomposition of a slice with a unique label value terminates.
The repa decomper, $I_{P,U,\mathrm{D,F,mm,xs,d,f,m},V_{\mathrm{L}}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelModalRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> Set.Set Variable ->
Maybe (System, DecompFud)
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelModalRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu xx f = parametersSystemsLayererMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
Note that the repa decomper takes a HistoryRepa
rather than a Histogram
.
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelModalIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Set.Set Variable -> HistoryRepa -> Set.Set Variable ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperMaxRollByMExcludedSelfHighestFmaxLabelModalIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu vv aa ll
...
layerer uu xx f =
do
...
parametersSystemsLayererMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vv xx xxp xxrr xxrrp f
...
The io repa decomper depends on the layerer.
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)
parametersSystemsDecomperLevelMaximumRollExcludedSelfHighest
lmax xmax omax bmax mmax umax pmax mult seed uu vv aa zzg
...
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 limited-nodes highest-layer excluded-self maximum-roll fud decomper
The repa level limited-nodes highest-layer excluded-self maximum-roll fud decomper, $I_{P,U,\mathrm{D,F,mr,xs,d,f,l}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsDecomperLevelMaximumRollExcludedSelfHighestFmaxRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Histogram -> Tree (Integer, Set.Set Variable, Fud) ->
Maybe (System, DecompFud)
parametersSystemsDecomperLevelMaximumRollExcludedSelfHighestFmaxRepa
lmax xmax omax bmax mmax umax pmax fmax mult seed uu aa zzg
...
layerer wmax uu vvg ffg aa f g = parametersSystemsLayererLevelMaximumRollExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx' xxp' xxrr' xxrrp' f g
...
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperLevelMaximumRollExcludedSelfHighestFmaxIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> HistoryRepa -> Tree (Integer, Set.Set Variable, Fud) ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperLevelMaximumRollExcludedSelfHighestFmaxIORepa
lmax xmax omax bmax mmax umax pmax fmax mult seed uu aa zzg
...
layerer wmax uu vvg ffg xx f g =
do
...
parametersSystemsLayererLevelMaximumRollExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx' xxp' xxrr' xxrrp' f g
...
Note that the io repa decomper takes a HistoryRepa
rather than a Histogram
.
The io repa decomper depends on the layerer.
Level limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper
The repa level limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension fud decomper, $I_{P,U,\mathrm{D,F,mm,xs,d,f,l}}$, is defined in module AlignmentPracticableRepa
,
parametersSystemsHistoryRepasDecomperLevelMaxRollByMExcludedSelfHighestFmaxRepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Tree (Integer, Set.Set Variable, Fud) -> HistoryRepa ->
Maybe (System, DecompFud)
parametersSystemsHistoryRepasDecomperLevelMaxRollByMExcludedSelfHighestFmaxRepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu zzg aa
...
layerer wmax uu vvg ffg xx f g = parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestRepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx xxp xxrr xxrrp f g
...
The repa decomper depends on the layerer.
The io repa decomper is defined in module AlignmentPracticableIORepa
,
parametersSystemsHistoryRepasDecomperLevelMaxRollByMExcludedSelfHighestFmaxIORepa ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
Integer -> Integer ->
System -> Tree (Integer, Set.Set Variable, Fud) -> HistoryRepa ->
IO (Maybe (System, DecompFud))
parametersSystemsHistoryRepasDecomperLevelMaxRollByMExcludedSelfHighestFmaxIORepa
wmax lmax xmax omax bmax mmax umax pmax fmax mult seed uu zzg aa
...
layerer wmax uu vvg ffg xx f g =
do
...
parametersSystemsLayererLevelMaxRollByMExcludedSelfHighestIORepa_u
wmax lmax xmax omax bmax mmax umax pmax uu vvg ffg xx' xxp' xxrr' xxrrp' f g
...
The io repa decomper depends on the layerer.