maandag 29 juni 2026

Optimale beslisboom

Een beslisboom van m vertakkingen met elk n takken
heeft N=nm uitkomsten
maar een keuzelast B = n×m

Bij welke n en m is B optimaal? Ofwel
bij welke n en m is B/N minimaal?
🔽 Eerste poging
Dat gaat op als
∂(B/N)/∂n + ∂(B/N)/∂m = 0

We weten dat
B/N = n×m/nm =

m/nm-1

dus
∂(B/N)/∂n =
∂(m/nm-1)/∂n =
∂(m×n1-m)/∂n =
m×(1-m)×n1-m-1 =

m(1-m)×n-m

en
∂(B/N)/∂m =
∂(m/nm-1)/∂m =
∂(m×n1-m)/∂m =
∂(m×eln(n)(1-m))/∂m =
∂(m×eln(n)-m×ln(n))/∂m =
∂(mn×e-mln(n))/∂m =
mn×(∂(e-mln(n))/∂m) + (∂(mn)/∂m)×e-mln(n) =
mn×(-ln(n))e-mln(n) + n×e-mln(n) =
(-mn×ln(n) + n)n-m =

(1-m×ln(n))n1-m

Samenvoegend
∂(B/N)/∂n + ∂(B/N)/∂m =
m(1-m)×n-m + (1-m×ln(n))n1-m =
(m(1-m) + n - nm×ln(n))n-m
en dat moet =0 zijn.
Dus
m(1-m) + n - nm×ln(n) = 0 of n-m=0 ⇔ m=∞

m(1-m) + n - nm×ln(n) = 0 ⇔
m - m2 + n - nm×ln(n) = 0 ⇔
1 - m + n/m - n×ln(n) = 0 ⇔
1 - m = n×ln(n) - n/m ⇔

n(ln(n) - 1/m) / (1 - m) = 1

waar ik ook niet echt blij van word. Volgens ai klopt de berekening wel.

Bij nader inzien is de vraag of ∂(B/N)/∂n + ∂(B/N)/∂m = 0 van toepassing is.
Dat gaat over de gradient.
Voor een minimum moeten zowel ∂(B/N)/∂n = 0 als ∂(B/N)/∂m = 0.
De gradient is ook 0 als ∂(B/N)/∂n = -∂(B/N)/∂m
over n andere boeg dan maar
⏶ sluit eerste poging

🔽 Tweede poging
B = n×m en N=nm ⇔ n=N1/m en
B = m×N1/m
Bij vaste N hangt B alleen af van m met een verhoopt optimum als
∂B/∂m = 0 ⇔
∂(m×N1/m)/∂m = 0 ⇔
∂(m×eln(N)/m)/∂m = 0 ⇔
(∂m/∂m)×eln(N)/m + m×∂(eln(N)/m)/∂m = 0 ⇔
eln(N)/m + m×(ln(N)ln(m))eln(N)/m = 0 ⇔
(1 + m×(ln(N)ln(m)))eln(N)/m = 0 ⇔

(1 + m×(ln(N)ln(m)))=0 of eln(N)/m = 0 ⇔ m=∞


1 + m×(ln(N)ln(m)) = 0 ⇔
m×(ln(N)ln(m)) = -1 ⇔
m×ln(m) = -1/ln(N) ⇔
Optimum bestaat alleen bij m>0 en ln(m)<0, dus 0<m<1
mm = e-1/ln(N)
Nln(m) = e-1/m
⏶ tweede poging sluiten

🔽 Derde poging
B = n×m en N=nm
ln(N)=m×ln(n) ⇔
m= ln(N)/ln(n)
B/N = nm / nm = n(ln(N)/ln(n)) / nln(N)/ln(n)
De noemer vereenvoudigt door er eerst de ln van te nemen
ln(nln(N)/ln(n)) =
(ln(N)/ln(n))×ln(n) = ln(N) ⇔

nln(N)/ln(n) = N

Dus
B/N = n(ln(N)/ln(n)) / nln(N)/ln(n) =
n(ln(N)/ln(n)) / N ⇔ B/N = n×ln(N) / (N×ln(n))

B/N = (n/N)×(ln(N)/ln(n))

of eigenlijk, ontnuchterend

B = n×(ln(N)/ln(n))
en
B/ln(N) = n/ln(n)

⏶ derde poging sluiten

🔽 Te bewijzen valt dat het optimum bij n=e ligt, tussen 2 en 3.
B/ln(N) = n/ln(n)
Dat is minimaal als
ddn (nln(n)) = 0 ⇔
dndn × 1ln(n) + n×ddn (1ln(n)) = 0 ⇔
1ln(n) + n×d ln(n)dn × dd ln(n) (1ln(n)) = 0 ⇔
1ln(n) + n×n-1 × -(ln(n))-2 = 0 ⇔
(ln(n))-1×(1 - (ln(n))-1) = 0 ⇔
(ln(n))-1=0 of (ln(n))-1 = 1 ⇔ ln(n) = 1 ⇔

n = ∞ of n=e

⏶ QED, sluiten

Het dichtsbij e (= 2,718...) zijnde gehele getal is 3. Dus
B = n ln(N)/ln(n) wordt 3 ln(N)/ln(3)
N ln(N)ln(3) B1/(B/N)
3131
9261,33
27393
814126,75
............
21483927795
............
10000001003003333
Te vervolgen met een nieuwe list...
Al dit was bedoeld als vervolg op mijn oude blogpost "de-macht-van-zeven". Waarbij de intuitieve aanname lag dat B/N minimaal is bij n waarvoor nn=N
NnB1/(B/N)
1111
4241
27393
25641616
............
82354374916,81
............
1000000000010100100000000

donderdag 14 oktober 2021

Native tags

Geautenticeerde Members voeren Stories in. Die Stories krijgen Tags van type: 'counter', 'keyword','native', 'story', 'question', 'reaction', 'url', 'human', 'email', 'telephone'.

Keyword tags
zijn de "onderwerpen" die, zoals voorheen in prevald, voor ordening worden gebruikt. Een Member geeft handmatig aan welke onderwerp-Tag in de Story besproken is. (En plaatst die tag in een hiërarchische context.)

Door selectie van zo'n tag werden bijpassende stories getoond.

Native tags
Nu gaan we, daarnaast, het woordgebruik zelf er voor benutten

'alle woorden zijn tags'.

Natuurlijk zijn niet alle woorden even bepalend voor een story. Lidwoorden en koppelwerkwoorden bijvoorbeeld worden overal gebruikt. Het is de bedoeling dat de typerende woorden er uitspringen.

Het algoritme telt en indexeert alle gebruikte woorden. Het aantal woorden in de Tags-database bijelkaar noemen we N. En van elk gebruikt woord (i) weten we dan de globale frequentie: N(i).

Het quotiënt N(i)/N noemen we de globale proportie van woord (i).

Dit doen we ook voor elke ingevoerde story (s) met n(s) woorden. Woord (i) komt n(s,i) keer voor in de story. Dat is de lokale frequentie van woord (i) in (s).

De lokale proportie van woord (i) in story (s) is dan het quotiënt n(s,i)/n(s)

Ieder woord in elke story heeft een waarde van de lokale proportie / globale proportie (n(s,i)/n(s))/(N(i)/N) = (N/n(s))*(n(s,i)/N(i))
Laat die waarde de rangorde bepalen voor woord (i) in story (s).

Met een hoge rangorde typeert het woord vervolgens de story.
Het woord is dan een native tag.

woensdag 8 september 2021

herontwaken

In 2013 is prevald in de ijskast gezet.
Nu -2021- in contact met de jongens van digitale fitheid, viel de naam weer, meerdere keren.
Reden om het weer eens te bekijken.
De oude code bleek inmiddels niet meer operationeel te maken. 
Dan maar weer geheel opnieuw opzetten. Om niet met lege handen te staan, mocht het van pas komen.

In de ontwikkelomgeving van Codeigniter4, om te beginnen met de harde kern.
De kern bestaat uit een netwerkstructuur van Model: Net waarin beams de connectie vormen 
tussen tags onderling van Model: Tag.

De tags hebben elk een tagType uit meerdere mogelijkheden waarvan story van Model: Story er één is. Andere tagTypes zijn: 'keywords', 'question', 'reaction', 'human', 'email', 'url', 'telephone', eventueel aan te vullen naar behoefte.


zaterdag 1 augustus 2020

evalueren

NRC 1 augustus 2020

vrijdag 9 augustus 2019

Het Benny Neymaneffect

(oorspronkelijke verschijning)

Als je t mij vraagt spelen bij het uit de hand lopen van ict-ontwikkelingen bij overheid en in grote organisaties twee factoren een belangrijke rol.

De eerste factor heeft volgens het Benny-Neyman-effect ("ik weet niet hoe") te maken met incompetentie. Maar incompetent of niet, iedereen is wel ict-gebruiker en heeft een mening. En blijft die doordrijven.

De tweede factor is de schier onuitputtelijkheid van mogelijkheden die ict in zich draagt. Ieders wens kán dus ook vervuld worden. En de softwarehuizen zullen er geen rem op zetten want de kassa blijft rinkelen.

Maar dan komt Ross Ashby's Law of Requisite Variety om de hoek kijken, die velen hebben moeten leren maar die maar weinigen begrijpen. Simpel gesteld zegt die Law dat naarmate je meer wilt het meer moeite méér kost om dat te bewerkstelligen.

Maar niet alle hoop is verloren. Ik weet wel een oplossing. Kom maar op met een opdracht ...

dinsdag 3 april 2012

vrijdag 30 maart 2012