Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "ACM/ICPC programmeringskonkurrencer - algoritmisk problemløsning og implementation under tidspres."— Præsentationens transcript:

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

2 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. 22.-23. november 2008. 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).

3 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. 50-150 linjers kode.

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

5 NWERC 2005 5 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.

6 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.

7 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

8 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.

9 Escape From Enemy Territority START 1 ENEMY BASE 0 1 ENEMY BASE 0 111 1 ENEMY BASE 0 1 11 ENEMY BASE 0 1 GOAL

10 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 2111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2

11 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

12 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3 dADS2 aug. 2005 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.

13 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 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.

14 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

15 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

16 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

17 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

18 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

19 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

20 Escape From Enemy Territority START 2 1 ENEMY BASE 0 1 ENEMY BASE 0 32111 221 ENEMY BASE 0 1 12212 ENEMY BASE 0 12 GOAL 2 3

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

22 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.

23 Hvad får man ud af det?

24 Hvordan kommer man i gang? Mailingliste algocomp@madalgo.au.dk, hvor vi annoncerer træninger, TopCoder SRMs og mere.algocomp@madalgo.au.dk Topcoder: ”ugentlig” online konkurrence på ca. halvanden time. – Typisk. 1000-1500 deltagere fra hele verden. Træning, mandag 9-12 og torsdag 13-16 i Stibitz-123. Vær med, når vi mødes til TopCoder SRMs. –Næste gang: I morgen kl. 16.30 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).

25 Hvordan kommer man i gang? http://daimi.au.dk/~mgreve/algocomp http://mailman.daimi.au.dk/mailman/listinfo/algocomp


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

Lignende præsentationer


Annoncer fra Google