Algoritmeoptimisering og analyse samt praktiske implementationer
make clean; make; ./out/main
Algoritmeoptimering og deres praktiske implementationer.
Jeg vil undersøge hvilke metoder der almindelig bruges til at optimere algoritmer og hvordan man klassificerer de metoder. Efterfølgende vil jeg undersøge, hvordan matematik bruges til at analysere algoritmers tidskompleksitet med Theta, Omega og Big-Oh notation og spacekompleksitet ift. computerens RAM osv. Efterfølgende vil jeg også undersøge og udforske programmer, der bruges til at benchmarke og sammenligne algoritmer. Til sidst vil jeg undersøge og udforske, hvilke praktiske eksempler der findes på algoritmeoptimering i større softwareprojekter, og hvilke resultater det har givet.
Til dette projekt har jeg tænkt mig at bruge Programmering B som mit studieretningsfag og Matematik A som mit A-fag. Grunden til, at jeg bruger programmering, er for at forklare kode og vise eksempler fra praktiske implementationer i virkeligheden. Jeg bruger Matematik A-faget til at forklare matematikken og analysere algoritmerne i matematisk forstand, og for at kunne sætte teori i brug til analysen af algoritmerne implementeret i Programmering.
For at finde viden vil jeg bruge metoden informationssøgning og bøger. For empiri og teori vil jeg læse 'Introductions to Algorithms' (third edition), som giver indsigt i programmering og matematik i pseudokode, samt introduktionen til matematikken for at analysere algoritmers tids- og spacekompleksitet i computere. Følgende vil jeg lave informationssøgning på https://ocw.mit.edu og https://google.com.
Den eneste kilde, jeg har lige nu, er 'Introductions to Algorithms', da jeg har læst det meste af bogen. Ellers synes jeg, at emnet er spændende og vil derfor gerne undersøge mere.