Decompers

Haskell implementation of fast Practicable Inducers/Decompers

Sections

Highest-layer fud decomper

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-entropy limited-nodes highest-layer excluded-self maximum-roll-by-derived-dimension 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.


top