Tolv forelæsninger i algoritmik

Størrelse: px
Starte visningen fra side:

Download "Tolv forelæsninger i algoritmik"

Transkript

1 Tolv forelæsninger i algoritmik ved Keld Helsgaun Forelæsning 1: Algoritmebegrebet Hvad er en algoritme? Denne første forelæsning besvarer spørgsmålet og giver en introduktion til algoritmebegrebet. Der gives en række definitioner af begrebet, spændende fra en simpel, intuitiv definition til en stringent matematisk definition. Ofte er der mere end én algoritme, der kan løse et givet problem. Vi diskuterer, hvad der forstås ved en god algoritme. Egenskaber som korrekthed, effektivitet og simpelhed er ofte værd af efterstræbe, men de kan ofte være i konflikt med hinanden. Hvorfor bekymre sig om effektivitet, når man har adgang til dagens hurtige computere? Vi diskuterer det stadige behov for effektive algoritmer, trods den teknologiske udvikling. Vi ser nærmere på en klassisk algoritme, Euclids algoritme. Algoritmen kan benyttes til bestemmelse af største fælles divisor for to heltal, og er bl.a. er nyttig ved forkortelse af brøker. Den blev udviklet cirka 300 år f. Kr. og er en af de første ikke-trivielle algoritmer i historien. Vi ser forskellige udgaver af algoritmen (udtrykt i Java) og sammenligner deres effektivitet på et konkret regneeksempel. At algoritmen generelt er meget effektiv kan konstateres ved hjælp af såkaldt algoritmeanalyse. Med dette værktøj har man påvist, at algoritmen har et tidsforbrug, der vokser logaritmisk. Resultaterne fra denne analyse vises. Der gives en kort indføring i logaritmer. Deres langsomme vækst fremhæves. Efter gennemgangen af Euclids algoritme præciseres algoritmebegrebet. En algoritme defineres nu som en sekvens af operationer, der opfylder fire egenskaber: endelighed, entydighed, effektfuldhed og korrekthed. Vi ser på, om Euclids algoritme har disse egenskaber, og vi diskuterer, hvorvidt opskrifter i en kogebog er algoritmer efter denne definition. Algoritmer skal på en eller anden måde kommunikeres. En række notationsformer for algoritmer omtales, bl.a. natursproglig beskrivelse, rutediagrammer og programmeringssproglig beskrivelse. 1

2 Forelæsningens anden del giver en introduktion til design og analyse af algoritmer. Det sker gennem løsning af følgende konkret algoritmiske problem. Lad der være givet et stort netværk af computere, der kan kommunikere indbyrdes For hvert par af computere er oplyst, om der eksisterer en direkte forbindelse imellem dem. Vi ønsker at designe en algoritme, der hurtigt er i stand til at afgøre, om der eksisterer en forbindelse imellem to computere, enten i form af en direkte forbindelse eller i form af en serie af sådanne forbindelser. Dette problem er det såkaldte Union-find-problem i forklædning. Vi ser på mulige løsningsalgoritmer og sammenligner deres effektivitet. For et netværk på størrelse med Internettet kan en af løsningsalgoritmerne risikere at skulle bruge flere tusind år, mens en anden af algoritmerne bruger under et minut! 2

3 Forelæsning 2: Elementære datastrukturer Formålet med denne forelæsning er at give en indføring i elementære datastrukturer og abstrakte datatyper. Forelæsningen indledes med definitioner af begreberne type, datatype, abstrakt datatype og datastruktur. Der lægges vægt på at fremhæve fordele ved brug af abstrakte datatyper. Deres realisering i Java omtales. Nu følger en gennemgang af arrays. Vi ser på, hvorledes arrays noteres og tilgås i Java. Som et konkret eksempel på anvendelse gennemgås et Java-program, der implementerer Eratosthenes si, en algoritme til generering af primtal. Effektiviteten af dette program undersøges ved hjælp af målinger af køretiden for programmet. Det vises, hvorledes sådanne tidsmålinger kan foretages i Java. Der gives en kort gennemgang af 2-dimensionale arrays, herunder notation, lagring og et simpelt eksempel på anvendelse. Herefter defineres begrebet hægtet liste, og vi diskuterer fordele og ulemper ved at bruge hægtede lister i stedet for arrays. Implementering af hægtede lister med tilhørende grundoperationer (indsættelse og sletning) vises ved hjælp af konkret Java-kode. Hvis der er tale om en enkelthægtet liste, kan visse operationer på listen ikke udføres effektivt. Her kommer brugen af dobbelthægtede lister ind i billedet. Vi ser på implementeringen af en generel Java-pakke til håndtering af dobbelthægtede lister. Efter gennemgangen af de elementære datastrukturer, behandles de abstrakte datatyper stak og kø. Vi ser, hvorledes en stak og en kø kan realiseres i Java. Den konkrete repræsentation har form af et array eller en hægtet liste. En stak kan for eksempel benyttes til evaluering af aritmetiske udtryk. Det demonstreres, hvorledes en stak kan benyttes til at omskrive et sædvanligt aritmetisk udtryk til postfixrepræsentation, og hvorledes en stak derefter kan benyttes til at evaluere udtrykket ud fra dets postfix-repræsentation. Desuden vises, hvorledes en stak kan benyttes til håndtering af procedurekald i højere programmeringssprog. Gennemgangen af de abstrakte datatyper kø og stak afrundes med en beskrivelse af deres realisering ved hjælp af Javas API-klasser Vector og Stack. Anden del af forelæsningen omhandler træer. Den centrale terminologi, der knytter sig til træer, gennemgås, og der nævnes en række eksempler på anvendelse. Et vigtigt særtilfælde af et træ er et såkald binært træ. Faktisk kan ethvert træ repræsenteres som et binært træ. 3

4 Et parsetræ for et aritmetisk udtryk er et eksempel på et binært træ. Vi ser, hvorledes et sådan træ kan repræsenteres i Java, og hvorledes det er muligt at opbygge et parsetræ ud fra postfix-repræsentationen for det aritmetiske udtryk. Endelig gennemgås, hvorledes et binært træ kan gennemløbes systematisk. Brug af stak og kø til dette formål demonstreres gennem konkret Java-kode. 4

5 Forelæsning 3: Design, verifikation og analyse af algoritmer Design, verifikation og analyse er algoritmikkens tre grundelementer. Design omhandler metoder og teknikker til konstruktion af algoritmer. Verifikation benyttes til at påvise algoritmers korrekthed, mens analyse benyttes til at vurdere deres ressourceforbrug (tid og plads). I denne forelæsning gives en introduktion til hvert af disse områder. Tiden tillader ikke, at der gås i dybden, men forhåbentlig kan forelæsningen give inspiration til videregående studier inden for områderne. Af forelæsningens indhold indgår kun rekursion og O-notation i pensum. Design af algoritmer er en kreativ proces. Der findes ingen generel mekanisk metode til udvikling af en algoritme. Derimod findes der en række teknikker, eller rettere tænkeregler, som ofte fører til både korrekte og effektive algoritmer. Nogle af disse teknikker er baseret på matematisk bevisførelse, mens andre blot har karakter af gode råd, også kaldet heuristikker. I forelæsningen vises eksempler på begge metodetyper. Et eksempel på en heuristisk baseret teknik er Polyas problemløsningsteknik. Teknikken beskrives i korte træk, og vi ser, hvorledes teknikken kan bruges i praksis til løsning af et problem (det såkaldte berømthedsproblem). Herefter ser vi på teknikker baseret på matematisk bevisførelse. Bevisførelse ved modstrid og bevisførelse ved induktion beskrives, og deres anvendelse illustreres ved hjælp af simple eksempler. Induktion er ikke blot en bevisteknik. Induktion kan også benyttes konstruktivt til design af algoritmer. Dette illustreres gennem en række simple eksempler (sortering, beregning af polynomier og beregning af den maksimale delsekvenssum). Del-og-hersk er en vigtig problemløsningsteknik. Brug af denne teknik vil ofte resultere i algoritmer, der er både overskuelige og effektive. Teknikkens grundide forklares og illustreres gennem et eksempel (potensopløftning). Teknikken realiseres sædvanligvis ved hjælp af rekursion. Emnet rekursion behandles herefter indgående. Der fremhæves en række fordele ved brug af rekursion, og der gives en række eksempler på anvendelse. Vi ser såvel eksempler på rekursive datastrukturer (lister og binære træer) som på rekursive algoritmer (fakultetsfunktionen, gennemgang af binære træer, tårnene i Hanoi, søgning i en labyrint og fraktaler). For alle eksempler vises den komplette Java-kode. Der gives en række tænkeregler til brug for udvikling af rekursive algoritmer. Det fremhæves, at disse regler har et nært slægtskab med induktion. Rekursion har omkostninger i tid og plads, og i nogle tilfælde kan det være ønskeligt at fjerne rekursionen. Det påvises, at en rekursiv algoritme altid kan transformeres til en 5

6 ikke-rekursiv algoritme. Transformationsprocessen illustreres ved hjælp af eksempler: generel fjernelse af halerekursion og fjernelse af rekursionen i en preorder-gennemgang af et binært træ. I anden del af forelæsningen tager vi fat på verifikation og analyse af algoritmer. Behovet for at kunne ræsonnere om algoritmer fremhæves, hvorefter de mest centrale begreber omkring algoritmeverifikaton defineres (partiel korrekthed, total korrekthed, programpåstande, før- og efter-betingelser og løkkeinvarianter). Der gives et simpelt eksempel på verifikation, nemlig et bevis for, at en algoritme til heltalsdivision er totalt korrekt. Herefter gives en indføring i den såkaldte O-notation, en notation, der benyttes til at angive en øvre grænse for en algoritmes ressourceforbrug. Notationen beskrives såvel gennem en intuitiv definition som en matematisk stringent definition. Nogle af de vigtigste regneregler for O-notationen forklares, og der vises eksempler på brug i forbindelse med en række simple algoritmer. O-notationens begrænsninger nævnes. 6

7 Forelæsning 4: Sortering I Ved sortering forstås en proces, hvor elementerne i en datamængde ordnes i rangorden. Tænk for eksempel på en telefonbog, hvor abonnenterne er ordnet alfabetisk efter deres navn. Sortering indgår på en eller anden måde i de fleste programmer. Mange problemer kan nemlig løses mere effektivt, hvis inddata er sorteret. Som eksempler kan nævnes opslag i en telefonbog og bestemmelse af poster, der er fælles for to filer. Denne forelæsning er den første af to forelæsninger om sortering. Forelæsningen omhandler følgende elementære metoder: Sortering ved udvælgelse, Sortering ved indsættelse, Shellsort, Sortering ved tælling og Sortering ved adresseberegning. Indledningsvis gives såvel en uformel som en matematisk definition af sortering. Den matematiske definition er baseret på permutationer. En permutation er en nyttig matematisk abstraktion, ikke blot i forbindelse med sortering, men også i forbindelse andre typer af algoritmer. Begreber som intern og ekstern sortering indføres (også selvom ekstern sortering ikke behandles yderligere i kurset). Herefter beskrives de forskellige sorteringsalgoritmer. For hver algoritme beskrives det bagvedliggende princip, og en tilsvarende Java-metode implementeres. Vi ser algoritmerne i funktion ved hjælp af animering, og vi vurderer deres effektivitet ved hjælp af algoritmeanalyse og ved hjælp af empiriske tidsmålinger. For metoderne Sortering ved udvælgelse og Sortering ved indsættelse gives såvel iterative som rekursive algoritmer. De rekursive udgaver fremkommer ved brug af induktion som designteknik (jævnfør forelæsning 3). Forelæsningen afsluttes med en definition af stabile sorteringsmetoder samt en kort gennemgang af en teknik til sortering af store poster. 7

8 Forelæsning 5: Sortering II I denne forelæsning gennemgås en række avancerede sorteringsmetoder. Metoderne er en smule vanskeligere at implementere end de elementære metoder, men de udmærker sig ved at være meget effektive i praksis. I første del af forelæsningen behandles Quicksort og Mergesort. For begge metoder beskrives de bagvedliggende principper, og en tilsvarende Java-metode implementeres. Algoritmerne animeres, og deres tidsforbrug bestemmes (såvel analytisk som empirisk). Vi ser, hvorledes effektiviteten af en basal udgave af Quicksort kan forbedres ved en række simple ændringer. I tilknytning til Quicksort, ser vi også, hvorledes algoritmens grundbestanddele kan benyttes til effektivt at udvælge det k te mindste element af en mængde. Både Quicksort og Mergesort er baseret på del-og-hersk-teknikken, og det demonstreres, hvorledes begge algoritmer kan udledes ud fra en og samme skabelon. Anden del af forelæsningen indledes med en introduktion til prioritetskøer. Vi ser, hvorledes en prioritetskø kan implementeres i Java. Som datastruktur kan vi for eksempel benytte et uordnet eller et ordnet array. Mere effektivt er det dog, at benytte sig af en såkaldt binær hob. Vi ser, at brugen af en binær hob muliggør effektive algoritmer for både indsættelse og sletning i en prioritetskø, og at en binær hob kan realiseres ved hjælp af et array. Den komplette Java-kode for indsættelse og sletning gennemgås. Desuden angives en lineær algoritme til konstruktion af en binær hob. En binær hob kan benyttes til at opnå en sorteringsmetode, Heapsort, med et garanteret køretidsforbrug, der er O(n logn). Det nævnes, at enhver sorteringsalgoritme, der er baseret på nøglesammenligninger, nødvendigvis kræver mindst O(n logn) sammenligninger i værste tilfælde. Radixsortering er en sorteringsmetode, der ikke benytter nøglesammenligninger. Metoden er lineær i tid (som en funktion af antallet af poster). Den beskrives kort, men indgår ikke i pensum. Forelæsningen afsluttes med en oversigt over kriterier for valg af sorteringsmetode. 8

9 Forelæsning 6: Søgning I Søgning omhandler genfinding af lagret information. I mange programmer er søgning den mest tidsforbrugende proces. Kendskab til effektive søgemetoder er derfor særdeles nyttigt. Denne forelæsning er den første af to forelæsninger om søgning. Forelæsningen omhandler sekventiel og binær søgning. Indledningsvis defineres begrebet søgning, og der gives en overordnet klassifikation af søgemetoder. Herefter introduceres en ordbog (engelsk: dictionary), en abstrakt datatype til søgning. Det konstateres, at valg af bagvedliggende datastrukturer er af afgørende muligheden for at opnå effektiv søgning. Hvis vi benytter et usorteret array eller en usorteret liste, må vi indskrænke os til sekventiel søgning, en metode, der er lineær i tid. Hvis datastrukturen derimod er et sorteret array, kan vi benytte binær søgning og opnå logaritmisk tidsforbrug. Vi ser også, at det er muligt at opnå dobbeltlogaritmisk tidsforbrug ved brug af interpolationssøgning. Den konkrete Java-kode, der skal til for at realisere disse søgemetoder, gennemgås i detaljer. Dernæst ser vi på binære søgetræer. Operationerne indsættelse, søgning og sletning i et binært søgetræ illustreres ved hjælp af figurer, og de implementeres i Java. Såvel iterative som rekursive udgaver af algoritmerne præsenteres. I anden del af forelæsningen ser vi på, hvorledes et binært søgetræ kan balanceres, så tidsforbruget for operationerne bliver logaritmisk. Først forklares grundideen bag de såkaldte træer ved hjælp af figurer, og det konstateres, at såvel tiden for indsættelse og søgning er logaritmisk. Implementeringen af indsættelse i træ skitseres i Java. Formålet med at introducere træer er primært at forenkle forklaringen af operationerne i et rød-sort-træ, en af de mest effektive datastrukturer til at opnå balancerede binære søgetræer. Ethvert træ kan nemlig transformeres til et rød-sort-træ, og omvendt. Så alle operationer i et rød-sort-træ kan umiddelbart forklares ud fra operationer i det tilsvarende træ. Vi ser på en Java-implementation af indsættelse i et rød-sort-træ. Koden benytter sig af rekursion og forekommer at være lettere at forstå end den iterative kode, der er angivet i lærebogen. Forelæsningen afsluttes med en oversigt over nogle andre datastrukturer til realisering af binære søgetræer (bl.a. AVL-træer og splay-træer) 9

10 Forelæsning 7: Søgning II I denne forelæsning gennemgås søgning ved brug af nøgletransformation, også kaldet hashing. Efter en kort beskrivelse af den grundlæggende ide, ser vi på de principper, der skal lægges til grund ved konstruktion af hashfunktioner. Der gives eksempler på hashfunktioner, og der redegøres for, hvorfor hashtabellens størrelse normalt bør vælges som et primtal. At to nøgler transformeres til den samme tabelindgang kaldes for en kollision. Kollisioner kan normalt ikke undgås, men de kan behandles mere eller mindre effektivt. Vi ser på en række kollisionsstrategier (Separat kædning, Lineær prøvning og Dobbelt hashing). Fordele og ulemper ved strategierne diskuteres. Java indeholder klassen Hashtable, som gør det let at bruge hashing i Java-programmer. Koden for denne klasse gennemgås. Hashing er en meget effektiv søgemetode. Med en vis påpasselighed kan opnås et tidsforbrug, der er uafhængigt af antallet af poster i filen! Hashing bør dog ikke altid vælges som søgemetode. Der gives en række grunde til at andre metoder, f.eks. metoder baseret på binære søgetræer, foretrækkes i nogle situationer. 10

11 Forelæsning 8: Strengbehandling Denne forelæsning omhandler to emner inden for området strengbehandling, nemlig strengsøgning og syntaksanalyse. Første del af forelæsningen omhandler strengsøgning. Efter præsentationen af en række grundlæggende begreber, der knytter sig til strenge, præsenteres den opgave, der ønskes løst, nemlig søgning efter en forekomst af en streng i en given tekst. Opgaven er velkendt fra tekstbehandlingssystemer. Først præsenteres en simpel algoritme, der benytter sig af rå kraft til at løse opgaven. Algoritmen præsenteres i Java, og dens gennemsnitlige og maksimale tidsforbrug bestemmes. Vi ser nærmere på den metode, der tilbydes til strengsøgning i Javas API, metoden indexof i klassen String. Det konstateres, at algoritmen foretager mange overflødige tegnsammenligninger, og at der således er mulighed for forbedringer. En sådan forbedring udgør Knuth-Morris-Pratt-algoritmen. Denne algoritme gennemgås i detaljer. Vi ser, gennem et kørselseksempel, at effektiviteten er forbedret i forhold til den simple algoritme. Det påvises, at algoritmen kan baseres på brugen af endelige tilstandsmaskiner. Desuden vises et andet eksempel på praktisk brug af endelige tilstandsmaskiner, nemlig tabelstyret indlæsning af decimaltal. Derefter gennemgås en anden algoritme til strengsøgning, nemlig Boyer-Moore-algoritmen. Algoritmen regnes normalt for at være en af de mest effektive algoritmer til formålet. Endelig gennemgås Rabin-Karp-algoritmen. Denne algoritme er forholdsvis let at implementere og er interessant, fordi den benytter sig af hashing. Denne del af forelæsningen afrundes med forevisning af resultaterne fra en empirisk undersøgelse af de gennemgåede algoritmers effektivitet. I forelæsningens anden del beskæftiger vi os med syntaksanalyse af strenge. Vi ser på to værktøjer til at beskrive grammatikken for et sprog, nemlig BNF-notation og syntaksdiagrammer. Herefter udvikles et Java-program, der er i stand til at afgøre, om en indlæst streng er et aritmetisk udtryk. Programmet benytter sig af såkaldt rekursiv nedstigning og er et illustrativt eksempel på brugen af rekursion. Til sidst udvides programmet, så det kan beregne værdien af et indlæst aritmetisk udtryk. 11

12 Forelæsning 9: Grafalgoritmer I En graf er nyttigt abstrakt begreb. En graf benyttes til at beskrive relationer imellem data. En graf er et kraftfuldt værktøj til modellering og benyttes f.eks. til modellering af datanetværk, projektplanlægning og diagrammering (f.eks. UML-diagrammering). Denne forelæsning er den første af to forelæsninger om grafer. Først introduceres den terminologi, der knytter sig til grafer. Herefter ser vi på forskellige datastrukturer til repræsentation af grafer. Repræsentation ved hjælp af kantmængde, nabomatrix og nabolister gennemgås i detaljer. Vi ser på Java-koden for de tre repræsentationsformer, opgør deres pladsbehov og diskuterer deres hensigtsmæssighed i forhold til løsning af en række basale grafproblemer. Anden del af forelæsningen omhandler metoder til søgning i grafer. Vi ser på systematisk gennemgang af en graf ved hjælp af dybde-først- og bredde-først-søgning. Java-koden for de to søgestrategier gennemgås, og søgeprocessen visualiseres. Vi ser, hvorledes dybde-først-søgning kan anvendes til at løse visse problemer vedrørende sammenhæng i grafer. For eksempel kan samtlige sammenhængende komponenter i en graf bestemmes ved dybde-først-søgning. 12

13 Forelæsning 10: Grafalgoritmer II Denne forelæsning omhandler en række centrale algoritmer for vægtede grafer og for orienterede grafer. Første del af forelæsningen omhandler algoritmer til løsning af to praktiske problemer i tilknytning til vægtede grafer, nemlig bestemmelse af et minimalt udspændende træ og bestemmelse af en korteste vej imellem to knuder i en graf. Det vises, at begge problemer kan løses ved hjælp af bedste-først-søgning. Mens dybde-først- og bredde-først-søgning anvender sig af henholdsvis en stak og en kø, anvender bedste-først-søgning sig af en prioritetskø. Vi ser, at dybde-først- og breddeførst-søgning blot er specialtilfælde af bedste-først-søgning. Der præsenteres to algoritmer til bestemmelse af et minimalt udspændende træ, nemlig Prims algoritme og Kruskals algoritme. Algoritmerne har forskellig kompleksitet, men er begge baseret på anvendelse af en og samme grafteoretiske sætning. Der præsenteres en algoritme til bestemmelse af alle korteste veje fra en given knude til enhver anden knude, nemlig Dijkstras algoritme. Det observeres, at Prims algoritme og Dijkstras algoritme kun adskiller sig kun ved deres specifikation af prioritet. De gennemgåede algoritmer er alle eksempler på såkaldte grådige algoritmer, d.v.s. algoritmer, der opnår optimum ved i hvert skridt at gøre det, der aktuelt synes at være bedst, uden hensyn til fremtidige konsekvenser. For samtlige algoritmer gennemgås den tilhørende Java-kode. Udførelsen visualiseres, og algoritmernes kompleksitet beregnes. I anden del af forelæsningen ser vi på en række fundamentale algoritmer, der knytter sig til orienterede grafer. Vi ser først, hvorledes dybde-først-søgning kan benyttes til at finde alle de knuder, der kan nås fra en given knude. Hvis der er mange søgninger af denne art, kan det være en fordel, at bestemme grafens såkaldte transitive afslutning. Den transitive afslutning opnås ved at udvide grafen med orienterede kanter imellem de par af knuder, hvor der findes en vej fra den ene knude til den anden. Vi ser på Warshalls algoritme til effektiv bestemmelse af den transitive afslutning i grafer, der er repræsenteret ved en nabomatrix. Muligheden for at benytte parallelitet i implementeringen illustreres ved brug af Javas indbyggede klasse BitSet. Det påvises, at Floyds algoritme til bestemmelse af alle korteste veje i en vægtet, orienteret graf fremkommer ved en simpel ændring af Warshalls algoritme. Til sidst omtales en vigtig delmængde af orienterede grafer, nemlig orienterede grafer uden cykler (DAGs). Sådanne grafer har mange praktiske anvendelser. For eksempel benyttes de til netværksplanlægning, en teknik til at foretage beregninger på planlægnings- 13

14 opgaver. Ved hjælp af netværksplanlægning kan man blandt andet bestemme varigheden af et projekt samt bestemme projektets kritiske aktiviteter, d.v.s. de aktiviteter, for hvilke en forsinkelse vil bevirke, at hele projektet forsinkes. Forud for disse beregninger foretages en såkaldt topologisk sortering af grafens knuder. Knuderne ordnes på en række, så alle orienterede kanter vender samme vej. Vi ser på to forskellige algoritmer til topologisk sortering (algoritmen fra lærebogen, samt en noget simplere ). 14

15 Forelæsning 11: Parallelle algoritmer. Dynamisk programmering De fleste computere i dag er variationer over den såkaldte von Neumann model: instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem en ad gangen. Imidlertid vinder en række nye maskiner frem, som tillader udførelse af mange instruktioner samtidigt (i parallel). Disse maskiner stiller krav om kendskab til algoritmer, der kan udnytte en sådan parallelitet. Forelæsningen giver en introduktion til parallelitet i programmel og maskinel. Det bemærkes, at det gennemgåede stof ikke indgår i pensum. Indledningsvis gives et eksempel på en parallel algoritme, nemlig en algoritme til addition af to heltal. Java-koden for algoritmen gennemgås. Herefter skitseres problemerne ved parallelisering, problemer vedrørende kommunikation og synkronisering. Vi ser, hvorledes synkronisering kan opnås i Java ved hjælp af såkaldte kritiske regioner. Efter en præsentation af Flynns klassifikation af maskinarkitekturer, gennemgås nogle specialbyggede maskiner. Vi ser på netværk til sortering og netværk til fletning. Paralleliteten i et netværk til fletning simuleres i Java ved brug af Javas trådbegreb. Til sidst i denne del af forelæsningen vises, hvorledes matrixmultiplikation kan udføres i parallel på en såkaldt systolisk maskine. Også denne maskine simuleres i Java. Forelæsningens anden del giver en introduktion til dynamisk programmering, en meget nyttig problemløsningsteknik. Hvor del-og-hersk-teknikken er en top-til-bund-teknik (et problem løses ved opdele det i uafhængige delproblemer, som så løses separat), er dynamisk programmering i princippet en bund-til-top-teknik (et stort problem løses ved at løse alle mindre (gerne overlappende) delproblemer, gemme deres løsning og benytte løsningerne til at løse større problemer). Dynamisk programmering kan realiseres ved hjælp af såvel iteration som rekursion. Det er ofte simplest at benytte rekursion. Genberegning af løsningsresultater undgås i dette tilfælde ved at huske de beregnede resultater, f.eks. i en tabel. Brugen af dynamisk programmering illustreres først gennem et simpelt eksempel, nemlig et Java-program til beregning af Fibonaccital. Derefter implementeres en algoritme til optimal veksling af mønter. Opgaven går ud på at veksle et beløb til mønter, således at antallet af mønter er minimalt. I den udstrækning tiden tillader, vises en række andre eksempler på brug af dynamisk programmering (løsning af rygsækproblemet, konstruktion af optimale binære søgetræer, løsning af matrix-kædeprodukt-problemet). 15

16 Forelæsning 12: Udtømmende søgning. Problemkompleksitet Denne forelæsning behandler to emner. Det første emne, udtømmende søgning, omhandler den opgave at foretage en systematisk gennemsøgning af alle potentielle løsninger af et problem. Som udgangspunkt vælges et klassisk kombinatorisk optimeringsproblem, nemlig Den rejsende sælgers problem. Problemet går ud på at finde den korteste rejserute for en sælger, der skal besøge en række byer og vende tilbage til sit udgangspunkt. Det konstateres, at problemet i princippet kan løses ved at generere samtlige rundture og derefter vælge den korteste blandt disse. Vi ser, at samtlige rundture kan bestemmes ved en simpel ændring af algoritmen til dybde-først-søgning i en graf. Vi konstruerer et komplet Java-program, der løser problemet. Dette program er dog ikke særligt effektivt, så vi undersøger forskellige muligheder for at beskære søgetræet (bl.a. ved at undgå symmetriske løsninger og ved brug af den såkaldte branch-and-bound-teknik ). Derved mindskes søgearbejdet, men ikke tilstrækkeligt til, at det i praksis bliver muligt at finde optimale løsninger, med mindre problemer er relativt små. I mange situationer behøver man imidlertid ikke en optimal løsning - en rimelig kort tur kan være fuldt tilfredsstillende. Her kommer approksimative algoritmer ind i billedet. En approksimativ algoritme tilstræber at opnå en rimeligt god løsning på kort tid, f.eks. ved brug af en eller anden heuristik (tommelfingerregel). Nogle simple algoritmer til approksimativ løsning af den rejsende sælgers problem skitseres. Baksporing er en generel teknik til systematisk generering af alle mulige løsninger til et kombinatorisk problem. Der præsenteres en skabelon, der kan benyttes til at implementere algoritmer, der benytter baksporing. Brugen af denne skabelon demonstreres ved en løsning af det såkaldte 8-dronninge-problem. Denne del af forelæsningen afsluttes med gennemgang af to algoritmer til generering af permutationer. Anden del af forelæsningen beskæftiger sig med problemkompleksitet. For en stor klasse af problemer er det påvist, at det ikke vil være muligt af udvikle effektive algoritmer (d.v.s. algoritmer, der løser problemet i polynomiel tid). Det er nyttigt at have et kendskab til disse problemer, fordi det vil være omsonst at forsøge at udvikle effektive algoritmer for dem. Først gives en oversigt over sådanne svære problemer. Herefter introduceres mængden P af problemer, der kan løses i polynomiel tid på en sædvanlig, deterministisk maskine, samt mængden NP af problemer, der kan løses i polynomiel tid på en ikke-deterministisk maskine. 16

17 Problemer, der tilhører NP, men ikke P, er lette at løse for en ikke-deterministisk maskine, men, trods ihærdige forsøg, har ingen været i stand til at vise, at de kan løses effektivt på en konventionel maskine. Efterhånden mener alle dataloger, at det ikke kan lade sig gøre. Men det er aldrig blevet bevist (eller modbevist). Problemerne har den egenskab, at hvis blot et af dem kan løses effektivt, så kan de alle løses effektive. Problemerne fra denne klasse siges at være NP-komplette. Det viser sig, at et stort antal praktiske problemer tilhører denne klasse af problemer. Til sidst i forelæsningen nævnes eksempler på problemer, som ikke kan løses algoritmisk (heriblandt det såkaldte stopproblem). 17

Opgave 2 è20èè Det er velkendt, at f lgende algoritme er gyldig og korrekt. Algoritme: Heltalskvadratr Stimulans: n: nç0 Respons: r: r 2 ç n é èr +1è

Opgave 2 è20èè Det er velkendt, at f lgende algoritme er gyldig og korrekt. Algoritme: Heltalskvadratr Stimulans: n: nç0 Respons: r: r 2 ç n é èr +1è Opgave 1 è20èè Et bin rt tr med heltal i knuderne kan repr senteres som en v rdi af f lgende rekursive type: Type Tree = Prèval: Int, left, right: Treeè hvor det tomme tr angives som?-tree. Vi er interesserede

Læs mere

Rapport fra arbejdsgruppen vedr. Netv rksanbringelser:

Rapport fra arbejdsgruppen vedr. Netv rksanbringelser: Rapport fra arbejdsgruppen vedr. Netv rksanbringelser: Udarbejdet af: Peter Br gge Birgitte R. Lydolf Annette B rnholdt Dorte Broberg Lone Munksgaard Sylvia Mortensen Eva Kloster 1 Indledning: P baggrund

Læs mere

Kortlægning af betalingsfrister i erhvervslivet

Kortlægning af betalingsfrister i erhvervslivet Dorte Gram Nybroe, chef for SMV & Iværksætteri dgny@di.dk, 3377 3769 APRIL 19 Kortlægning af betalingsfrister i erhvervslivet Denne kortlægning har til formål at belyse, hvordan betalingsfrister udfolder

Læs mere

Monitorering af tvang i psykiatrien

Monitorering af tvang i psykiatrien Monitorering af tvang i psykiatrien OPGØRELSE FOR PERIODEN 1. JULI 2016 30. JUNI 2017 2017 Monitorering af tvang i psykiatrien Sundhedsstyrelsen, 2017. Publikationen kan frit refereres med tydelig kildeangivelse.

Læs mere

Opgave 2 è20èè En tekst er som bekendt et palindrom, hvis den er lig med sin spejling. Fx er den tomme tekst og teksterne "a", "cc", "pip" og "abba" a

Opgave 2 è20èè En tekst er som bekendt et palindrom, hvis den er lig med sin spejling. Fx er den tomme tekst og teksterne a, cc, pip og abba a Opgave 1 è20èè Et bin rt tr kan som bekendt repr senteres som en v rdi af typen: Type Tree = Prodèleft, right: Treeè hvor et tomt tr angives af standardv rdien?-tree. Vi deçnerer fuldst ndigheden af et

Læs mere

Nøgletal til resultatdokumentation

Nøgletal til resultatdokumentation Nøgletal til resultatdokumentation Vejledningsmateriale til opgørelse og anvendelse Netværksinddragende metoder Indholdsfortegnelse Introduktion til nøgletal... 3 Om nøgletallene... 3 Metodiske overvejelser...

Læs mere

Notat. Udviklingen i hjemmeplejen.

Notat. Udviklingen i hjemmeplejen. SOCIAL OG SUNDHED Dato: 2. oktober 2015 Tlf. dir.: 4477 3495 Fax. dir.: 4477 2711 E-mail: Pension@balk.dk Kontakt: Pernille Hvilsted Udviklingen i hjemmeplejen. Notat Hjemmeplejen gennemførte 1. februar

Læs mere

Fagplan og mål for matematik 7-9 klasse

Fagplan og mål for matematik 7-9 klasse Fagplan og mål for matematik 7-9 klasse På Slotsparkens Friskole følger vi Undervisningsministeriets mål for de fag. Kompetencemål se link : http://ffm.emu.dk Fagets kompetenceområder: Matematiske kompetencer

Læs mere

Undervisningsudvalget UNU Alm.del endeligt svar på spørgsmål 4 Offentligt

Undervisningsudvalget UNU Alm.del endeligt svar på spørgsmål 4 Offentligt Undervisningsudvalget 2017-18 UNU Alm.del endeligt svar på spørgsmål 4 Offentligt Undervisningsudvalget Christiansborg Ministeren Frederiksholms Kanal 21 1220 København K Tlf. nr.: 32 92 50 00 E-mail:

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

Nyhedsbrev til abonnenter - Juli Kasserede EU-regler

Nyhedsbrev til abonnenter - Juli Kasserede EU-regler Nyhedsbrev til abonnenter - Juli 2017 Kasserede EU-regler Som vi kunne fortælle om i årets første nyhedsbrev (januar 2017), så er 2017 det vigtige år for den Køretøjssikkerhedspakke, man i 2014 besluttede

Læs mere

Bilag A Tilbudsevalueringen

Bilag A Tilbudsevalueringen Bilag A Tilbudsevalueringen 1. TILDELINGSKRITERIET Tildelingskriteriet er bedste forhold mellem pris og kvalitet. Ordregiver vil i den forbindelse lægge følgende underkriterier til grund: 1) Kvalitet 45

Læs mere

KASSE- OG REGNSKABSREGULATIV Bilag 3.4. Ledelsestilsyn

KASSE- OG REGNSKABSREGULATIV Bilag 3.4. Ledelsestilsyn 1 Indledning 1.1 Budgetansvar I punkt 3.4 i Kasse- og regnskabsregulativ er de budgetansvarlige tillagt ansvaret for, at der tilrettelægges et tilstrækkeligt ledelsestilsyn med udmøntningen og administrationen

Læs mere

Naturvidenskabeligt grundforløb, stx

Naturvidenskabeligt grundforløb, stx Naturvidenskabeligt grundforløb, stx Vejledning Undervisningsministeriet Styrelsen for Undervisning og Kvalitet Gymnasie- og Tilsynskontoret, august 2017 Vejledningen præciserer, kommenterer, uddyber og

Læs mere

KOMMUNER KOM GODT I GANG MED EU-PROJEKTER

KOMMUNER KOM GODT I GANG MED EU-PROJEKTER 20 17 KOMMUNER KOM GODT I GANG MED EU-PROJEKTER INTRODUKTION ALLE KOMMUNER I SYDDANMARK KAN INDGÅ I INTERNATIONALT SAMARBEJDE OGSÅ DIN Hensigten med denne vejledning er at gøre de europæiske muligheder

Læs mere

Nyhedsbrev. EU- & Konkurrenceret. 3. januar Fængselsstraf i kartelsager ny konkurrencelov vedtaget

Nyhedsbrev. EU- & Konkurrenceret. 3. januar Fængselsstraf i kartelsager ny konkurrencelov vedtaget 3. januar 2013 Nyhedsbrev Fængselsstraf i kartelsager ny konkurrencelov vedtaget Folketinget har den 19. december 2012 vedtaget en ny konkurrencelov, som indfører mulighed for fængselstraf i kartelsager

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

Rådet for Den Europæiske Union Bruxelles, den 23. oktober 2017 (OR. en)

Rådet for Den Europæiske Union Bruxelles, den 23. oktober 2017 (OR. en) Rådet for Den Europæiske Union Bruxelles, den 23. oktober 2017 (OR. en) Interinstitutionel sag: 2017/0267 (NLE) 13535/17 UD 238 CID 5 TRANS 425 FORSLAG fra: modtaget: 20. oktober 2017 til: Komm. dok. nr.:

Læs mere

Facilitators guide til cyberdilemmaøvelse

Facilitators guide til cyberdilemmaøvelse s guide til cyberdilemmaøvelse Øvelsen er udarbejdet af Beredskabsstyrelsens Center for Uddannelse i samarbejde med Center for Cybersikkerhed Guide til dilemmaøvelse Cybersikkerhed Velkommen til Beredskabsstyrelsens

Læs mere

H Ø R I N G S S V A R O M R E D E G Ø R E L S E O M M U L I G H E D E N F O R A T S T I L L E S P R O G K R A V M. V. V E D A N S Æ T T E L S E R

H Ø R I N G S S V A R O M R E D E G Ø R E L S E O M M U L I G H E D E N F O R A T S T I L L E S P R O G K R A V M. V. V E D A N S Æ T T E L S E R Økonomi- og Personalestyrelsen (ASA) Aqqusinersuaq 5 Box 1039 3900 Nuuk Greenland Att. Marie Bidstrup W I L D E R S P L A D S 8 K 1 4 0 3 K Ø BENHAVN K T E L E F O N 3 2 6 9 8 8 8 8 M O B I L 9 1 3 2 5

Læs mere

Udkast til revideret Vedtægt for Mandøforeningen. Ændringer i forhold til gældende vedtægter er anført i understreget kursiv tekst

Udkast til revideret Vedtægt for Mandøforeningen. Ændringer i forhold til gældende vedtægter er anført i understreget kursiv tekst Udkast til revideret Vedtægt for Mandøforeningen. Ændringer i forhold til gældende vedtægter er anført i understreget kursiv tekst Nedennævnte vedtægt erstatter Love for Mandøforeningen underskrevet 28.7.

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

MIDTVEJSRAPPORT Projekt Peer-støtte i Region Hovedstaden PIXI-UDGAVE

MIDTVEJSRAPPORT Projekt Peer-støtte i Region Hovedstaden PIXI-UDGAVE MIDTVEJSRAPPORT Projekt Peer-støtte i Region Hovedstaden PIXI-UDGAVE 2017 1. INDLEDNING Denne Pixi-udgave indeholder en kort beskrivelse af de nyeste erfaringer med ansættelse af peer-støttemedarbejdere

Læs mere

Vejledning til ældre- og handicapråd vedr. høring af udbudsmaterialet i forbindelse med udbud af Bleer med bevilling

Vejledning til ældre- og handicapråd vedr. høring af udbudsmaterialet i forbindelse med udbud af Bleer med bevilling Vejledning til ældre- og handicapråd vedr. høring af udbudsmaterialet i forbindelse med udbud af 50.96 Bleer med bevilling Indholdsfortegnelse Hvem er SKI?... 2 Udbud af bleer... 2 Inddragelse af repræsentanter

Læs mere

Pris- og produktivitetsudvikling. Til brug i de økonomiske rammer for 2019 og 2020

Pris- og produktivitetsudvikling. Til brug i de økonomiske rammer for 2019 og 2020 Pris- og produktivitetsudvikling Til brug i de økonomiske rammer for 2019 og 2020 Juli 2018 Pris- og produktivitetsudvikling Konkurrence- og Forbrugerstyrelsen Forsyningssekretariatet Carl Jacobsens Vej

Læs mere

1g- Opgaven DHO. Middelfart Gymnasium & HF. 1g

1g- Opgaven DHO. Middelfart Gymnasium & HF. 1g 1g- Opgaven DHO Middelfart Gymnasium & HF 1g 2016-17 1 Indholdsfortegnelse HVAD ER EN DHO?... 3 HVAD ER FORMÅLET MED DHO?... 3 VEJLEDNING OG RESPONS... 4 TIDSPLAN OG OMFANG - OVERSIGT... 5 FORM OG STRUKTUR

Læs mere

Notat. Kvalitetsprocedure for forsøg med helhedsorienteret bygge- og anlægstilsyn. Indhold

Notat. Kvalitetsprocedure for forsøg med helhedsorienteret bygge- og anlægstilsyn. Indhold Notat Metoder og virkemidler Postboks 1228 0900 København C Tlf. 70 12 12 88 Fax 70 12 12 89 at@at.dk www.at.dk Kvalitetsprocedure for forsøg med helhedsorienteret bygge- og anlægstilsyn Indhold Formål...

Læs mere

DEN EUROPÆISKE UNION EF-Sortsmyndigheden

DEN EUROPÆISKE UNION EF-Sortsmyndigheden DEN EUROPÆISKE UNION EF-Sortsmyndigheden AFGØRELSE TRUFFET AF ADMINISTRATIONSRÅDET FOR EF-SORTSMYNDIGHEDEN af 25. marts 2004 om gennemførelsen af Europa-Parlamentets og Rådets forordning (EF) nr. 1049/2001

Læs mere

Skabelon og vejledning til udfærdigelse af handlingsplan

Skabelon og vejledning til udfærdigelse af handlingsplan Skabelon og vejledning til udfærdigelse af handlingsplan Når skolen bliver opmærksom på mobning eller lignende er den forpligtet til at udarbejde en handlingsplan for den konkrete situation. Dansk Center

Læs mere

Notat. Udviklingen i AC og HK ansatte 2008-2011. 27. juni 2011. Personale og HR. Baggrund

Notat. Udviklingen i AC og HK ansatte 2008-2011. 27. juni 2011. Personale og HR. Baggrund Notat Forvaltning: Personale og HR Dato: J.nr.: Br.nr.: 27. juni 2011 Udf rdiget af: Bjarne Vejrup Vedrłrende: Udviklingen i HK og AC ansatte 2008-2011 Notatet sendes/sendt til: Direktionen og Kresten

Læs mere

Høring af udkast til vejledning om produktionserhverv

Høring af udkast til vejledning om produktionserhverv Dato 10. juli 2017 Side 1 af 5 Erhvervsstyrelsen Dahlerups Pakhus Langelinie Allé 17 2100 København Ø Høring af udkast til vejledning om produktionserhverv Erhvervsstyrelsen sendte den 14. juni 2017 udkast

Læs mere

Persondatapolitik for Handelsfagskolen 4. juni 2019

Persondatapolitik for Handelsfagskolen 4. juni 2019 Persondatapolitik for Handelsfagskolen 4. juni 2019 Handelsfagskolen Rådhusgade 56-58 Postboks 181 DK-8300 Odder Telefon 8654 1700 handelsfagskolen.dk kontakt@handelsfagskolen.dk Introduktion For at kunne

Læs mere

VEDTÆGTER. Vedtægter af 19. september 2014 for Danske Professionshøjskoler, CVR-nr

VEDTÆGTER. Vedtægter af 19. september 2014 for Danske Professionshøjskoler, CVR-nr Ref.: SHJ shj@uc-dk.dk +45 33 38 22 00 09. oktober 2014 Vedtægter af 19. september 2014 for Danske Professionshøjskoler, CVR-nr. 30 98 39 04 VEDTÆGTER 1. NAVN OG HJEMSTED 1.1 Foreningens navn er "Danske

Læs mere

Få styr på handlingen i en tekst med tegneserieværktøjet Pixton 4. kl. Og hvad skete der så?

Få styr på handlingen i en tekst med tegneserieværktøjet Pixton 4. kl. Og hvad skete der så? Få styr på handlingen i en tekst med tegneserieværktøjet Pixton 4. kl. Og hvad skete der så? Mona Winther Indholdsfortegnelse Betragtninger om mål 3 Elevforudsætninger 4 Elevmål i elevsprog 5 Aktiviteter

Læs mere

Tilbud til borgere med type 2 diabetes i Randers Kommune

Tilbud til borgere med type 2 diabetes i Randers Kommune Tilbud til borgere med type 2 diabetes i Randers Kommune Udarbejdet af Inger Kruse Andersen 18. januar 2010 1 1. Indledning Type 2-diabetes er en kronisk sygdom, hvor kroppens evne til at oms tte sukkerstof

Læs mere

1-5, ved ikke EA-reolen, strukturen, konceptet 1.Sammenhængende it, 2.Genbrug, 3.Byg til forandring, 4.Flere leverandører, 5.

1-5, ved ikke EA-reolen, strukturen, konceptet 1.Sammenhængende it, 2.Genbrug, 3.Byg til forandring, 4.Flere leverandører, 5. Bilag 9 Punkt 13 Målepunkt Emne Spm. # Udsagn Svar type Svarmuligheder Kommentar Hjælpetekst Bedre betingelser for datadeling Nytteværdi 1 Den fælleskommunale rammearkitektur skaber bedre muligheder for

Læs mere

Parallelle algoritmer

Parallelle algoritmer Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én

Læs mere

Befordring af skoleelever Regler og principper. Administrativ vejledning

Befordring af skoleelever Regler og principper. Administrativ vejledning Befordring af skoleelever Regler og principper Administrativ vejledning 15. august 017 Indhold 1. Indledning.... Betingelser... 3.Begrebet hjemmets nærhed... 4 4. Opsummering... 4 1 1. Indledning 1.1.Formålet

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Notat. 26. april 2011. Błrn, Skole og Kultur

Notat. 26. april 2011. Błrn, Skole og Kultur Notat Forvaltning: Błrn, Skole og Kultur Dato: J.nr.: Br.nr.: 26. april 2011 Udf rdiget af: Bitten Laursen Vedrłrende: Uddannelsesstrategi for 5 kommuner Notatet sendes/sendt til: Arbejdsgruppen Uddannelsesstrategi

Læs mere

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

Læs mere

KOMMISSIONENS FORORDNING (EU)

KOMMISSIONENS FORORDNING (EU) L 55/4 KOMMISSIONENS FORORDNING (EU) 2016/293 af 1. marts 2016 om ændring af Europa-Parlamentets og Rådets forordning (EF) nr. 850/2004 om persistente organiske miljøgifte for så vidt angår bilag I (EØS-relevant

Læs mere

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3 02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................

Læs mere

Sønderborg Kommune Salg af Sønderborg Kaserne UDBUDSVILKÅR SALG AF SØNDERBORG KASERNE UDBUDSVILKÅR NOVEMBER 2017

Sønderborg Kommune Salg af Sønderborg Kaserne UDBUDSVILKÅR SALG AF SØNDERBORG KASERNE UDBUDSVILKÅR NOVEMBER 2017 SALG AF SØNDERBORG KASERNE NOVEMBER 2017 1 INDHOLDSFORTEGNELSE 1. INDLEDNING 3 1.1 SØNDERBORG KASERNE 3 1.2 RETSGRUNDLAG OG UDBUDDETS TILRETTELÆGGELSE 5 1.3 UDBUDSMATERIALET 5 1.4 TIDSPLAN 6 2. PRÆKVAFIKATIONSBETINGELSER

Læs mere

Svar på spørgsmål fra Teknik- og Miljøborgmester Ayfer Baykal om havnetunnel

Svar på spørgsmål fra Teknik- og Miljøborgmester Ayfer Baykal om havnetunnel KØBENHAVNS KOMMUNE Økonomiforvaltningen Center for Byudvikling NOTAT Til Borgerrepræsentationen Svar på spørgsmål fra Teknik- og Miljøborgmester Ayfer Baykal om havnetunnel Baggrund Økonomiforvaltningen

Læs mere

Center for Plan & Miljø

Center for Plan & Miljø Center for Plan & Miljø LE34 Att: Tommy Steen Nielsen Energivej 34 2750 Ballerup Postadresse: Plan Frederiksgade 9-4690 Haslev Telefon: 56 20 30 00 Telefax : 56 20 30 01 www.faxekommune.dk Kontoradresse:

Læs mere

Reklamepolitik. Randers Kommune Byr ds- og direktionssekretariatet Vedtaget i september 2007 og revideret i august 2009.

Reklamepolitik. Randers Kommune Byr ds- og direktionssekretariatet Vedtaget i september 2007 og revideret i august 2009. Reklamepolitik Randers Kommune Byr ds- og direktionssekretariatet Vedtaget i september 2007 og revideret i august 2009. Reklamepolitik Indledningsvist redegłres for de muligheder og begr nsninger loven

Læs mere

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

Læs mere

Fussingł-Egnens Vuggestue og Błrnehave etablering af udeomr der:

Fussingł-Egnens Vuggestue og Błrnehave etablering af udeomr der: Projekttitel: Fussingł-Egnens Vuggestue og Błrnehave etablering af udeomr der: Oplysning om ansłger Fussingł-Egnens Vuggestue og Błrnehave er beliggende i forbindelse med Fussingł-Egnens Friskole i Słnderb

Læs mere

Sådan kommer du i gang!

Sådan kommer du i gang! Sådan kommer du i gang! - en Conteco-guide for begyndere Indhold Det skal du bruge.. 2 Opnå det rigtige look...2 Systemopbygning..2 Blanding af farve... 2 Blanding af Conteco... 3 Blanding af Conteco Beton

Læs mere

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel I dag Løsning af NP -hårde optimeringsproblemer Repetition: branch-and-bound Flere begreber Konkret eksempel: TSP Lagrange relaxering Parallel branch-and-bound 1 Opsummering Løsning af NP -hårde optimeringsproblemer

Læs mere

Notat. 1. juni 2011 11/003134

Notat. 1. juni 2011 11/003134 Notat Forvaltning: Politik, Kommunikation og Digital service Błrn, Skole og Kultur Dato: J.nr.: Br.nr.: 1. juni 2011 11/003134 Udf rdiget af: Vedrłrende: Udbudsplan for kłrselsomr det Notatet sendes/sendt

Læs mere

Persondatapolitik vedrørende beskyttelse af personoplysninger i forbindelse med rekruttering

Persondatapolitik vedrørende beskyttelse af personoplysninger i forbindelse med rekruttering Persondatapolitik vedrørende beskyttelse af personoplysninger i forbindelse med rekruttering Denne persondatapolitik vedrørende beskyttelse af personoplysninger behandler følgende emner: 1. Generelt...

Læs mere

Kommuneplan 13 og nye muligheder i landdistrikterne

Kommuneplan 13 og nye muligheder i landdistrikterne Kommuneplan 13 og nye muligheder i landdistrikterne Kontorchef Sanne Kjær - Naturstyrelsen Planlovsdage 2013 Kommuneplan 2013 Kommuneplan 2013 godt i gang 25 planer i høring/behandlet Behandling afsluttet

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Se hvordan på

Se hvordan på 6 gode råd til en it-sikker hverdag 6 gode råd til en it-sikker hverdag 01 02 03 04 05 06 Slå to-trins-login til og lav dit kodeord længere Hold dit NemID for dig selv Reagér kun på sikre beskeder Opdatér

Læs mere

Hłringssvar ang. omorganisering af stłtteomr det 0-5 r.

Hłringssvar ang. omorganisering af stłtteomr det 0-5 r. Hłringssvar ang. omorganisering af stłtteomr det 0-5 r. Vi synes, det er en god ide med differentieret tilbud til błrn med s rlige behov, b de i.f.t. det enkelte barns behov, familiens łnsker samt i.f.t.

Læs mere

Tilbud til p rłrende. - til senhjerneskadede i Randers Kommune

Tilbud til p rłrende. - til senhjerneskadede i Randers Kommune Tilbud til p rłrende til senhjerneskadede i Randers Kommune Udarbejdet af: Tina Bruhn og Lone Aagaard Juni 2009 2 Rehabiliteringsenheden Baggrund P rłrende til senhjerneskadede har et behov for viden og

Læs mere

DM02 Kogt ned. Kokken. Januar 2006

DM02 Kogt ned. Kokken. Januar 2006 DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte

Læs mere

Fri bil og specialindrettede biler - Beskatning kan undgås, hvis der er tale om et specialindrettet køretøj.

Fri bil og specialindrettede biler - Beskatning kan undgås, hvis der er tale om et specialindrettet køretøj. - 1 Fri bil og specialindrettede biler - Beskatning kan undgås, hvis der er tale om et specialindrettet køretøj. Af advokat (L) og advokat (H), cand. merc. (R) Skattesager om beskatning af fri bil dukker

Læs mere

Efterslægtstavlen kan også udskrives som ren tekst med indrykning: Tonnes ~Ursula ina ~Morten Ferdinand Ida Diderich Oluf ~Pia Grethe Jonna Hedvig Rud

Efterslægtstavlen kan også udskrives som ren tekst med indrykning: Tonnes ~Ursula ina ~Morten Ferdinand Ida Diderich Oluf ~Pia Grethe Jonna Hedvig Rud Opgave (25%) F lgende viser en simpel efterslægtstavle Tonnes ο Ursula ina ο Morten Oluf ο Pia Hedvig Rudolf ο Sarah Ferdinand Ida Diderich Grethe Jonna De forskellige typer personer der optræder i tavlen

Læs mere

Et Trine-udtryk, der angiver en liste af heltal, kan involvere konstanter, ++-operatoren, udtagelse af dellister og kopiering af elementer.

Et Trine-udtryk, der angiver en liste af heltal, kan involvere konstanter, ++-operatoren, udtagelse af dellister og kopiering af elementer. Opgave 1 è20èè Et Trine-udtryk, der angiver en liste af heltal, kan involvere konstanter, ++-operatoren, udtagelse af dellister og kopiering af elementer. S danne udtryk kan beskrives med den rekursive

Læs mere

Vikard kning p ldreomr det. - undersłgelse af mulighederne for at begr nse lłnudgifterne vha. internt vikarkorps

Vikard kning p ldreomr det. - undersłgelse af mulighederne for at begr nse lłnudgifterne vha. internt vikarkorps Vikard kning p ldreomr det - undersłgelse af mulighederne for at begr nse lłnudgifterne vha. internt vikarkorps 22. december 2009 Indledning ldreomr dets brug af vikarer er meget forskellig fra omr de

Læs mere

Ebeltoft i udvikling Organisering og Samarbejde uddybende beskrivelse

Ebeltoft i udvikling Organisering og Samarbejde uddybende beskrivelse Ebeltoft i udvikling Organisering og Samarbejde uddybende beskrivelse Med afsæt i Byrådets beslutning om at arbejde målrettet på en samlet udvikling af Ebeltoft jf. Visions- og udviklingsplan for Ebeltoft

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Vi introducerer nye muligheder for total høreglæde

Vi introducerer nye muligheder for total høreglæde Vi introducerer nye muligheder for total høreglæde Phonak er glade for at kunne introducere de nyeste tilføjelser til den veletablerede Phonak CROS-serie: Phonak CROS H2O og Phonak CROS 13. Vi er overbevist

Læs mere

Tjek mayonnaisen! Hvordan virker en emulsion?

Tjek mayonnaisen! Hvordan virker en emulsion? Side: 1/11 Tjek mayonnaisen! Hvordan virker en emulsion? Forfattere: Morten Christensen Redaktør: Thomas Brahe Faglige temaer: Olie, Vand, Hydrofil, Hydrofob, Emulgator, Emulsion Kompetenceområder: Introduktion:

Læs mere

Psykiatriplan for Randers Kommune. - Med fokus p fremtidens udfordringer og ny viden. Strategigrundlag

Psykiatriplan for Randers Kommune. - Med fokus p fremtidens udfordringer og ny viden. Strategigrundlag Psykiatriplan for Randers Kommune - Med fokus p fremtidens udfordringer og ny viden Strategigrundlag 1 1 Mission for Psykiatriomr det Missionen beskriver, hvorfor socialpsykiatrien er sat i verden. Missionen

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Ankestyrelsens brev til Læsø Kommune. Kommunalbestyrelsens beslutning den 25. juni 2018

Ankestyrelsens brev til Læsø Kommune. Kommunalbestyrelsens beslutning den 25. juni 2018 Ankestyrelsens brev til Læsø Kommune Kommunalbestyrelsens beslutning den 25. juni 2018 15. maj 2019 A (borgmester i Læsø Kommune og medlem af bestyrelsen i Færgeselskabet Læsø K/S), B (medlem af kommunalbestyrelsen

Læs mere

Værdier for samarbejdet med pårørende - Sundhed og Omsorg

Værdier for samarbejdet med pårørende - Sundhed og Omsorg Værdier for samarbejdet med pårørende - Sundhed og Omsorg Indledning Et godt socialt netværk kan både give støtte, omsorg og bidrage med praktisk hjælp i hverdagen. Derfor spiller pårørende ofte en betydningsfuld

Læs mere

Ændringer i kvalitetsstandarderne 2018

Ændringer i kvalitetsstandarderne 2018 Ændringer i kvalitetsstandarderne 2018 I dette notat beskrives de væsentlige ændringer, der er foretaget i forhold til kvalitetsstandarderne for 2017. Overskrifterne med blå skrift nedenfor henviser til

Læs mere

Vejledning om adjunktforløb, lektorkvalificeringen og lektorbedømmelse på professionshøjskolerne

Vejledning om adjunktforløb, lektorkvalificeringen og lektorbedømmelse på professionshøjskolerne Vejledning om adjunktforløb, lektorkvalificeringen og lektorbedømmelse på professionshøjskolerne Vejledningen er udarbejdet af det Nationale netværk for lektorkvalificering og lektorbedømmelse under det

Læs mere

Forslag til kommissorium vedr. oprettelse af et kommunalt tilbud vedr. vederlagsfri fysioterapi.

Forslag til kommissorium vedr. oprettelse af et kommunalt tilbud vedr. vederlagsfri fysioterapi. Notat Forvaltning: Sundhed og ldre Dato: J.nr.: Br.nr.: 18. oktober 2010 Udf rdiget af: Lene Jensen Vedrłrende: Vederlagsfri fysioterapi - udkast til kommissorium Notatet sendes/sendt til: Udvalget for

Læs mere

Rigsrevisionens notat om beretning om statens brug af konsulenter

Rigsrevisionens notat om beretning om statens brug af konsulenter Rigsrevisionens notat om beretning om statens brug af konsulenter August 2017 FORTSAT NOTAT TIL STATSREVISORERNE 1 Opfølgning i sagen om statens brug af konsulenter (beretning nr. 20/2013) 7. august 2017

Læs mere

Høringssvar til nyt boligområde ved Tingagervej, forslag til tillæg nr. 26 til Kommuneplan 2013 og lokalplan nr. 1136

Høringssvar til nyt boligområde ved Tingagervej, forslag til tillæg nr. 26 til Kommuneplan 2013 og lokalplan nr. 1136 1. Grundejerforeningen Tingager, Mejdal Bestyrelsesmedlem Mads Vistisen Høringssvar til nyt boligområde ved Tingagervej, forslag til tillæg nr. 26 til Kommuneplan 2013 og lokalplan nr. 1136 Det er med

Læs mere

SERVICENIVEAU FOR SERVICELOVENS 85, 107 OG 108

SERVICENIVEAU FOR SERVICELOVENS 85, 107 OG 108 SERVICENIVEAU FOR SERVICELOVENS 85, 107 OG 108 Senest redigeret d. 14. marts 2017 Godkendt i Udvalget Aktiv Hele Livet Sundhed og Omsorg d. 20. marts 2017 og Udvalget Uddannelse og Job d. 22. marts 2017

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

Spørgsmål & Svar. Udbud af RIPA-Syd

Spørgsmål & Svar. Udbud af RIPA-Syd Spørgsmål & Svar Udbud af RIPA-Syd Region Syddanmark har modtaget spørgsmål vedrørende udbud af RIPA-Syd. Spørgsmålene, der er anonymiseret, kan være modtaget både mundtligt eller skriftligt. Indholdsfortegnelse

Læs mere

Rønde Fjernvameværk A.m.b.a. Formandens Beretning. Generalforsamling 22. september 2016

Rønde Fjernvameværk A.m.b.a. Formandens Beretning. Generalforsamling 22. september 2016 Rønde Fjernvameværk A.m.b.a. Formandens Beretning Generalforsamling 22. september 2016 Endnu et år er gået og det er nu min 3. beretning som formand for Rønde Fjernvarme. Som de foregående år, har der

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Forslag. Lov om Danmarks Forsknings- og Innovationspolitiske Råd og Danmarks Frie Forskningsfond. Til lovforslag nr. L 118 Folketinget

Forslag. Lov om Danmarks Forsknings- og Innovationspolitiske Råd og Danmarks Frie Forskningsfond. Til lovforslag nr. L 118 Folketinget Til lovforslag nr. L 118 Folketinget 2016-17 Vedtaget af Folketinget ved 3. behandling den 20. april 2017 Forslag til Lov om Danmarks Forsknings- og Innovationspolitiske Råd og Danmarks Frie Forskningsfond

Læs mere

Bilag 1 - Indsatsområder for dagtilbudsområdet

Bilag 1 - Indsatsområder for dagtilbudsområdet Bilag 1 - Indsatsområder for dagtilbudsområdet 2018-2020 Indledning Dagtilbud i Ringsted Kommune bygger både et lovmæssigt og værdimæssigt grundlag. Det betyder konkret, at den pædagogiske praksis sker

Læs mere

Fremme af en cirkulær økonomi i Nordjylland - genbrug af affald skal understøtte skabelsen af arbejdspladser.

Fremme af en cirkulær økonomi i Nordjylland - genbrug af affald skal understøtte skabelsen af arbejdspladser. Fremme af en cirkulær økonomi i Nordjylland - genbrug af affald skal understøtte skabelsen af arbejdspladser. August 2017 NBE er i dag støttet af BRN med 1,65 mio. kr. pr. år til og med 2018. Med dette

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Lov om Danmarks Forsknings- og Innovationspolitiske Råd og Danmarks Frie Forskningsfond

Lov om Danmarks Forsknings- og Innovationspolitiske Råd og Danmarks Frie Forskningsfond LOV nr 384 af 26/04/2017 (Gældende) Udskriftsdato: 29. januar 2018 Ministerium: Uddannelses- og Forskningsministeriet Journalnummer: Uddannelses- og Forskningsmin., j.nr. 17/010167 Senere ændringer til

Læs mere

7. Ideer til udvikling af idrætsfaciliteterne på Bornholm

7. Ideer til udvikling af idrætsfaciliteterne på Bornholm 7. Ideer til udvikling af idrætsfaciliteterne på Bornholm På baggrund af de fire undersøgelser og andre relevante undersøgelser skal vi her i det sidste afsnit give forslag til, hvordan idrætsfaciliteterne

Læs mere

Resultatlønskontrakt for perioden 1. august 2017 til den 31. juli 2018

Resultatlønskontrakt for perioden 1. august 2017 til den 31. juli 2018 Resultatlønskontrakt for perioden 1. august 2017 til den 31. juli 2018 Kontraktens parter og gyldighedsperiode Resultatlønskontrakten er udarbejdet med baggrund i bemyndigelse fra Ministeriet for Børn

Læs mere

Voksen Tourette Træf den September 2017

Voksen Tourette Træf den September 2017 Voksen Tourette Træf den 15. - 17. September 2017 Fredag: Denne weekend er vi lidt spændte, da de gamle ejere af Treldenæs Camping har solgt, og nye er kommet til. Vi er en lille gruppe på 10 pers. Denne

Læs mere

Initiativ 11 : Analyse af risikoparameteren materielle afgørelser

Initiativ 11 : Analyse af risikoparameteren materielle afgørelser NOTAT 4. november 206 Initiativ : Analyse af risikoparameteren materielle afgørelser J.nr. 2065000348 Metoder og Virkemidler (MV) TR og Data og analyse (ADA) PLJ og KCA Indhold Resume...3 Indledning...7

Læs mere

Bekendtgørelse af lov om beskyttelse af halvlederprodukters udformning (topografi) 1)

Bekendtgørelse af lov om beskyttelse af halvlederprodukters udformning (topografi) 1) LBK nr 105 af 24/01/2012 Udskriftsdato: 28. februar 2019 Ministerium: Erhvervsministeriet Journalnummer: Erhvervs- og Vækstmin., Patent- og Varemærkestyrelsen, j.nr. 12/4 Senere ændringer til forskriften

Læs mere

Bilag : Indsats vedr. øget eksportparathed i SMV er

Bilag : Indsats vedr. øget eksportparathed i SMV er 3. maj 2019 Sag 2018-17919 Bilag 3.3.3.2: Indsats vedr. øget eksportparathed i SMV er Udfordring Eksport bidrager til danske virksomheders konkurrenceevne, ligesom danske virksomheder skal være trimmet

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

FORÆLDRETILFREDSHEDSUNDERSØGELSE

FORÆLDRETILFREDSHEDSUNDERSØGELSE FORÆLDRETILFREDSHEDSUNDERSØGELSE R A N D E R S K O M M U N E V e s t e r v a n g s s k o l e n R a p p o r t 2 0 1 8 INDLEDNING Kære skoler I denne rapport fremgår jeres resultater af den forældretilfredshedsundersøgelse,

Læs mere

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser.

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. 25 Sortering III. Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. Sortering ved fletning, med fire bånd, i én fase (balanceret fletning). Polyfase fletning med tre bånd. Generaliseret

Læs mere

Dragør Kommune. Tilsynsrapport. Sundhed og Omsorg. Kommunal leverandør af personlig pleje og praktisk hjælp. Uanmeldt tilsyn December 2015

Dragør Kommune. Tilsynsrapport. Sundhed og Omsorg. Kommunal leverandør af personlig pleje og praktisk hjælp. Uanmeldt tilsyn December 2015 INDLEVELSE SKABER UDVIKLING Tilsynsrapport Dragør Kommune Sundhed og Omsorg Kommunal leverandør af personlig pleje og praktisk hjælp Uanmeldt tilsyn December 2015 WWW.BDO.DK Forord Rapporten er bygget

Læs mere

3.a søger ud i det blå

3.a søger ud i det blå 3.a søger ud i det blå I 10.000 meters højde sidder jeg og tænker tilbage på de sidste to uger. Jeg må ærligt indrømme, de har været fyldt med nogle af de vildeste ting, jeg har oplevet, og sådan tror

Læs mere

Moderne kryptografi. Olav Geil Institut for Matematiske Fag Aalborg Universitet. Elektronik og IT-Gruppen 24. april 2008

Moderne kryptografi. Olav Geil Institut for Matematiske Fag Aalborg Universitet. Elektronik og IT-Gruppen 24. april 2008 Moderne kryptografi Olav Geil Institut for Matematiske Fag Aalborg Universitet Elektronik og IT-Gruppen 24. april 2008 Matematik og ingeniørvidenskab Uden ingeniørvidenskab var komplekse tal blot en kuriøsitet

Læs mere