Practicum I&M College deel 1

31
Practicum I&M College deel 1 Docent: Marjan van den Akker Studentassistent: Leonard Tersteeg http://www.cs.uu.nl/docs/ vakken/pim/

description

Practicum I&M College deel 1. Docent: Marjan van den Akker Studentassistent: Leonard Tersteeg http://www.cs.uu.nl/docs/vakken/pim/. Doel:. Verkrijgen van programmeer-ervaring Kennismaking I&M vraagstuk Individuele programmeer-opdracht in Java. Krantenbezorgers op Manhattan:. Opdracht - PowerPoint PPT Presentation

Transcript of Practicum I&M College deel 1

Page 1: Practicum I&M College deel 1

Practicum I&MCollege deel 1

Docent: Marjan van den Akker

Studentassistent: Leonard Tersteeg

http://www.cs.uu.nl/docs/vakken/pim/

Page 2: Practicum I&M College deel 1

Doel:

• Verkrijgen van programmeer-ervaring

• Kennismaking I&M vraagstuk

Individuele programmeer-opdracht in Java

Page 3: Practicum I&M College deel 1

Krantenbezorgers op Manhattan:

• Opdracht

• Achtergrond

• Heuristieken (1)

• Werkwijze

Page 4: Practicum I&M College deel 1

Depot

Opdracht

Gegeven:– Centraal depot– Locaties kranten-abonnees– Krantenbezorgers

Page 5: Practicum I&M College deel 1

Opdracht (2)

Ontwikkelen van java-tool voor:

Bepalen en weergeven van routes voor de

krantenbezorgers zodanig dat de kosten zo laag

mogelijk zijn

Page 6: Practicum I&M College deel 1

Verplichte functionaliteit:

• Inlezen locaties depot en abonnees en tekenen op scherm

• Inlezen van gegeven routes en weergeven op scherm

• Bepalen van routes met cheapest insertion heuristiek

• Bepalen van routes met simulated annealing• Gebruiker kan routes tekenen, en kosten worden

weergegeven.

Page 7: Practicum I&M College deel 1

Optionele functionaliteit

• Wegschrijven van routes naar een file

• Interactief veranderen van routes

• Uitrekenen van routes met nearest neighbour heuristiek

• Alternatieve implementatie van simulated annealing of andere heuristiek

• Mooie user interface

Page 8: Practicum I&M College deel 1

Aannamen

• Locaties zijn gegeven door (x,y)-coördinaat.

• Afstand: Manhattan afstandD((a,b),(c,d))= |a-c| + |b-d|

• Er zijn 5 krantenbezorgers

Page 9: Practicum I&M College deel 1

Aannamen (2)

Kosten w1 Tlaatste krant+ w2 Tgemiddeld

Tlaatste krant tijdstip waarop laatste krant bezorgd is

Tgemiddeld gemiddeld bezorgtijdstip over alle klanten

Tijd afstand

Page 10: Practicum I&M College deel 1

Routes

1. In simulated annealing worden routes veranderd.

2. Routes worden stapsgewijs opgebouwd en eventueel veranderd

Daarom:

Kies data-structuur voor route zodanig dat er

makkelijk abonnees uitgehaald en toegevoegd

kunnen worden.

Page 11: Practicum I&M College deel 1

Variant op Whizzkids prijsvraag:

www.win.tue.nl/whizzkids/1996/index.html

Page 12: Practicum I&M College deel 1
Page 13: Practicum I&M College deel 1

Achtergrond

– Routes plannen; welk route-plan heeft zo laag mogelijke kosten

• Abonnees verdelen over bezorgers

• Route bepalen per bezorger

– Eén bezorger heeft met n abonnees heeft

n! = n(n-1)(n-2) ….2.1

mogelijke routes.

Page 14: Practicum I&M College deel 1

N N!

2 2

5 120

10 3628800

15 1307674368000

25 15511210043330985984000000

Page 15: Practicum I&M College deel 1

Combinatorische optimalisering

• Heel veel oplossingen, welke is de beste?

• Exact de beste oplossing vinden: (slim) aftellen; heel veel rekentijd

• Heuristiek: vind redelijke oplossing in kortere tijd

Page 16: Practicum I&M College deel 1

Voorbeeld: Handelsreizigersprobleem (TSP)• Gegeven: n steden

• D(i.,j) afstand van stad i naar stad j

• Wat is de kortste route langs alle steden?

Page 17: Practicum I&M College deel 1

Cheapest insertion heuristiek TSPInitialisatie:

ga uit van tour met één punt

Uitbreiding:

i0 i1, i2,…,im,i0 tour langs gedeelte van de steden.

I. Bepaal voor elke stad j buiten de route hoeveel het kost om deze zo goedkoop mogelijk toe te voegen. Laat j* de stad zijn waarvoor deze kosten minimaal zijn.

II. Voeg j* zo goedkoop mogelijk toe

III. Als nog niet alle steden in de tour, ga naar stap I.

Page 18: Practicum I&M College deel 1

Cheapest insertion TSP (2)

• Toevoegen van stad j tussen ik en ik+1 kostI(j,k)=D(ik,j) + D(j,ik+1) – D(ik, ik+1)

• Toevoegen stad j toe op de goedkoopste manier:

Bepaal k* waarvoor I(j,k) minimaal is Dus bepaal k* waarvoor:

I(j,k*) = mink{0,1,…,m} I(j,k)

en voeg j tussen ik* en ik*+1 toe.

Page 19: Practicum I&M College deel 1

Cheapest insertion Manhattan

1. Verdeel abonnees in 5 groepen

2. Pas cheapest insertion heuristiek toe op elk van de groepen.

Page 20: Practicum I&M College deel 1

Cheapest insertion per groep

• Als bij TSP, abonnees zijn steden

• Kosten komen overeen met afstand

• Bezorger hoeft niet terug naar depot, dus geen volledige tour

• Ook mogelijk om abonnee aan het eind toe te voegen

Page 21: Practicum I&M College deel 1

Verdeel abonnees in 5 groepen

x

y

Depot(x0,y0)

(y-y0)(x-x0)

+-

-+

Page 22: Practicum I&M College deel 1

Verdeel abonnees in groepen (2)

• x>x0: gesorteerd op (y-y0)(x-x0)

• x=x0, y>y0

• x<x0: gesorteerd op (y-y0)(x-x0)

• x=x0, y<y0

Verdeel in 5 groepen van gelijke grootte.

Page 23: Practicum I&M College deel 1

Nearest neighbour heuristiek TSP

Initialisatie: kies beginpunt

Uitbreiding:

i1, i2,…,ik route door gedeelte van de steden.

Voeg toe: j met D(ik,j) minimaal.

Page 24: Practicum I&M College deel 1

Nearest neighbour Manhattan

1. Verdeel abonnees in 5 groepen als bij cheapest insertion

2. Pas nearest neighbour heuristiek toe op elk van de groepen.

Page 25: Practicum I&M College deel 1

Werkwijze:In te leveren:

1. Werkende programma-code: alle JCreator files, met commentaar, readme file !

2. Verslag – Samenvatting opdracht– Klasse-structuur– Evaluatie

In zip archief via submit (opgave 26):www.cs.uu.nl/docs/submit/index.php?opgave

Programma moet mondeling worden toegelicht

Page 26: Practicum I&M College deel 1

Beoordeling

• Werking van het programma

• Structuur

• Commentaar

• User interface

• Milestones

• Mondelinge toelichting

Page 27: Practicum I&M College deel 1

Planning

• Opdracht uit te voeren in 7 weken

• Effort: 160 uur = 7 x 23 uur

• Inleverdatum:Uiterlijk vrijdag 28 juni 23.59 uur !!!!!

Anders herkansing!!

Page 28: Practicum I&M College deel 1

Milestones:

• 22 mei: abonnees inlezen en tekenen• 6 juni: routes inlezen, weergeven, cheapest

insertion• 20 juni: simulated annealing

Functionaliteit af aan begin practicumDemonsteren en eventueel toelichten

Milestone missen = minpunten eindcijfer

Page 29: Practicum I&M College deel 1

Hints

• Maak EERST een opzet (klasse-structuur), in te leveren bij eerste milestone!

• Versie management !!

• Stel werk niet uit!!

Beste oplossing: fles wijn !!!!

Page 30: Practicum I&M College deel 1

Vragen

Begeleid practicum:– Maandag 15-17, BBL 456,458 (week 22-26)– Woensdag 9-11, BBL 456,458 (week 20, 21)– Donderdag 15-17 , BBL 456,458 (week 20-26)

Student-assistent: java, computer

Docent: opzet, algoritmen

Page 31: Practicum I&M College deel 1

Veel succes !!!