|
En stor del af arbejdet inden for teoretisk datalogi bliver brugt til at finde effektive løsninger til datalogiske problemer. Inden man forsøger at finde en hurtig og effektiv løsning, er det dog vigtigt at sikre sig, at en løsning faktisk findes -- for en del problemer, herunder flere af praktisk betydning, kan man vise, at der ingen løsninger findes. Ved at kende de principielle grænser for beregnelighed undgår man at spilde tiden på nyttesløse forsøg på at finde algoritmer for uberegnelige problemer. Som et eksempel vil man i Software Verification gerne kunne tjekke et programs korrekthed og særligt hvorvidt programmet terminer vha. en computer (dvs. effektivt). Imidlertid viser dette problem sig som mange andre relaterede problemer at være beviseligt uafgørligt, ligegyldigt hvor meget tid og hukommelse vi ønsker at bruge på at finde en løsning. Beregninger, der involverer reelle tal, er i endnu højere grad begrænset af de principielle grænser for, hvad algoritmer kan gøre: Hvis det givne input for programmet kun er en approksimation (fx. hvis input kommer fra en fysisk måling og bliver givet med en hvis fejlmargin), bliver fortegnet og mere generelt enhver ikke-kontinuert reel funktion uberegnelig pga. numerisk ustabilitet. Selv under forudsætning af at man kan foretage beregninger med reelle tal eksakt (BSS-modellen), forbliver mange funktioner uberegnelige. Dette kursus giver en introduktion til dette område inden for beregnelighed.
|