Practicum I&M College deel 1

Post on 09-Jan-2016

41 views 0 download

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

Practicum I&MCollege 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

• Achtergrond

• Heuristieken (1)

• Werkwijze

Depot

Opdracht

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

Opdracht (2)

Ontwikkelen van java-tool voor:

Bepalen en weergeven van routes voor de

krantenbezorgers zodanig dat de kosten zo laag

mogelijk zijn

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.

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

Aannamen

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

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

• Er zijn 5 krantenbezorgers

Aannamen (2)

Kosten w1 Tlaatste krant+ w2 Tgemiddeld

Tlaatste krant tijdstip waarop laatste krant bezorgd is

Tgemiddeld gemiddeld bezorgtijdstip over alle klanten

Tijd afstand

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.

Variant op Whizzkids prijsvraag:

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

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.

N N!

2 2

5 120

10 3628800

15 1307674368000

25 15511210043330985984000000

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

Voorbeeld: Handelsreizigersprobleem (TSP)• Gegeven: n steden

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

• Wat is de kortste route langs alle steden?

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.

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.

Cheapest insertion Manhattan

1. Verdeel abonnees in 5 groepen

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

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

Verdeel abonnees in 5 groepen

x

y

Depot(x0,y0)

(y-y0)(x-x0)

+-

-+

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.

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.

Nearest neighbour Manhattan

1. Verdeel abonnees in 5 groepen als bij cheapest insertion

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

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

Beoordeling

• Werking van het programma

• Structuur

• Commentaar

• User interface

• Milestones

• Mondelinge toelichting

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!!

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

Hints

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

• Versie management !!

• Stel werk niet uit!!

Beste oplossing: fles wijn !!!!

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

Veel succes !!!