Oosthoek Encyclopedie

Oosthoek's Uitgevers Mij. N.V (1916-1925)

Gepubliceerd op 27-06-2020

heuristische programmering

betekenis & definitie

programmering waarbij een probleem opgelost wordt volgens een soortgelijk proces als de mens dat doet. Bij vele problemen is de oplossingsmethode niet bekend of niet in de vorm van een ondubbelzinnige ➝algoritme te geven.

Toch kan een mens vaak een bruikbare oplossing vinden door zijn ervaring, intuïtie en vuistregels te gebruiken (b.v. ➝handelsreizigersprobleem). Heuristische programmering tracht deze ervaringsregels voor een computer te programmeren. Terwijl bij een geprogrammeerde algoritme succes gegarandeerd is (gegeven voldoende tijd en nauwkeurigheid), hoeft dit bij een heuristisch programma niet te gelden. Herhaald oplossen hoeft ook niet tot hetzelfde resultaat te leiden.In vele gevallen (b.v. schaken, beslissingsproblemen) is er een (soms groot) eindig aantal mogelijke keuzen. Iedere keuze leidt opnieuw tot een groot aantal mogelijkheden en deze vertakking zet zich voort. Er is als het ware sprake van een boom van keuzen. Voortzetting van de boom en evaluatie van alle eindresultaten is zelfs voor de snelste computer onmogelijk. Men moet dus trachten het aantal vertakkingen door uitsluitingsregels te beperken; deze deelboom kan dan verder worden onderzocht. Hierbij moeten dus vuistregels worden toegepast die geleidelijk verbeterd worden.

Soms is het mogelijk terug te werken van een mogelijk resultaat. Een ander heuristisch principe is het transformeren van het probleem, zodanig dat het equivalent wordt aan een reeds opgelost probleem. Voorbeelden:

1. formuleren en bewijzen van wiskundige stellingen, m.n. in de mathematische logica en vlakke meetkunde;
2. ➝mechanisch vertalen;
3. ➝patroonherkenning;
4. schaken en dammen met een computer;
5. oplossen van rekenkundige puzzels of legpuzzels;
6. machinaal componeren;
7. leerprogramma’s, waarbij men aspecten van het menselijk leergedrag op een computer tracht na te bootsen. Heuristische programmering is een onderdeel van de informatica. Met heuristische programma’s kan een computer problemen oplossen waarvoor intelligentie vereist is (➝kunstmatige intelligentie). Heuristische programmering heeft tot enkele opmerkelijke successen geleid, maar is in het algemeen veel moeilijker dan werd verwacht.

LITT. E.A.Feigenbaum en J.Feldman (red.), Computers and thought (1963); Computers and computation (readings from Scientific Am., 1971).