ACM/ICPC programmeringskonkurrencer - algoritmisk problemløsning og implementation under tidspres.

Slides:



Advertisements
Lignende præsentationer
Leg og lektier Idéer til 2-4 piger Alder 4. klasse
Advertisements

VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Fælles kompetenceudviklingsdag 25. september 2012, CABI
Kredsens udviklingsplan Del 1. Visionen - Vejen til nye initiativer i din kreds, og ikke mindst: Til succes!
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Flugtveje. Problemanalyse Hvordan finder man optimale flugtveje? Hvordan kan man finde optimale flugtveje ved hjælp af grafteori? Hvordan kan vores optimale.
Kommunikation / it.
Kredsens udviklingsplan Del 1. Visionen - Vejen til nye initiativer i din kreds, og ikke mindst: Til succes!
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
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.
Relationer – børn og voksne
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Representations for Path Finding in Planar Environments.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
New York City & Washington, D.C.  Her er basen (NY)
GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
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.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
ACM/ICPC programmeringskonkurrencer - algoritmisk problemløsning og implementation under tidspres.
Claus Brabrand, ITU, Denmark Apr 06, 2010Projekt: “Korteste Veje” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Rubik’s Cube Netværk og Algoritmer Af gruppe A215.
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 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel ]
OPSTART VI STARTER OM LIDT! Der bliver ikke optjent nogen kompensation hos ACN, med mindre der er formidlet kunder. Ingen uafhængig ACN-repræsentant er.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Lektion 7 Læsestof: Kopier fra Caranno
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Et eller andet datalogi…
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Grafalgoritmer II.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Hand Tracking - Using Active Shape Models. Introduktion Vi har implementeret en applikation i C++, der ved hjælp af Active Shape Models tracker en hånd.
Introduktion til netværk Hidtil: Lokalisering i planen Nu: Lokalisering i et netværk Hvad er et netværk - knuder - kanter.
Et eller andet datalogi… Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet Voronoi Diagrammer Datalogi, Studiestart 2013.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Grundlæggende programmering Forår 2002
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
DADS: Algoritmer og Datastrukturer Forelæser: Gerth S. Brodal (vikar: EMS) Forelæsninger: timer, Aud E Kvarter: 3. (dADS 1) + 4. (dADS 2) Øvelser:
Flugtveje.
Clicker Test a)Ja b)Nej c)Ved ikke. Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Single-Source Shortest Path i ekstern hukommelse Jonas Thomsen Ph.d. studerende Kvalifikationseksamen 27. september 2004.
Algoritmer og Datastrukturer 1 Heaps [CLRS, kapitel 6] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
SOK banelægning november 2010 Informationerne omkring banelægning kan findes: - / love og regler/reglement 2009 (3.14.1) -
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer Grådige Algoritmer [CLRS ]
Grundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

ACM/ICPC programmeringskonkurrencer - algoritmisk problemløsning og implementation under tidspres

Hvad er det? Programmeringsopgaver af algoritmisk natur. Kendskabet fra dADS1+2 er rigeligt til at klare langt de fleste opgaver. 3 mand og 1 computer på hvert hold, 5 timer til at løse 8-10 stillede opgaver. Lokal udtagelse til NWERC 2008 – ”DAIMI-mesterskabet i programmering” NWERC: 5 timers konkurrence i Utrecht, Holland d november De 2-3 bedst placerede hold (ud af ca. 50) går videre til World Finals. World Finals er typisk i april året efter. I 2005 var det i Kina (Shanghai), i 2006 USA (San Antonio, Texas), i 2007 Japan (Tokyo) og i 2008 Canada (Banff, Alberta).

Indhold Problemer af algoritmisk natur forklædt vha. underlige/sjove historier. Typiske emner er dynamisk programmering, grafteori, grådige algoritmer, datastrukturer, computational geometry og ”matematik”. Løsninger skal kodes i C/C++ eller Java og skal typiske løse alle (ukendte) testcases inden for 1-10 sekunder. Opgaver er stillet, så de kan løses med max linjers kode.

NWERC timers konkurrence, 10 opgaver stillet. 2 hold fra DAIMI, blev nr. 4 og 9 ud af 51.

NWERC timers konkurrence, 9 opgaver stillet. 2 hold fra DAIMI, blev nr. 8 og 19 ud af 46. Lignede resultater fra tidligere konkurrencer. 2004: Samme billede, DIKU fik bank.

Eksempler på opgaver Opgaver fra NWERC 2007: Assemble: ad hoc, grådig, søgning. March of the Penguins: grafteori, maximum flow. Containers: brute force, søgning. Youth Hostel Dream: (meget avanceret) dynamisk programmering. Escape from Enemy Territority: grafteori, bredde-først søgning, ”minimum udspændende træ” (eller binær søgning). Flight Safety: computational geometry. Summits: grafteori, datastrukturer, prioritetskø. Obfuscation: dynamisk programmering, strenge. Tower Parking: simulering. Walk: computational geometry, sortering, areal af polygon, punkt-i-polygon test. DAIMI-holdet Knuth Shot First til NWERC 2007.

Escape from Enemy Territority A small group of commandoes has infiltrated deep into enemy territory. They have just accomplished their mission and now have to return to their rendezvous point… Skal nå rendezvous-point og holde ”så stor afstand som muligt” til fjendens baser. Fra et punkt kan man gå op, ned, til højre eller venstre. Løsning: bredde-først søgning og dADS2 eksamensopgave august 2005 opgave 1b. STARTENEMY BASE GOAL

Escape from Enemy Territority STARTENEMY BASE 0 ENEMY BASE 0 ENEMY BASE 0 ENEMY BASE 0 GOAL Vi vil gerne vide for hvert punkt, hvad er afstanden til fjendens nærmeste base. Ide 1: For alle punkter lav en bredde-først søgning og find afstanden til den nærmeste base. Det er for langsomt! Køretiden er worst-case kvadratisk i antallet af punkter. Ide 2: Start fra alle fjendens baser (sæt afstand til 0) og lav bredde-først søgning ud til alle punkter. Køretiden er worst-case lineær i antallet af punkter.

Escape From Enemy Territority START 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 1 GOAL

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3 dADS2 aug opgave 1b): Givet to knuder i en vægtet graf, angiv en algoritme der finder en sti fra u til v, hvor vægten af den tungeste kant på stien er lettest mulig. Vores problem minder meget om dette. Skal holde så stor afstand som muligt, dvs. vi skal have en sti, hvor ”vægten af den letteste kant er så tung som mulig”. Løsningen er grådig (minder om Prims algoritme). Fra de punkter vi har set, gå til et nyt nabopunkt med størst mulig vægt.

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3 Vi opbevarer knuderne i en max-heap med deres BFS- afstand som nøgle. Startpunktet indsættes i prioritetskøen. Vi tager knuden med størst nøgle ud og kigger på dens naboer, som vi også indsætter i prioritetskøen (hvis vi ikke har kigget på dem før). Når vi når mål, er det den mindste nøgle, vi har taget ud fra prioritetskøen, der er svaret.

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3

Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE ENEMY BASE ENEMY BASE 0 12 GOAL 2 3 Svaret til denne instans er 2, da det er den mindste nøgle, vi har kigget på.

Hvad får man ud af det? Det er vældigt sjovt og udfordrende, hvis man godt kan lide at løse problemer af algoritmisk natur. Man bliver en bedre problemløser og bedre til at programmere. DAIMI sponsorerer turen til NWERC 2008 i Holland. Desuden en tur til World Finals, hvis man klarer sig godt. DAIMI-holdet Knuth Shot First med en grøn ballon, dvs. de har løst Escape from Enemy Territority.

Hvad får man ud af det?

Hvordan kommer man i gang? Mailingliste hvor vi annoncerer træninger, TopCoder SRMs og Topcoder: ”ugentlig” online konkurrence på ca. halvanden time. – Typisk deltagere fra hele verden. Træning, mandag 9-12 og torsdag i Stibitz-123. Vær med, når vi mødes til TopCoder SRMs. –Næste gang: I morgen kl i Stibitz-123. Træn på en online judge, har ofte tusindvis af opgaver. Vores bedste hold fra sidste år kan ikke være med næste år, da de er for gamle, så der er gode chancer for at komme med til Holland. Vi plejer også at være ret få folk til den lokale udtagelseskonkurrence (8 sidste år og 6 pladser).

Hvordan kommer man i gang?