använda notationen för asymptotisk tillväxt av funktioner för att beskriva komplexitet hos algoritmer och beräkningsproblem.
härleda ekvationer för en algoritms komplexitet och lösa dessa.
använda vanliga algoritmiska tekniker som dynamisk programmering, "giriga" algoritmer, etc.
lösa enkla problem genom grafalgoritmer, strängmatchning och flödesnätverk.
definiera komplexitetsklasserna P och NP och diskutera den öppna frågan om P=NP.
presentera och diskutera material relaterat till kursens innehåll muntligt och skriftligt med för utbildningsnivån lämplig färdighet.
Kursinnehåll
Funktioners tillväxt, rekursiva algoritmers komplexitet. Datastrukturer för disjunkta mängder. Dynamisk programmering, "giriga" algoritmer, grafalgoritmer, t.ex. kortaste vägen och minimalt uppspännande träd. Maximalt-flödesproblem i flödesnätverk. Algoritmer för strängmatchning. Teori för svårlösta problem.
Förutsättningar
60 hp varav 15 p matematik och 25 hp datavetenskap. Alternativ 45 hp in om Masterprogram i språkteknologi. Genomgången Programkonstruktion och datastrukturer varav 9 hp ska vara avklarade, alternativt genomgången Algoritmer och datastrukturer I. Engelska 6 (med en svensk kandidatexamen uppfylls kravet på engelska).