1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.

Slides:



Advertisements
Lignende præsentationer
Atomer Et programmeret forløb. En måde at lære på.
Advertisements

Om at skrive 3.årsopgave i matematik
Udsagn (propositioner)
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
Trivselsundersøgelse og ledelsesevaluering
AT 2 - argumenter og bevisførelse
MapReduce implementationer MapReduce Hadoop Apache open source projekt.
Visioner for udvikling af brugen af it i laboratoriespecialerne Nu i et nyt perspektiv…! 1 Dansk Selskab for Klinisk Biokemi ∙ Middelfart ∙
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Königs uendelighedslemma
1. Ordreside: Køretøjerside: Brugereside: Timesedlerside: Beskederside: Oversigtskortside: Themeside: 19.
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
Anden information Bettina Dahl Søndergaard Lektor Hvad er svært ved beviser for gymnasieelever - og kan vi gøre noget ved det? Fredag den 18. marts 2011.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Arbejdsmarkedsuddannelser – også for personer med læse-, skrive- og regnevanskeligheder Oplæg fra AMU-Fyn Konference d. 22/5 -07.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 4. november 2005.
FEN Diskret matematik/Seminar 3 - proofs 1 Beviser Et bevis er en argumentation, som overbeviser om, at en påstand er sand, påstanden kaldes.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
Hvordan kan man læse dette regnestykke? -7 – 3
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Induktion og rekursion
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
1 Datalogi C Datastrukturer og algoritmer ved Keld Helsgaun.
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
1 Maksimal strømning. 2 Strømningsnetværk Et strømningsnetværk (eller blot et netværk) N består af En vægtet, orienteret graf G med ikke-negative heltallige.
Grafer og Algoritmer Rasmus D. Lehrmann DM
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal.
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Anvendelser I Leg og spil.
Hvordan kan man læse dette regnestykke? -7 – 3
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
Grunde til at jeg elsker dig
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
1 Design, analyse og verifikation. 2 Algoritmebegrebet Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær.
Fundamentale datastrukturer
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Design, verifikation og analyse
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Grafalgoritmer II.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
AT naturvidenskab og matematik SJ Karakteristika ved naturvidenskab Love og teorier Empiri (erfaring) Rationel, fornuftsmæssig, logisk – ikke holdning.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
FEN KbP/seminar1: ProgUdsagn1 Kontraktbaseret programmering Seminar 1 Programudsagn og programbeviser.
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
1 Udtømmende søgning. 2 Udtømmende søgning (kombinatorisk søgning) A B C D E F G Eksempel med 7 byer Den rejsende sælgers problem (TSP): En sælger skal.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Økonometri 1: F151 Økonometri 1 Specifikation og dataproblemer 10. november 2006.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Quiz Uge 2 – mandag.
Quiz Uge 2 – mandag.
Quiz Uge 2 – mandag.
Præsentationens transcript:

1 Problemkompleksitet

2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan løses med en effektiv algoritme, siges at være umedgørligt (eller svært) En effektiv algoritme: køretiden er opad begrænset af et polynomium Et problem, der kan løses med en effektiv algoritme, siges at være medgørligt (eller let) For en stor klasse af vigtige problemer kendes ingen løsningsalgoritmer, der kan garanteres at være hurtige

3 Eksempler på svære problemer •Den rejsende sælgers problem En sælger skal besøge N byer. Find en rejserute, der minimerer rejseomkostningerne •Planlægning Et antal opgaver af varierende varighed skal udføres på to identiske maskiner inden en vis tidsfrist. Kan tidsfristen overholdes? •Tilfredsstillelighed (satisfiability) Er det muligt at tildele sandhedsværdier til variablerne i et logisk udtryk, som gør det sandt? (a  b)  (  a  b)

4 Flere eksempler på svære problemer •Opdeling Givet en mængde af heltal. Findes der en opdeling i to delmængder, således at deres sum er ens? •Knudedækning Givet en graf og et heltal N. Findes der en mængde bestående af færre end N kanter, der berører alle grafens knuder? •3-farvning Kan knuderne i en graf farves med tre farver, således at hvert par af forbundne knuder har forskellig farve?

5 Mængden P Omfatter næsten alle programmer, der kører på eksisterende computere Karakteristikken “polynomiel tid” er uafhængig den valgte deterministiske computer og implementering Mængden af problemer, der kan løses med en deterministisk algoritme i polynomiel tid

6 Mængden af problemer, der kan løses ved en ikke-deterministisk algoritme i polynomiel tid Mængden NP Hvis en maskine kan gætte (og er heldig), så kan den løse et problem i NP hurtigt (i polynomiel tid) Konventionelle computere kan simulere heldige gæt i eksponentiel tid ved at afprøve enhver mulighed

7 Hovedspørgsmålet Hvilken relation er der imellem P og NP ? P = NP : vi behøver ikke at bruge ikke-determinisme for at løse problemet i polynomiel tid P ≠ NP : umedgørlige (hårde) problemer kan ikke løses i polynomiel tid, undtagen ved brug af ikke-determinisme For mange problemer er der ikke andre løsningsmetoder end at prøve enhver mulighed, men ingen har endnu været i stand til at bevise, at der findes noget problem i NP \ P

8 NP -komplette problemer Hvis et NP -komplet problem kan løses i polynomiel tid, så kan alle problemer i NP løses i polynomiel tid Et problem i NP siges at være NP -komplet, hvis eksistensen af en polynomiel algoritme for problemet ville medføre, at P = NP Reduktion af problem A til problem B: * konverter en instans af A til en instans af B * løs B-instansen * konverter løsning af B til løsning af A Sætning: Hvis B er et NP -komplet problem, og A kan reduceres til B i polynomiel tid, så er A også NP -komplet.

9 Betydningen af NP -komplethed Tusindvis af problemer er blevet bevist at være NP -komplette Hvis blot ét af disse kan løses effektivt, så kan de alle Et bevis for, at der i det mindste findes et NP -komplet problem blev givet af Cook (1971). Han beviste, at logisk tilfredsstillelighed (satisfiability) er NP -komplet. Beviset herfor er kompliceret

10 P = NP ? Enten ( P = NP ) kan virkelige (deterministiske) computere være lige så effektive som computere, der er udstyret med ikke-determinisme. Men vi ved endnu ikke hvordan Eller ( P ≠  NP ) ikke-determinisme hjælper. Men det er en fiktion, og intet NP -komplet problem kan løses i polynomiel tid Praktisk talt ingen tror, at P = NP... men det er muligt At et problem er NP -komplet tages sædvanligvis som udtryk for, at der ikke findes nogen effektiv løsning Besvar spørgsmålet og tjen $ (

11 Afgørlighed Uafgørlige problemer er problemer, som ikke kan løses algoritmisk Eksempler: • Afgør, om en sætning i prædikatlogikken er gyldig eller ej •Afgør, om to syntaksbeskrivelser definerer det samme sprog •Bevis, at en algoritme altid terminerer (Stopproblemet)

12 (b) while (x > 1) if (x % 2 == 0) x = x / 2; else x = 3 * x + 1; Collatz sekvenser:(12, 9) Terminering? (a) while (x != 1) x = x - 2; 12, 6, 3, 10, 5, 16, 8, 4, 2, 1 9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1

13 Terminering? (fortsat) Programmets stopper, hvis og kun hvis Fermats sidste teorem er falsk For n ≥ 3 findes ikke tre heltal a, b, og c, så a n + b n = c n P. de Fermat ( ) Et bevis for teoremet blev fundet i 1994 (beviset er meget komplekst og fylder 150 sider) (c) for (int x = 3; ; x++) for (int a = 1; a <= x; a++) for (int b = 1; b <= x; b++) for (int c = 1; c <= x; c++) for (int n = 3; n <= x; n++) if (Math.pow(a,n) + Math.pow(b,n) == Math.pow(c,n)) System.exit(0);

14 Stopproblemet Definer: void A() { while (terminates(A)) /* do nothing */; } Stopper et kald af A ? Det er umuligt at konstruere en algoritme, der for enhver algoritme A kan afgøre, om denne terminerer Bevis (indirekte): Antag eksistensen af terminates(A), som for enhver metode A returnerer true, hvis A terminerer; ellers false