Globale en locale optima

An article, posted 8 months ago filed in oplossingen, algorithm, programmeren, problemen, ai, politiek, optima & optimalisatie.

Globale en locale optima

Vaak worden er oplossingen gepresenteerd voor problemen. Soms zijn de oplossingen voor de hand liggend, voor eenvoudige problemen. Maar in onze wereld zijn problemen steeds minder vaak eenvoudig. De oplossingen zijn daarom veelal ook niet eenvoudig. Of wellicht zijn ze wel eenvoudig, maar te moeilijk om te realiseren. En soms worden ingrepen gepresenteerd als oplossingen maar zijn ze er vooral om de status quo te behouden (of erger), maar ik wil hier uitgaan van goede intentie.

Grafiek ter illustratie met een lokaal en een hoger liggend globaal optimum. Punt 1 wijst een lokaal optimum aan, punt 2 een dal, waarbij je kunt denken terug te moeten naar punt 1, niet wetende dat er nog elders een globaal optimum voorbij punt 3 is op een andere plek.

Ontwikkelaars schrijven soms algoritmes om tot oplossingen te komen. Het ideaal daarbij is om te komen tot een globaal optimum. Een bekend voorbeeld is routeberekening. Wanneer je een route p…

Continue reading...

Voorkom voortijdige optimalisaties

An article, posted 9 months ago filed in javascript, programming, premature optimisation, optimisation, premature, optimalisatie, versnellen, tijd & kostbaar.

Voortijdige optimalisatie, of premature optimisation, is een bekende neiging van veel software ontwikkelaars. Het is een idee verbonden aan Donald Knuth:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

Veel ontwikkelaars halen eer uit het maken van “slimme” oplossingen die het draaien van de code net een beetje sneller zouden kunnen maken. De nadruk ligt op zouden omdat het veelal niet gebaseerd is op het daadwerkelijk meten aan de applicaties. Slechts door het applicatiegedrag goed te monitoren kunnen de échte performance problemen geïdentificeerd worden.

Erger is dat er kosten verbonden zijn aan zulke voortijdige optimalisaties:

  1. Het kost vaak extra tijd om een feature op te leveren (wat mij betreft niet het ergste)
  2. Het levert vaak code op die minder i…

Continue reading...

Computers worden steeds slimmer

An article, posted almost 15 years ago filed in interactie, automatisering, watson, deep blue, ibm, computer systemen, mens-machine interactie, slimmer, verstandl, iq, optimalisatie, investering, aandelenhandel, kasparov & algoritmes.

Onlangs zagen we het weer: Watson heeft gewonnen van de mens. Computers worden steeds slimmer. Er zijn situaties waarin computers betere beslissingen maken dan mensen. Computers schaken tegenwoordig beter dan mensen (de voorloper van Watson versloeg jaren geleden al de Kasparov) en moderne aandelenhandel is niet meer bij te houden door mensen: algoritmes maken veel sneller beslissingen dan mensen kunnen (een leuk inzicht daarin werd onlangs nog gegeven door VPRO's tegenlicht). 

Geweldig natuurlijk dat dit kan. Toch moet dit niet gezien worden als 'overwinningen' van de computer. Niet alleen omdat deze machines toch ook wel weer door mensen zijn gemaakt. Belangrijker nog is dat aan deze winnende computersystemen gigantische investeri...

Continue reading...