Fud inducers

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

Sections

Practicable shuffle content alignment valency-density fud inducer

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

Practicable level shuffle content alignment valency-density fud inducer

Practicable shuffle content alignment valency-density fud inducer

Given the limited-layer limited-underlying limited-breadth fud tree searcher (Text) \[ Z_{P,A,A_R,\mathrm{L}} = \mathrm{searchTreer}(\mathcal{F}_{\infty,U_A,V_A} \cap \mathcal{F}_{\mathrm{u}} \cap \mathcal{F}_{\mathrm{b}} \cap \mathcal{F}_{\mathrm{h}},P_{P,A,A_R,\mathrm{L}},\{\emptyset\}) \] and the limited-derived derived variables set list maximiser (Text) \[ Z_{P,A,A_R,F,\mathrm{D}} = \mathrm{maximiseLister}(X_{P,A,A_R,F,\mathrm{D}},P_{P,A,A_R,F,\mathrm{D}},\mathrm{top}(\mathrm{omax}),R_{P,A,A_R,F,\mathrm{D}}) \] the practicable shuffle content alignment valency-density fud inducer, $I_{z,\mathrm{csd,F,\infty,q},P}^{‘}$, may then be implemented (Text) \[ \begin{eqnarray} &&I_{z,\mathrm{csd,F,\infty,q},P}^{‘ * }(A) = \\ &&\hspace{2em}\{(G,I_{\mathrm{csd}}^{ * }((A,A_R,G))) : \\ &&\hspace{5em}|V_A|>1,~\{F_{\mathrm{L}}\} = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,A_R,\mathrm{L}})),\\ &&\hspace{5em}K \in \mathrm{maxd}(\mathrm{elements}(Z_{P,A,A_R,F_{\mathrm{L}},\mathrm{D}})),~G = \mathrm{depends}(F_{\mathrm{L}},K)\} \cup \\ &&\hspace{2em}\{(\emptyset,0) : |V_A| \leq 1\} \end{eqnarray} \] where the shuffle content alignment valency-density computer $I_{\mathrm{csd}} \in \mathrm{computers}$ is defined as \[ \begin{eqnarray} I_{\mathrm{csd}}^{ * }((A,A_R,F)) = (I_{\mathrm{a}}^{ * }(A * F^{\mathrm{T}})-I_{\mathrm{a}}^{ * }(A_R * F^{\mathrm{T}}))/I_{\mathrm{cvl}}^{ * }(F) \end{eqnarray} \] The fud inducer is defined in module AlignmentPracticable,

parametersSystemsSamplesShufflesListVariablesInducerFud :: 
  Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
  System -> Histogram -> Histogram -> [Variable] ->
  Maybe ((Fud,Fud),(System,[Variable]))

as

parametersSystemsSamplesShufflesListVariablesInducerFud wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll
  ...
  | ... = Just $ ((depends ff kk, ff),(uu',ll'))
  | otherwise = Nothing
  where
    (nn,(uu',ll')) = zzllfuds lmax xmax omax bmax mmax umax pmax uu aa aarr ll
    ff = if nn /= [] then last nn else fudEmpty
    kk = maxdff ff $ zzffcsdderopt wmax omax uu' aa aarr ff
    zzllfuds lmax xmax omax bmax mmax umax pmax uu aa aarr ll = fromJust $
      parametersSystemsSamplesShufflesListVariablesSearcherFud lmax xmax omax bmax mmax umax pmax uu aa aarr ll
    zzffcsdderopt wmax omax uu aa rr ff = fst $ unzip $ fromJust $ 
      parametersSystemsSamplesShufflesFudsFunctionOptimiserDerived wmax omax uu aa rr ff
    ...

Note that, again, the partition variables are replaced by cardinal variables, so the fud inducer has an additional argument of a list of variables, [Variable].

For example,

let zzllfuds aa aarr lmax xmax omax bmax mmax umax pmax = fst $ fromJust $ parametersSystemsSamplesShufflesListVariablesSearcherFud lmax xmax omax bmax mmax umax pmax (sys aa) aa aarr [VarInt i | i <-[10..]]

let iillfuds aa aarr wmax lmax xmax omax bmax mmax umax pmax = fst $ fromJust $ parametersSystemsSamplesShufflesListVariablesInducerFud wmax lmax xmax omax bmax mmax umax pmax (sys aa) aa aarr [VarInt i | i <-[10..]]


let aa = resize 100 $ regpivot 3 3

algnden aa
17.240346078711394

let ff = last $ zzllfuds aa (ind aa) 1 (3^3) 3 3 3 (3^3) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ ff
"({(1,1),(64,1)},1 % 1)"
"({(1,2),(64,2)},1 % 1)"
"({(1,3),(64,2)},1 % 1)"
"({(2,1),(65,1)},1 % 1)"
"({(2,2),(65,2)},1 % 1)"
"({(2,3),(65,2)},1 % 1)"
"({(3,1),(66,1)},1 % 1)"
"({(3,2),(66,2)},1 % 1)"
"({(3,3),(66,2)},1 % 1)"

rpln $ zip [0.. ] $ fst $ unzip $ zzffcsdderopt aa (ind aa) ff (3^3) 3
"(0,{({64,65},15.918481590327701),({64,66},15.918481590327701),({65,66},15.918481590327701)})"
"(1,{({64,65,66},31.253377751394225)})"
"(2,{})"

let (gg,_) = iillfuds aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^3) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(64,1)},1 % 1)"
"({(1,2),(64,2)},1 % 1)"
"({(1,3),(64,2)},1 % 1)"
"({(2,1),(65,1)},1 % 1)"
"({(2,2),(65,2)},1 % 1)"
"({(2,3),(65,2)},1 % 1)"
"({(3,1),(66,1)},1 % 1)"
"({(3,2),(66,2)},1 % 1)"
"({(3,3),(66,2)},1 % 1)"

algnden (aa `fapply` ff) - algnden (ind aa `fapply` ff)
31.253377751394225

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
31.253377751394225

let aa = resize 1000 $ regpivot 3 4

algnden aa
197.70429785167653

let (gg,_) = iillfuds aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(2,1),(64,1)},1 % 1)"
"({(2,2),(64,2)},1 % 1)"
"({(2,3),(64,2)},1 % 1)"
"({(3,1),(65,1)},1 % 1)"
"({(3,2),(65,2)},1 % 1)"
"({(3,3),(65,2)},1 % 1)"
"({(4,1),(66,1)},1 % 1)"
"({(4,2),(66,2)},1 % 1)"
"({(4,3),(66,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
218.3586352266184

let (gg,_) = iillfuds aa (ind aa) (3^4) 1 (3^4) 4 4 4 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(146,1)},1 % 1)"
"({(1,2),(146,2)},1 % 1)"
"({(1,3),(146,2)},1 % 1)"
"({(2,1),(147,1)},1 % 1)"
"({(2,2),(147,2)},1 % 1)"
"({(2,3),(147,2)},1 % 1)"
"({(3,1),(148,1)},1 % 1)"
"({(3,2),(148,2)},1 % 1)"
"({(3,3),(148,2)},1 % 1)"
"({(4,1),(149,1)},1 % 1)"
"({(4,2),(149,2)},1 % 1)"
"({(4,3),(149,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
325.96965461170066

Now consider predicting the rain in the weather forecast example (summarised in Functional definition sets),

let aa = hhaa hh

algnden $ aa `red` [pressure,cloud,wind]
2.15004722009382

let ff = last $ zzllfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) 1 (3^3) 3 3 2 (3^3) 1


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ ff
"({(cloud,heavy),(296,1)},1 % 1)"
"({(cloud,light),(296,2)},1 % 1)"
"({(cloud,none),(296,2)},1 % 1)"
"({(pressure,high),(wind,light),(297,1)},1 % 1)"
"({(pressure,high),(wind,none),(297,1)},1 % 1)"
"({(pressure,high),(wind,strong),(297,1)},1 % 1)"
"({(pressure,low),(wind,light),(297,2)},1 % 1)"
"({(pressure,low),(wind,none),(297,1)},1 % 1)"
"({(pressure,low),(wind,strong),(297,2)},1 % 1)"
"({(pressure,medium),(wind,light),(297,1)},1 % 1)"
"({(pressure,medium),(wind,none),(297,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(297,1)},1 % 1)"

rpln $ zip [0.. ] $ fst $ unzip $ zzffcsdderopt aa (ind aa) ff (3^3) 3
"(0,{({296,297},3.0601487103147385)})"
"(1,{})"

let (gg,_) = iillfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) (3^3) 1 (3^3) 3 3 2 (3^3) 1


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(cloud,heavy),(296,1)},1 % 1)"
"({(cloud,light),(296,2)},1 % 1)"
"({(cloud,none),(296,2)},1 % 1)"
"({(pressure,high),(wind,light),(297,1)},1 % 1)"
"({(pressure,high),(wind,none),(297,1)},1 % 1)"
"({(pressure,high),(wind,strong),(297,1)},1 % 1)"
"({(pressure,low),(wind,light),(297,2)},1 % 1)"
"({(pressure,low),(wind,none),(297,1)},1 % 1)"
"({(pressure,low),(wind,strong),(297,2)},1 % 1)"
"({(pressure,medium),(wind,light),(297,1)},1 % 1)"
"({(pressure,medium),(wind,none),(297,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(297,1)},1 % 1)"

algnden (aa `fapply` ff) - algnden (ind aa `fapply` ff)
3.0601487103147385

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
3.0601487103147385

let ff = last $ zzllfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) 1 (3^3) 3 (3*2) 3 (3^3) 2


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ ff
"({(cloud,heavy),(197,1)},1 % 1)"
"({(cloud,light),(197,2)},1 % 1)"
"({(cloud,none),(197,2)},1 % 1)"
"({(pressure,high),(196,1)},1 % 1)"
"({(pressure,low),(196,2)},1 % 1)"
"({(pressure,medium),(196,1)},1 % 1)"
"({(wind,light),(161,1)},1 % 1)"
"({(wind,none),(161,1)},1 % 1)"
"({(wind,strong),(161,2)},1 % 1)"
"({(wind,light),(171,1)},1 % 1)"
"({(wind,none),(171,2)},1 % 1)"
"({(wind,strong),(171,1)},1 % 1)"

rpln $ zip [0.. ] $ fst $ unzip $ zzffcsdderopt aa (ind aa) ff (3^3) 3
"(0,{({161,197},0.6057834603672152),({171,197},0.5399739167361197),({196,197},2.4883225433699216)})"
"(1,{({161,171,197},0.8225606143847344),({161,196,197},2.751189151274419),({171,196,197},2.7587225646757725)})"
"(2,{({161,171,196,197},2.7398023210803686)})"
"(3,{})"

let (gg,_) = iillfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) (3^3) 1 (3^3) 3 (3*2) 3 (3^3) 2


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(cloud,heavy),(197,1)},1 % 1)"
"({(cloud,light),(197,2)},1 % 1)"
"({(cloud,none),(197,2)},1 % 1)"
"({(pressure,high),(196,1)},1 % 1)"
"({(pressure,low),(196,2)},1 % 1)"
"({(pressure,medium),(196,1)},1 % 1)"
"({(wind,light),(171,1)},1 % 1)"
"({(wind,none),(171,2)},1 % 1)"
"({(wind,strong),(171,1)},1 % 1)"

algnden (aa `fapply` ff) - algnden (ind aa `fapply` ff)
2.7398023210803686

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
2.7587225646757725

let ff = last $ zzllfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) 1 (3^3) 3 (3*2) 2 (3^3) 2


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ ff
"({(cloud,heavy),(607,1)},1 % 1)"
"({(cloud,light),(607,2)},1 % 1)"
"({(cloud,none),(607,2)},1 % 1)"
"({(cloud,heavy),(614,1)},1 % 1)"
"({(cloud,light),(614,2)},1 % 1)"
"({(cloud,none),(614,3)},1 % 1)"
"({(cloud,heavy),(631,1)},1 % 1)"
"({(cloud,light),(631,1)},1 % 1)"
"({(cloud,none),(631,2)},1 % 1)"
"({(pressure,high),(wind,light),(577,1)},1 % 1)"
"({(pressure,high),(wind,none),(577,1)},1 % 1)"
"({(pressure,high),(wind,strong),(577,1)},1 % 1)"
"({(pressure,low),(wind,light),(577,2)},1 % 1)"
"({(pressure,low),(wind,none),(577,1)},1 % 1)"
"({(pressure,low),(wind,strong),(577,2)},1 % 1)"
"({(pressure,medium),(wind,light),(577,1)},1 % 1)"
"({(pressure,medium),(wind,none),(577,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(577,1)},1 % 1)"
"({(pressure,high),(606,1)},1 % 1)"
"({(pressure,low),(606,2)},1 % 1)"
"({(pressure,medium),(606,1)},1 % 1)"
"({(wind,light),(615,1)},1 % 1)"
"({(wind,none),(615,2)},1 % 1)"
"({(wind,strong),(615,3)},1 % 1)"
"({(wind,light),(630,1)},1 % 1)"
"({(wind,none),(630,1)},1 % 1)"
"({(wind,strong),(630,2)},1 % 1)"

rpln $ zip [0.. ] $ fst $ unzip $ zzffcsdderopt aa (ind aa) ff (3^3) 3
"(0,{({577,607},3.0601487103147385),({577,614},2.3923266698540573),({606,607},2.4883225433699216)})"
"(1,{({577,606,607},3.891346416043536),({577,606,614},3.358279087934026),({577,607,630},3.1643965626442903)})"
"(2,{({577,606,607,630},3.8511125582823595),({577,606,607,631},3.8213440591293804),({577,606,614,630},3.8286774042639347)})"
"(3,{})"

rpln $ zip [0.. ] $ fst $ unzip $ zzffcsdderopt aa (ind aa) ff (3^7) 3
"(0,{({577,607},3.0601487103147385),({577,614},2.3923266698540573),({606,607},2.4883225433699216)})"
"(1,{({577,606,607},3.891346416043536),({577,606,614},3.358279087934026),({577,607,630},3.1643965626442903)})"
"(2,{({577,606,607,630},3.8511125582823595),({577,606,607,631},3.8213440591293804),({577,606,614,630},3.8286774042639347)})"
"(3,{({577,606,607,614,630},3.8388619125562538),({577,606,607,630,631},4.215798138230515),({577,606,614,630,631},3.8107275511105954)})"
"(4,{({577,606,607,614,615,630},3.01163366978457),({577,606,607,614,630,631},3.7980303142856844),({577,606,607,615,630,631},3.265837542015048)})"
"(5,{({577,606,607,614,615,630,631},3.001766092132741)})"
"(6,{})"

let (gg,_) = iillfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) (3^7) 1 (3^3) 3 (3*2) 2 (3^3) 2


rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(cloud,heavy),(607,1)},1 % 1)"
"({(cloud,light),(607,2)},1 % 1)"
"({(cloud,none),(607,2)},1 % 1)"
"({(cloud,heavy),(631,1)},1 % 1)"
"({(cloud,light),(631,1)},1 % 1)"
"({(cloud,none),(631,2)},1 % 1)"
"({(pressure,high),(wind,light),(577,1)},1 % 1)"
"({(pressure,high),(wind,none),(577,1)},1 % 1)"
"({(pressure,high),(wind,strong),(577,1)},1 % 1)"
"({(pressure,low),(wind,light),(577,2)},1 % 1)"
"({(pressure,low),(wind,none),(577,1)},1 % 1)"
"({(pressure,low),(wind,strong),(577,2)},1 % 1)"
"({(pressure,medium),(wind,light),(577,1)},1 % 1)"
"({(pressure,medium),(wind,none),(577,1)},1 % 1)"
"({(pressure,medium),(wind,strong),(577,1)},1 % 1)"
"({(pressure,high),(606,1)},1 % 1)"
"({(pressure,low),(606,2)},1 % 1)"
"({(pressure,medium),(606,1)},1 % 1)"
"({(wind,light),(630,1)},1 % 1)"
"({(wind,none),(630,1)},1 % 1)"
"({(wind,strong),(630,2)},1 % 1)"

algnden (aa `fapply` ff) - algnden (ind aa `fapply` ff)
3.001766092132741

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
4.215798138230515

rpln $ aarr $ (norm (aa `fapply` gg)) `divide` (norm (vvc `fapply` gg))
"({(577,1),(606,1),(607,2),(630,1),(631,1)},1.35)"
"({(577,1),(606,1),(607,2),(630,1),(631,2)},2.7)"
"({(577,1),(606,1),(607,2),(630,2),(631,1)},1.35)"
"({(577,1),(606,2),(607,2),(630,1),(631,1)},1.35)"
"({(577,2),(606,2),(607,1),(630,1),(631,1)},2.7)"
"({(577,2),(606,2),(607,1),(630,2),(631,1)},2.7)"
"({(577,2),(606,2),(607,2),(630,1),(631,2)},1.35)"

algn (aa `fapply` gg) - algn (ind aa `fapply` gg)
8.43159627646103

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
4.215798138230515

ent (aa `fapply` gg)
1.6787526304900946

cent (fftt gg) (aa `red` [cloud,pressure,wind])
0.805614209483707

rent (aa `fapply` gg) (vvc `fapply` gg)
12.077070563340271

tlalgn (fftt gg) aa [rain]
14.034757670921657

tlent (fftt gg) aa [rain]
10.043858601430028

size $ eff (aa `fapply` gg) `mul` (vvc `fapply` gg)
42 % 1

The weather forecast example continues in Practicable highest-layer shuffle content alignment valency-density fud inducer.

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

Given the highest-layer limited-layer limited-underlying limited-breadth fud tree searcher (Text) \[ Z_{P,A,A_R,\mathrm{L,d}} = \mathrm{searchTreer}(\mathcal{F}_{\infty,U_A,V_A} \cap \mathcal{F}_{\mathrm{u}} \cap \mathcal{F}_{\mathrm{b}} \cap \mathcal{F}_{\mathrm{h}},P_{P,A,A_R,\mathrm{L,d}},\{\emptyset\}) \] and the highest-layer limited-derived derived variables set list maximiser (Text) \[ Z_{P,A,A_R,F,\mathrm{D,d}} = \mathrm{maximiseLister}(X_{P,A,A_R,F,\mathrm{D}},P_{P,A,A_R,F,\mathrm{D}},\mathrm{top}(\mathrm{omax}),R_{P,A,A_R,F,\mathrm{D,d}}) \] the practicable highest-layer shuffle content alignment valency-density fud inducer, $I_{z,\mathrm{csd,F,\infty,q},P,\mathrm{d}}^{‘}$, may then be implemented (Text) \[ \begin{eqnarray} &&I_{z,\mathrm{csd,F,\infty,q},P,\mathrm{d}}^{‘ * }(A) = \\ &&\hspace{2em}\{(G,I_{\mathrm{csd}}^{ * }((A,A_R,G))) : \\ &&\hspace{5em}|V_A|>1,~\{F_{\mathrm{L}}\} = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,A_R,\mathrm{L,d}})),\\ &&\hspace{5em}K \in \mathrm{maxd}(\mathrm{elements}(Z_{P,A,A_R,F_{\mathrm{L}},\mathrm{D,d}})),~G = \mathrm{depends}(F_{\mathrm{L}},K)\} \cup \\ &&\hspace{2em}\{(\emptyset,0) : |V_A| \leq 1\} \end{eqnarray} \] The fud inducer is defined in module AlignmentPracticable,

parametersSystemsSamplesShufflesListVariablesInducerFudHighest :: 
  Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
  System -> Histogram -> Histogram -> [Variable] ->
  Maybe ((Fud,Fud),(System,[Variable]))

as

parametersSystemsSamplesShufflesListVariablesInducerFudHighest wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll
  ...
  | ... = Just $ ((depends ff kk, ff),(uu',ll'))
  | otherwise = Nothing
  where
    (nn,(uu',ll')) = zzllfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll
    ff = if nn /= [] then last nn else fudEmpty
    kk = maxdff ff $ zzffcsdderhighopt wmax omax uu' aa aarr ff
    zzllfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll = fromJust $
      parametersSystemsSamplesShufflesListVariablesSearcherFudHighest 
        wmax lmax xmax omax bmax mmax umax pmax uu aa aarr ll
    zzffcsdderhighopt wmax omax uu aa rr ff = fst $ unzip $ fromJust $ 
      parametersSystemsSamplesShufflesFudsFunctionOptimiserDerivedHighest wmax omax uu aa rr ff
    ...

Note that, again, the partition variables are replaced by cardinal variables, so the fud inducer has an additional argument of a list of variables, [Variable].

For example,

let iillfuds aa aarr wmax lmax xmax omax bmax mmax umax pmax = fst $ fst $ fromJust $ parametersSystemsSamplesShufflesListVariablesInducerFud wmax 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 = resize 100 $ regpivot 3 3

let gg = iillfuds aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^3) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(155,1)},1 % 1)"
"({(1,2),(155,2)},1 % 1)"
"({(1,3),(155,2)},1 % 1)"
"({(2,1),(156,1)},1 % 1)"
"({(2,2),(156,2)},1 % 1)"
"({(2,3),(156,2)},1 % 1)"
"({(3,1),(157,1)},1 % 1)"
"({(3,2),(157,2)},1 % 1)"
"({(3,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
31.253377751394225

let gg = iillfudshigh aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^3) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(155,1)},1 % 1)"
"({(1,2),(155,2)},1 % 1)"
"({(1,3),(155,2)},1 % 1)"
"({(2,1),(156,1)},1 % 1)"
"({(2,2),(156,2)},1 % 1)"
"({(2,3),(156,2)},1 % 1)"
"({(3,1),(157,1)},1 % 1)"
"({(3,2),(157,2)},1 % 1)"
"({(3,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
31.253377751394225


let aa = resize 1000 $ regpivot 3 4

algnden aa
197.70429785167653

let gg = iillfuds aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(2,1),(155,1)},1 % 1)"
"({(2,2),(155,2)},1 % 1)"
"({(2,3),(155,2)},1 % 1)"
"({(3,1),(156,1)},1 % 1)"
"({(3,2),(156,2)},1 % 1)"
"({(3,3),(156,2)},1 % 1)"
"({(4,1),(157,1)},1 % 1)"
"({(4,2),(157,2)},1 % 1)"
"({(4,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
218.3586352266184

let gg = iillfudshigh aa (ind aa) (3^3) 1 (3^3) 3 3 3 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(2,1),(155,1)},1 % 1)"
"({(2,2),(155,2)},1 % 1)"
"({(2,3),(155,2)},1 % 1)"
"({(3,1),(156,1)},1 % 1)"
"({(3,2),(156,2)},1 % 1)"
"({(3,3),(156,2)},1 % 1)"
"({(4,1),(157,1)},1 % 1)"
"({(4,2),(157,2)},1 % 1)"
"({(4,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
218.3586352266184

let gg = iillfuds aa (ind aa) (3^3) 2 (3^3) 3 3 3 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(239,1)},1 % 1)"
"({(1,2),(239,2)},1 % 1)"
"({(1,3),(239,2)},1 % 1)"
"({(2,1),(155,1)},1 % 1)"
"({(2,2),(155,2)},1 % 1)"
"({(2,3),(155,2)},1 % 1)"
"({(3,1),(156,1)},1 % 1)"
"({(3,2),(156,2)},1 % 1)"
"({(3,3),(156,2)},1 % 1)"
"({(4,1),(157,1)},1 % 1)"
"({(4,2),(157,2)},1 % 1)"
"({(4,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
325.96965461170066

let gg = iillfudshigh aa (ind aa) (3^3) 2 (3^3) 3 3 3 (3^2) 1

rpln $ (concat . map (aall . ttaa) . Set.toList . ffqq) $ gg
"({(1,1),(239,1)},1 % 1)"
"({(1,2),(239,2)},1 % 1)"
"({(1,3),(239,2)},1 % 1)"
"({(2,1),(155,1)},1 % 1)"
"({(2,2),(155,2)},1 % 1)"
"({(2,3),(155,2)},1 % 1)"
"({(3,1),(156,1)},1 % 1)"
"({(3,2),(156,2)},1 % 1)"
"({(3,3),(156,2)},1 % 1)"
"({(4,1),(157,1)},1 % 1)"
"({(4,2),(157,2)},1 % 1)"
"({(4,3),(157,2)},1 % 1)"

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
325.96965461170066

:set +s

let gg = iillfuds aa (ind aa) (3^3) 5 (3^3) 3 3 3 (3^2) 1

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
325.96965461170066
(45.91 secs, 8,409,009,448 bytes)

let gg = iillfudshigh aa (ind aa) (3^3) 3 (3^3) 3 3 3 (3^2) 1

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
325.96965461170066
(9.22 secs, 1,531,523,080 bytes)

Now consider predicting the rain in the weather forecast example (summarised in Functional definition sets),

let aa = hhaa hh

algnden $ aa `red` [pressure,cloud,wind]
2.15004722009382

:set +s

let gg = iillfuds (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) (3^7) 5 (3^3) 3 (3*2) 2 (3^3) 2

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
4.215798138230515
(275.79 secs, 46,371,780,760 bytes)

let gg = iillfudshigh (aa `red` [pressure,cloud,wind]) (ind (aa `red` [pressure,cloud,wind])) (3^7) 5 (3^3) 3 (3*2) 2 (3^3) 2

algnden (aa `fapply` gg) - algnden (ind aa `fapply` gg)
4.215798138230515
(29.98 secs, 5,128,323,320 bytes)

The weather forecast example continues in Practicable highest-layer summed shuffle content alignment valency-density fud decomposition inducer.

Practicable level shuffle content alignment valency-density fud inducer

The practicable level shuffle content alignment valency-density fud inducer, $I_{z,\mathrm{csd,F,\infty,q},P,V_{\mathrm{g}},F_{\mathrm{g}}}^{‘}$, may then be implemented (Text) \[ \begin{eqnarray} &&I_{z,\mathrm{csd,F,\infty,q},P,V_{\mathrm{g}},F_{\mathrm{g}}}^{‘ * }(A) = \\ &&\hspace{2em}\{(G,I_{\mathrm{csd}}^{ * }((A,A_R,G))) : \\ &&\hspace{5em}|V_A|>1,~\{F_{\mathrm{L}}\} = \mathrm{leaves}(\mathrm{tree}(Z_{P,A,A_R,V_{\mathrm{g}},F_{\mathrm{g}},\mathrm{L}})),\\ &&\hspace{5em}K \in \mathrm{maxd}(\mathrm{elements}(Z_{P,A,A_R,F_{\mathrm{g}},F_{\mathrm{L}},\mathrm{D}})),~G = \mathrm{depends}(F_{\mathrm{L}},K)\} \cup \\ &&\hspace{2em}\{(\emptyset,0) : |V_A| \leq 1\} \end{eqnarray} \] The fud inducer is defined in module AlignmentPracticable. This implementation is derived from the practicable highest-layer shuffle content alignment valency-density fud inducer,

parametersSystemsSamplesShufflesLevelsListVariablesInducerFudHighest :: 
  Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
  System -> Histogram -> Histogram -> Set.Set Variable -> Fud -> [Variable] ->
  Maybe ((Fud,Fud),(System,[Variable]))

as

parametersSystemsSamplesShufflesLevelsListVariablesInducerFudHighest 
  wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll
  ...
  | ... = Just $ ((depends ff kk, ff),(uu',ll'))
  | otherwise = Nothing
  where
    (nn,(uu',ll')) = zzllfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll
    ff = if nn /= [] then last nn else fudEmpty
    kk = maxdff ff $ zzffcsdderhighopt wmax omax uu' aa aarr ffg ff
    zzllfudshigh wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll = fromJust $
      parametersSystemsSamplesShufflesLevelsListVariablesSearcherFudHighest 
        wmax lmax xmax omax bmax mmax umax pmax uu aa aarr vvg ffg ll
    zzffcsdderhighopt wmax omax uu aa rr ffg ff = fst $ unzip $ fromJust $ 
      parametersSystemsSamplesShufflesLevelsFudsFunctionOptimiserDerivedHighest wmax omax uu aa rr ffg ff
    ...

Note that, again, the partition variables are replaced by cardinal variables, so the fud inducer has an additional argument of a list of variables, [Variable].


top