Datalogi
Vejleder: Mads Rosendahl
Projekt-kim
Et
andetsemesterprojekt må gerne komme tæt på de mere grundlæggende begreber i
datalogi. Til sådanne begreber hører beregnelighed, afgørlighed og
kompleksitet.
Ideer:
1. En traditionel
model for beregnelighed er baseret på Turing maskinen med tekst som inddata og
uddata. Ser man på en programmerbar robot er inddata landskabet og sensorer, og
uddata kan være robottens bevægelser. Man kan simulere en konkret robot eller
lave en fortolker for robotprogrammer. En del af eksperimentet kan være at
sammenholde med en faktisk robots opførsel. Som robot kan man benytte en
legorobot.
2. Neurale net
kan ses som et alternativ til den beregningsmodel der benyttes mere
traditionelt. Programmeringen sker ved en indlæringsproces således at et
program kan gemme sine erfaringer og derved give bedre resultater med tiden.
Man kan prøve at konstruere et neuralt net til et specifikt formål for derved
at undersøge om det er en brugbar måde at udtrykke beregninger.
3. Ved datakompression
søger man at mindske redundansen i den information der skal repræsenteres. Ved
billeder bruger man ofte jpeg formatet; i arkiver bruges ofte tiff formatet.
Man kan undersøge hvor god kompression sådanne metoder giver og sammenholde det
med hvad der forventes og hvad meget man kan håbe på.
4. En af de helt
grundlæggende datalogiske begreber er kompleksitet. For en række
problemstillinger kan man vise en mindstegrænse for køretid af ethvert program
der løser det. Hvis man eksperimentelt vil undersøge om det så også passer for
konkrete programmer kræver det at man kan måle køretider på en pålidelig og
reproducerbar form. Det er ikke trivielt på computere med cache, dynamiske
hopforudsigere, just-in-time oversættelse og optimering etc. Godt eksperimentelt
arbejde kræver at man kan vurdere fejlkilder. Et udgangspunkt for et projekt i
denne retning kunne f.eks. være at undersøge om det er rigtigt at statiske
metodekald er hurtigere end andre kald i Java.