Les 7 - Onoplosbare problemen - over tijdcomplexiteit

Bubble sort
Over tijdcomplexiteit
Onoplosbare problemen
1 / 31
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

In deze les zitten 31 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 50 min

Onderdelen in deze les

Bubble sort
Over tijdcomplexiteit
Onoplosbare problemen

Slide 1 - Tekstslide

Leerdoel
Aan het eind van deze les kun je uitleggen waarom verschillende problemen een andere tijdcomplexiteit hebben. Ook ken je een voorbeeld van een onoplosbaar probleem en kun je rijk worden door het P- vs NP-probleem op te lossen.

Slide 2 - Tekstslide

Onoplosbare problemen?
  • Niet voor alle problemen is er een perfect algoritme
  • Hoe dat zit en wat voor problemen zijn dat?


Slide 3 - Tekstslide

Het rugzakprobleem
Stel...

  • In je rugzak past maximaal 12 kg.
  • Je wilt zoveel mogelijk waarde
    (in euro’s) meenemen

Welke dozen moet je in je rugzak
stoppen?

timer
1:00

Slide 4 - Tekstslide

Sleep de dozen die samen zoveel mogelijk waarde (in euro's) vormen in de rugzak
timer
1:00

Slide 5 - Sleepvraag

Oplossing van het rugzakprobleem
De doos van €12 heeft weliswaar de hoogste waarde, maar als je deze doos kiest, mag er nog maar 1 kilogram in de rugzak. Je kunt dan maximaal €2 aan waarde toevoegen,
voor een totaal van €14. De combinatie
van de lichtere dozen
(€2 + €2 + €3 + €8 = €15) is meer waard.

Slide 6 - Tekstslide

Het rugzakprobleem in de praktijk
  • Het rugzakprobleem komt in de praktijk vaak voor, bijvoorbeeld bij het laden van een vrachtwagen
  • Of wanneer jij bepaalt waaraan je je zuur verdiende geld uitgeeft.
  • Bij veel voorwerpen bestaat er geen snel
    algoritme
    dat dit probleem kan oplossen

Wat is er dan wel mogelijk?


Slide 7 - Tekstslide

Correctheid en efficiëntie
Een algoritme maken dat alle mogelijkheden langsgaat
  • Dit heet een brute-forcealgoritme
  • Het levert altijd een correcte oplossing
  • Maar het is niet efficiënt

Een algoritme maken dat zo dicht mogelijk in de buurt van de oplossing probeert te komen
  • Zo’n algoritme is wel efficiënt, maar niet (helemaal) correct


Slide 8 - Tekstslide

Je kent drie sorteeralgoritmen: bubble sort, merge sort en quicksort.

Welke van de drie lijkt erg veel op een bruteforce-algoritme?
A
Bubble sort
B
Merge sort
C
Quicksort

Slide 9 - Quizvraag

Bruteforce sorteeralgoritme
Bubble sort doorloopt steeds de hele lijst en verwisselt eventuele verkeerde combinaties van twee getallen, tot die er niet meer zijn. Dat lijkt erg op het langslopen van alle mogelijkheden, wat een bruteforce-algoritme doet.

Slide 10 - Tekstslide

Korstepadalgoritme
  • Gemaakt door de Nederlandse wiskundige
     Edsger Dijkstra (1930 - 2002).

  • Het algoritme van Dijkstra berekent in een gewogen
     graaf het kortste pad tussen twee plaatsen.  

Slide 11 - Tekstslide

Korstepadalgoritme
  • Om de kortste route te bepalen, is het handig om
    de plaatsen weer te geven in een schema.
    Zo'n schema wordt ook wel een graaf genoemd. 


  • Op de verbinding tussen de plaatsen kan de afstand in kilometers worden weergegeven. Een graaf waarin ook afstanden vermeld staan, heet een gewogen graaf.

Slide 12 - Tekstslide

Korstepadalgoritme
  • Cirkels zijn plaatsen.
  • Lijnen zijn mogelijke reizen.
  • Cijfers zijn afstanden in kilometers. Dit
    maakt dat het een gewogen graaf is.

Het algoritme vindt efficiënt de afstanden
tussen alle punten. 

Korstepadalgoritme

Slide 13 - Tekstslide

Opdracht 1
  • Voeg twee extra plaatsen toe aan
    de gewogen graaf: Arnhem en Zwolle.
  • Gebruik de kaart om te zien waar de
    plaatsen ongeveer moeten komen.
    In de volgende tabel staan de afstanden
    om de gewogen graaf compleet te maken.

timer
1:00

Slide 14 - Tekstslide

Uitwerking opdracht 1

Slide 15 - Tekstslide

Vraag 2
Kijk goed naar je uitwerking van
opdracht 1.

Via welke plaatsen, behalve Utrecht,
loopt de kortste route tussen
Den Haag en Arnhem?

Slide 16 - Tekstslide

Via welke plaatsen, behalve Utrecht,loopt de kortste route tussen Den Haag en Arnhem?
A
Den Helder
B
Amsterdam
C
Rotterdam
D
Zwolle

Slide 17 - Quizvraag

Uitwerking vraag 2
Het juiste antwoord is Rotterdam.

Als je de kilometers tussen
de plaatsen bij elkaar optelt,
is dit de kortste route.

Slide 18 - Tekstslide

Vraag 3
De weg tussen Utrecht en
Amsterdam is afgesloten vanwege
een ongeval. Daardoor moet er een
alternatieve route genomen worden
tussen Arnhem en Den Helder.

Hoeveel kilometer langer is deze
alternatieve route?
timer
1:00

Slide 19 - Tekstslide

Hoeveel kilometer langer is deze alternatieve route?
A
50 km
B
90 km
C
140 km

Slide 20 - Quizvraag

Antwoord vraag 3
De kortste route was
65 + 50 + 90 = 205 km.

De nieuwe route is via Rotterdam
en Den Haag:
65 + 60 + 25 + 55 + 90 = 295,
dat is 90 km langer.

Slide 21 - Tekstslide

Vraag 4
Bereken met het algoritme van
Dijkstra
de kortste afstand tussen
Den Haag en Zwolle.

Vul hierbij eenzelfde tabel in zoals
die gebruikt is in het voorbeeld
in de tekst en de video.
timer
3:00

Slide 22 - Tekstslide

Hoeveel kilometer langer is deze alternatieve route?
A
50 km
B
90 km
C
140 km

Slide 23 - Quizvraag

Uitwerking
vraag 4
De korste route is:
Den Haag - Rotterdam
- Utrecht - Zwolle
.

Slide 24 - Tekstslide

Vraag 5
Hiernaast zie je een gewogen graaf
van de plaatsen A t/m E en hun
onderlinge afstanden. Bepaal met
behulp van het algoritme van Dijkstra
de kortste route van A naar E. 

Vul hierbij eenzelfde tabel in zoals die gebruikt is in het voorbeeld
in de tekst en de video. Wat is de kortste route?
timer
3:00

Slide 25 - Tekstslide

Wat is de kortste route?
A
A-B-E
B
A-C-E
C
A-B-C-E
D
A-C-D-E

Slide 26 - Quizvraag

Uitwerking vraag 5
De kortste route is:
A - C - D - E en
is 60 km lang.

Slide 27 - Tekstslide

Met het algoritme van Dijksta kun je de kortste route bepalen tussen twee plaatsen in de graaf. Je kunt in plaats van de afstand ook de reistijd tussen de plaatsen vermelden.

Welke informatie kun je op die manier berekenen aan de hand van het algoritme van Dijkstra?
A
De snelste route
B
Hiermee bereken je óók de kortste route
C
De langste route
D
De meest efficiënte route

Slide 28 - Quizvraag

Welke informatie kun je berekenen?
Wellicht heb je "de meest efficiënte route" gekozen. Echter, voor de meest efficiënte route mis je de context. Dit antwoord is dus niet zo maar juist. In dit voorbeeld wordt de reistijd tussen de plaatsen aangegeven. Dan is de efficiëntie dus in tijd. Echter als jij op zoek bent naar de kortste route in kilometers, is dat niet altijd de kortste route in tijd, en dus niet de meest efficiënte route.

Slide 29 - Tekstslide

Leerdoel gehaald?
Aan het eind van deze les kun je uitleggen waarom het lastig is om een efficiënt algoritme te bedenken voor een routeplanner. Ook kun je een gewogen graaf maken en interpreteren en het kortstepadalgoritme van Dijkstra toepassen op gewogen grafen.

Slide 30 - Tekstslide

Doornemen
LessonUp
Les 4 - Standaard algoritmen - Routeplanning & Het kortstepadalgoritme

Slide 31 - Tekstslide