http://heuristieken.nl/wiki/api.php?action=feedcontributions&user=Quinten&feedformat=atom
Daan - User contributions [en]
2024-03-28T15:35:23Z
User contributions
MediaWiki 1.30.0
http://heuristieken.nl/wiki/index.php?title=RailNL&diff=2542
RailNL
2018-04-10T12:53:58Z
<p>Quinten: /* Opdracht deel 1: Noord- en Zuid-Holland */</p>
<hr />
<div><br />
<br />
<br />
[[Image:railnl.jpg|thumb|right|A song by JaRule.]]<br />
==Inleiding==<br />
<br />
Een dienstregeling voor treinverkeer bestaat eigenlijk uit vier planningsonderdelen: <br />
<br />
<br />
1. De lijnvoering: Wat zijn de trajecten waarover de treinen gedurende de dag heen en weer rijden?<br />
<br />
2. De dienstregeling: hoe laat vertrekken de treinen van de stations over de trajecten?<br />
<br />
3. Het materieelrooster: welk treinstel en welke wagons zijn op welk moment op welke plaats?<br />
<br />
4. Het personeelsrooster: zijn alle treinen bemand door tenminste één bestuurder en twee conducteurs?<br />
<br />
<br />
Deze case gaat over het eerste deel, het maken van de lijnvoering. Meer specifiek: over de lijnvoering van intercitytreinen. Dat betekent dat je binnen een gegeven tijdsframe een aantal trajecten uitzet. Een traject is een route van sporen en stations waarover treinen heen en weer rijden. Een traject mag niet langer zijn dan het opgegeven tijdsframe.<br />
<br />
<br />
'''Voorbeeld''': Het traject [Castricum , Zaandam , Hoorn , Alkmaar] is een traject met een duur van 59 minuten, en zou dus binnen het tijdseframe van een uur passen.<br />
<br />
<br />
==Opdracht deel 1: Noord- en Zuid-Holland==<br />
<br />
In de provincies Noord- en Zuid-Holland liggen in totaal 118 treinstations, waarvan de 22 belangrijkste intercitystations met de tussenliggende spoorverbindingen, in een [http://www.heuristieken.nl/resources/ConnectiesHolland.csv .csv-bestand] zijn opgeslagen. De getallen die achter een verbinding staan zijn de reistijden in minuten.<br />
<br />
<br />
Van deze 22 stations zijn er 7 door RailNL als ''kritiek'' bestempeld: Alkmaar, Amsterdam Centraal, Den Haag Centraal, Gouda, Haarlem, Rotterdam Centraal en Zaandam. Je vindt ze [http://www.heuristieken.nl/resources/StationsHolland.csv in dit csv-bestand] samen met hun x/y-coordinaten. Als deze stations niet regelmatig aangedaan worden treden er in de Randstad enorme logistieke problemen op door de grote aantallen overstappers op deze stations. De spoorverbindingen van en naar deze stations worden daarom ''kritieke verbindingen'' genoemd. <br />
<br />
<br />
a) Maak een lijnvoering voor Noord-Holland met maximaal zeven trajecten binnen een tijdsframe van twee uur, waarbij zoveel mogelijk van de kritieke sporen bereden wordt. Als je 100% haalt heb je uiteraard de maximaal haalbare score bereikt.<br />
<br />
<br />
RailNL heeft recentelijk een scorefuntie opgesteld voor de kwaliteit van de lijnvoering. Als 100% van van de kritieke verbindingen bereden wordt, scoor je 10000 punten op je lijnvoering, anders krijg je een precentage daarvan. Maar hoe minder treinen je laat rijden voor dezelfde service, hoe beter. En in hoe minder tijd de treinen rijden om de lijnvoering ten uitvoer te brengen, hoe goedkoper. Dus die factoren worden ook meegewogen in de scorefunctie:<br />
<br />
<br />
<br />
S = p*10000 - (t*20 + min/10)<br />
<br />
<br />
waarin S de score is, p het percentage van de bereden kritieke verbindingen, t het aantal treinen en min het totaal door alle treinen samen gereden aantal minuten in de lijnvoering.<br />
<br />
<br />
b) Maak wederom een lijnvoering voor Noord-Holland met maximaal zeven trajecten binnen een tijdsframe van twee uur, en probeer nu de score S zo hoog mogelijk te krijgen.<br />
<br />
<br />
c) Ga er nu vanuit dat alle sporen in Holland kritiek zijn. Hoe hoog kun je nu de score maken?<br />
<br />
==Opdracht deel 2: Nederland==<br />
<br />
<br />
Are you ready for something bigger? We gaan nu heel Nederland doen. Vind hier het [http://www.heuristieken.nl/resources/ConnectiesNationaal.csv bestand met spoorverbindingen] en het [http://www.heuristieken.nl/resources/StationsNationaal.csv bestand met intercitystations voor heel Nederland], wederom met hun x/y-coordinaten.<br />
<br />
<br />
d) Maak wederom een lijnvoering voor heel Nederland met maximaal twintig trajecten binnen een tijdsframe van drie uur, en probeer nu de score S zo hoog mogelijk te krijgen. De scorefunctie blijft ongewijzigd.<br />
<br />
<br />
e) Doe hetzelfde waarbij je alle sporen van Nederland als kritiek beschouwt. <br />
<br />
<br />
f) Maak een aantrekkelijke visualisatie van je resultaten. Hoe je dat doet, mag je zelf bepalen.<br />
<br />
<br />
==Advanced==<br />
<br />
<br />
g) Utrecht Centraal gaat op de schop, en alle treinverbindingen van en naar Utrecht komen tijdelijk te vervallen omdat ze vervangen worden door bussen. Alle verbindingen ''tussen de stations die verbonden zijn met Utrecht'' zijn nu kritiek. Maak wederom een lijnvoering.<br />
<br />
<br />
h) Test voor uitval van andere stations hoe groot de impact is op je beste lijnvoering.<br />
<br />
<br />
==Questions & Answers ==<br />
<br />
Deze questions & answers dienen ter verduidelijking van de case. Omdat we als stelregel de cases niet veranderen terwijl het vak loopt, mag je ervoor kiezen deze Q&A in de versie Fall 2017 te negeren als je dat wil. We denken echter wel dat de case ''beter'' is mét inachtname van deze vragen.<br />
<br />
<br />
'''1) Zit er een typfout in de scorefunctie?''' <br />
<br />
Nee, die is hersteld (maart 2018), hij is goed zoals hij is.<br />
<br />
<br />
'''2) maar?''' <br />
<br />
Het zou wel kunnen dat de case beter geparametriseerd is met 40 in plaats van 20. Dit is een historisch discussiepunt, ontstaan omdat 'trajecten' historisch gesproken twee treinen zouden bevatten (de ene kant op, de andere kant op). <br />
<br />
<br />
'''3) Wat is het verschil tussen een trein en een traject?'''<br />
<br />
Is er niet. We hebben tijdens het maken altijd aangenomen dat een trein op een traject heen en weer rijdt. Bij onze kennis is dat in het echt ook zo. Dus je hoeft geen treinen over de trajecten te variëren of iets dergelijks. Sterker nog: laat die hele term 'trein' maar weg. We praten alleen nog maar over trajecten.<br />
<br />
== Links & Trivia ==<br />
<br />
De eerste versie van deze case is in juni 2017 ontwikkeld door Rob Hesselink en Jens van der Pol in het kader van Advanced Heuristics. <br />
<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2314
Lesroosters & Lectures
2017-10-28T16:35:38Z
<p>Quinten: </p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-Case1"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<span class="mw-customtoggle-Case1">Klik hier voor details Case.I</span><br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-Case2"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<span class="mw-customtoggle-Case2">Klik hier voor details Case.II</span><br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-Case3"><br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
<span class="mw-customtoggle-Case3">Klik hier voor details Case.III</span><br />
<div class="mw-collapsible-content"><br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* En tenslotte een lijst van [http://www.heuristieken.nl/resources/studentenenvakken.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief.<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
'''Vakken.III '''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Werkcolleges<br />
! Wercollege capaciteit<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 1<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 2<br />
| 25<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 2<br />
| 40<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Data Mining<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 2<br />
| 15<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 2<br />
| 20<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Software engineering<br />
| 1<br />
| 2<br />
| 40<br />
|-<br />
| Technology for games<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 2<br />
| 20<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 1<br />
| 15<br />
|}<br />
</div><br />
</div><br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2313
Lesroosters & Lectures
2017-10-28T10:19:04Z
<p>Quinten: /* Zalen, Vakken en Inschrijvingen */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
<div class="mw-collapsible-content"><br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* En tenslotte een lijst van [http://www.heuristieken.nl/resources/studentenenvakken.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief.<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
'''Vakken.III '''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Werkcolleges<br />
! Wercollege capaciteit<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 1<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 2<br />
| 25<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 2<br />
| 40<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Data Mining<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 2<br />
| 15<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 2<br />
| 20<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Software engineering<br />
| 1<br />
| 2<br />
| 40<br />
|-<br />
| Technology for games<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 2<br />
| 20<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 1<br />
| 15<br />
|}<br />
</div><br />
</div><br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2312
Lesroosters & Lectures
2017-10-28T10:18:49Z
<p>Quinten: </p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
<div class="mw-collapsible-content"><br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* En tenslotte een lijst van [http://www.heuristieken.nl/resources/studentenenvakken.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief.<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
'''Vakken.III '''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Werkcolleges<br />
! Wercollege capaciteit<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 1<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 2<br />
| 25<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 2<br />
| 40<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Data Mining<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 2<br />
| 15<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 2<br />
| 20<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Software engineering<br />
| 1<br />
| 2<br />
| 40<br />
|-<br />
| Technology for games<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 2<br />
| 20<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 1<br />
| 15<br />
|}<br />
</div><br />
</div><br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2311
Lesroosters & Lectures
2017-10-28T10:17:56Z
<p>Quinten: /* De Allerbeste roosters */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
<div class="mw-collapsible mw-collapsed"><br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
<div class="mw-collapsible-content"><br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* En tenslotte een lijst van [http://www.heuristieken.nl/resources/studentenenvakken.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief.<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
'''Vakken.III '''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Werkcolleges<br />
! Wercollege capaciteit<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 1<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 2<br />
| 25<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 2<br />
| 40<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Data Mining<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 2<br />
| 15<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 2<br />
| 20<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Software engineering<br />
| 1<br />
| 2<br />
| 40<br />
|-<br />
| Technology for games<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 2<br />
| 20<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 1<br />
| 15<br />
|}<br />
</div><br />
</div><br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2310
Lesroosters & Lectures
2017-10-28T10:12:29Z
<p>Quinten: /* De Allerbeste roosters */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
<div class="mw-collapsible-content"><br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* De studenten en hun vakinschrijvingen worden gegeven door csv_link.link<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
'''Vakken.III '''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Werkcolleges<br />
! Wercollege capaciteit<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 1<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 2<br />
| 25<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 2<br />
| 20<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 2<br />
| 40<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Data Mining<br />
| 2<br />
| 2<br />
| 10<br />
|-<br />
| Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 2<br />
| 15<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 2<br />
| 20<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 1<br />
| 20<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 1<br />
| 15<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Software engineering<br />
| 1<br />
| 2<br />
| 40<br />
|-<br />
| Technology for games<br />
| 2<br />
| 1<br />
| 20<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 2<br />
| 20<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 1<br />
| 15<br />
|}<br />
</div><br />
</div><br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2309
Lesroosters & Lectures
2017-10-28T10:09:51Z
<p>Quinten: /* Betere en hele goede roosters */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
'''Vakken.II'''<br />
<br />
{| class="wikitable"<br />
! Zaalnummer<br />
! Max. capaciteit<br />
|-<br />
| A1.04<br />
| 41<br />
|-<br />
| A1.06<br />
| 22<br />
|-<br />
| A1.08<br />
| 20<br />
|-<br />
| A1.10<br />
| 56<br />
|-<br />
| B0.201<br />
| 48<br />
|-<br />
| C0.110<br />
| 117<br />
|-<br />
| C1.112<br />
| 60<br />
|}<br />
<br />
{| class="wikitable"<br />
! Vak<br />
! Hoorcolleges<br />
! Studenten per vak<br />
! Werkcolleges<br />
! Studenten per werkcollege<br />
|-<br />
| Advanced Heuristics<br />
| 1<br />
| 20<br />
| 2<br />
| 10<br />
|-<br />
| Algoritmen en complexiteit<br />
| 1<br />
| 43<br />
| 4<br />
| 21<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
| 49<br />
| 0<br />
| 0<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
| 21<br />
| 0<br />
| 0<br />
|-<br />
| Autonomous Agents 2<br />
| 2<br />
| 22<br />
| 6<br />
| 7<br />
|-<br />
| Bioinformatica<br />
| 3<br />
| 45<br />
| 6<br />
| 15<br />
|-<br />
| Calculus 2<br />
| 1<br />
| 106<br />
| 3<br />
| 35<br />
|-<br />
| Collectieve Intelligentie<br />
| 3<br />
| 61<br />
| 8<br />
| 15<br />
|-<br />
| Compilerbouw<br />
| 2<br />
| 69<br />
| 4<br />
| 34<br />
|-<br />
| Compilerbouw (practicum)<br />
| 0<br />
| 40<br />
| 3<br />
| 13<br />
|-<br />
| Data Mining<br />
| 2<br />
| 27<br />
| 6<br />
| 9<br />
|-<br />
| Databases 2<br />
| 1<br />
| 72<br />
| 2<br />
| 36<br />
|-<br />
| Heuristieken 1<br />
| 1<br />
| 44<br />
| 2<br />
| 22<br />
|-<br />
| Heuristieken 2<br />
| 1<br />
| 32<br />
| 2<br />
| 16<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 2<br />
| 21<br />
| 4<br />
| 10<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
| 25<br />
| 0<br />
| 0<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
| 84<br />
| 0<br />
| 0<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
| 54<br />
| 0<br />
| 0<br />
|-<br />
| Machine Learning<br />
| 2<br />
| 22<br />
| 0<br />
| 0<br />
|-<br />
| Moderne Databases<br />
| 1<br />
| 54<br />
| 6<br />
| 18<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 0<br />
| 64<br />
| 4<br />
| 16<br />
|-<br />
| Programmeren in Java 2<br />
| 0<br />
| 110<br />
| 6<br />
| 18<br />
|-<br />
| Project Genetic Algorithms<br />
| 0<br />
| 36<br />
| 3<br />
| 12<br />
|-<br />
| Project Numerical Recipes<br />
| 0<br />
| 44<br />
| 3<br />
| 14<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 2<br />
| 51<br />
| 3<br />
| 17<br />
|-<br />
| Software engineering<br />
| 1<br />
| 75<br />
| 4<br />
| 37<br />
|-<br />
| Technology for games<br />
| 2<br />
| 38<br />
| 2<br />
| 19<br />
|-<br />
| Webprogrammeren en databases<br />
| 2<br />
| 39<br />
| 4<br />
| 19<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 0<br />
| 42<br />
| 3<br />
| 14<br />
|}<br />
</div><br />
</div><br />
<br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* De studenten en hun vakinschrijvingen worden gegeven door csv_link.link<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2308
Lesroosters & Lectures
2017-10-28T10:06:36Z
<p>Quinten: /* Goede en slechte roosters */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed"><br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
<div class="mw-collapsible-content"><br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
'''Vakken.I'''<br />
<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Zaalnummer<br />
|-<br />
| A1.04<br />
|-<br />
| A1.06<br />
|-<br />
| A1.08<br />
|-<br />
| A1.10<br />
|-<br />
| B0.201<br />
|-<br />
| C0.110<br />
|-<br />
| C1.112<br />
|}<br />
<br />
{| class="wikitable mw-collapsible"<br />
! Vak<br />
! Aantal activiteiten<br />
|-<br />
| Advanced Heuristics<br />
| 3<br />
|-<br />
| Algoritmen en complexiteit<br />
| 5<br />
|-<br />
| Analysemethoden en -technieken<br />
| 1<br />
|-<br />
| Architectuur en computerorganisatie<br />
| 2<br />
|-<br />
| Autonomous Agents 2<br />
| 8<br />
|-<br />
| Bioinformatica<br />
| 9<br />
|-<br />
| Calculus 2<br />
| 4<br />
|-<br />
| Collectieve Intelligentie<br />
| 11<br />
|-<br />
| Compilerbouw<br />
| 6<br />
|-<br />
| Compilerbouw (practicum)<br />
| 3<br />
|-<br />
| Data Mining<br />
| 8<br />
|-<br />
| Databases 2<br />
| 3<br />
|-<br />
| Heuristieken 1<br />
| 3<br />
|-<br />
| Heuristieken 2<br />
| 3<br />
|-<br />
| Informatie- en organisatieontwerp<br />
| 6<br />
|-<br />
| Interactie-ontwerp<br />
| 2<br />
|-<br />
| Kansrekenen 2<br />
| 2<br />
|-<br />
| Lineaire Algebra<br />
| 2<br />
|-<br />
| Machine Learning<br />
| 2<br />
|-<br />
| Moderne Databases<br />
| 7<br />
|-<br />
| Netwerken en systeembeveiliging<br />
| 4<br />
|-<br />
| Programmeren in Java 2<br />
| 6<br />
|-<br />
| Project Genetic Algorithms<br />
| 3<br />
|-<br />
| Project Numerical Recipes<br />
| 3<br />
|-<br />
| Reflectie op de digitale cultuur<br />
| 5<br />
|-<br />
| Software engineering<br />
| 5<br />
|-<br />
| Technology for games<br />
| 4<br />
|-<br />
| Webprogrammeren en databases<br />
| 6<br />
|-<br />
| Zoeken sturen en bewegen<br />
| 3<br />
|}<br />
</div><br />
</div><br />
<br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* De studenten en hun vakinschrijvingen worden gegeven door csv_link.link<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten
http://heuristieken.nl/wiki/index.php?title=Lesroosters_%26_Lectures&diff=2307
Lesroosters & Lectures
2017-10-28T08:50:11Z
<p>Quinten: /* Goede en slechte roosters */</p>
<hr />
<div><br />
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]<br />
<br />
<br />
==Werkpagina==<br />
<br />
<br />
Dit is de werkpagina van team Van der Post (revisie L&L fall 2017).<br />
<br />
<br />
==Woord Vooraf==<br />
<br />
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.<br />
<br />
<br />
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. De opgave kan daarom run-time aangepast worden om de studenten een volwaardige leercurve te bieden. Dit gebeurt altijd in samenspraak.<br />
<br />
<br />
==Inleiding==<br />
<br />
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park. Ieder vak uit de lijst moet ingeroosterd worden, en er bestaat verschil tussen goede en slechte roosters.<br />
<br />
<br />
==Goede en slechte roosters==<br />
<br />
Allereerst gaan jullie een rooster vullen met alleen de colleges. Je hoeft je nog geen zorgen te maken om studenten of zaalbezetting. <br />
<br />
'''De Details.I'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
<br />
<br />
'''Evaluatie.I'''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
<br />
'''Strafpunten.I'''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 10 strafpunten per conflict.<br />
<br />
==Betere en hele goede roosters==<br />
<br />
Dit keer zullen jullie in het rooster rekening moeten houden met de capaciteiten van de zalen en het verschil tussen hoor en werkcolleges. De activiteiten van ieder vak zijn nu onderverdeeld in hoorcelleges en werkcolleges én er is een aantal studenten toegewezen aan elk vak. <br />
Dit betekent dat als er twee activiteiten van een vak tegelijk zijn ingeroosterd en een conflict optreedt voor de studenten die aan beide activiteiten moeten deelnemen!<br />
<br />
'''De Details.II'''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Alle werkcolleges van een vak hebben evenveel studenten.<br />
<br />
'''Evaluatie.II '''<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.II '''<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* In plaats van een vaste hoeveelheid strafpunten voor ieder vak dat meer dan één activiteit in een tijdsslot heeft (een roosterconflict), geldt er nu 1 maluspunt per student die dubbel is geroosterd.<br />
** Hoorcollege (50 studenten) én werkcollege (25 studenten) op Dinsdag 11 tot 13? Dat zijn dan 25 strafpunten.<br />
** Werkcollege én werkcollege (15 studenten) op Donderdag 15 to 17? Dat zijn dan 15 strafpunten.<br />
<br />
==De Allerbeste roosters==<br />
<br />
Als laatste zal jullie rooster unieke (individuele) studenten bevatten. Iedere student heeft een persoonlijk vakkenpakket en het idee is natuurlijk dat die student naar elke activiteit kan gaan van dat vak. Het aantal werkcolleges en de hoeveelheid studenten per werkcollege staan nu niet meer vast. Jullie vullen de werkgroepen zelf! <br />
<br />
'''De Details.III '''<br />
<br />
* Er zijn 7 zalen beschikbaar in het rooster.<br />
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd<br />
* Een geldig weekrooster is een weekrooster waarvoor alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.<br />
* Elke zaal heeft een unieke capaciteit.<br />
** Alle zalen zijn voor alle collegetypes geschikt.<br />
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.<br />
* Ieder vak heeft x aantal werkcolleges met een bepaalde capaciteit.<br />
** Iedere student van het vak moet elk werkcollege 1 keer bijwonen.<br />
** Het kan dus zijn dat je de werkcolleges in werkgroepen moet verdelen!<br />
* Er mogen niet meer studenten in een werkgroep dan de gegeven capaciteit.<br />
* De studenten en hun vakinschrijvingen worden gegeven door csv_link.link<br />
<br />
'''Evaluatie.III '''<br />
<br />
* Een geldig weekrooster levert 1000 punten op. Conflicten in je werkrooster kosten een bepaald aantal strafpunten.<br />
<br />
'''Strafpunten.III '''<br />
<br />
* Voor ieder vak van x activiteiten geldt dat ze 10 strafpunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.<br />
* Voor ieder zaalslot geldt dat er één maluspunt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past.<br />
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 strafpunt per conflict.<br />
<br />
==Zalen, Vakken en Inschrijvingen== <br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Zaalnummber<br />
! Max. capaciteit<br />
|-<br />
| align="left" | A1.04<br />
| 41 <br />
|-<br />
| align="left" | A1.06<br />
| 22 <br />
|-<br />
| align="left" | A1.08<br />
| 20 <br />
|-<br />
| align="left" | A1.10<br />
| 56 <br />
|-<br />
| align="left" | B0.201<br />
| 48 <br />
|-<br />
| align="left" | C0.110<br />
| 117 <br />
|-<br />
| align="left" | C1.112<br />
| 60 <br />
|}<br />
<br />
<br />
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"<br />
! Vakken voor periode 4<br />
! #Hoorcolleges<br />
! #Werkcolleges<br />
! Max. stud.<br />
! #Practica<br />
! Max. stud.<br />
|-<br />
| align="left" | Advanced Heuristics <br />
| 1 <br />
| 0<br />
| nvt<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Algoritmen en complexiteit<br />
| 1<br />
| 1<br />
| 25<br />
| 1<br />
| 25<br />
|-<br />
| align="left" | Analysemethoden en -technieken <br />
| 1<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Architectuur en computerorganisatie<br />
| 2<br />
| 0<br />
| nvt<br />
| 0 <br />
| nvt<br />
|-<br />
| align="left" | Autonomous Agents 2<br />
| 2<br />
| 1 <br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Bioinformatica <br />
| 3<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Calculus 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt<br />
|- <br />
| align="left" | Collectieve Intelligentie<br />
| 3 <br />
| 1 <br />
| 20 <br />
| 1 <br />
| 20<br />
|-<br />
| align="left" | Compilerbouw <br />
| 2 <br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Compilerbouw (practicum)<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Data Mining <br />
| 2 <br />
| 1<br />
| 10<br />
| 1<br />
| 10<br />
|-<br />
| align="left" | Databases 2<br />
| 1<br />
| 1<br />
| 40<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Heuristieken 1<br />
| 1<br />
| 1<br />
| 25<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Heuristieken 2<br />
| 1<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Informatie- en organisatieontwerp <br />
| 2<br />
| 1<br />
| 15<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Interactie-ontwerp <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Kansrekenen 2 <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Lineaire Algebra <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Machine Learning <br />
| 2<br />
| 0<br />
| nvt<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Moderne Databases<br />
| 1<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Netwerken en systeembeveiliging<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Programmeren in Java 2 <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Project Genetic Algorithms<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Project Numerical Recipes<br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|-<br />
| align="left" | Reflectie op de digitale cultuur <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt <br />
|-<br />
| align="left" | Software engineering <br />
| 1<br />
| 1<br />
| 40<br />
| 1<br />
| 40<br />
|-<br />
| align="left" | Technology for games <br />
| 2<br />
| 1<br />
| 20<br />
| 0<br />
| nvt<br />
|-<br />
| align="left" | Webprogrammeren en databases<br />
| 2<br />
| 1<br />
| 20<br />
| 1<br />
| 20<br />
|-<br />
| align="left" | Zoeken, sturen en bewegen <br />
| 0<br />
| 0<br />
| nvt<br />
| 1<br />
| 15<br />
|}<br />
<br />
<br />
En tenslotte een lijst van [http://www.heuristieken.nl/resources/studenten_roostering.csv studenten en hun vakinschrijvingen] in csv-formaat. Namen en data in deze lijst zijn volledig fictief. '''Update''': de oude lijst bleek wat lastig mee te werken, daarom hier een [http://www.heuristieken.nl/resources/studentenenvakken.csv geupdate lijst van studenten en hun vakinschrijvingen], met dank aan Bart van Baal, waarin de typo "organsatie" en de scheiding van "zoeken, sturen bewegen" zijn verwijderd.<br />
<br />
==Vragen en antwoorden==<br />
<br />
'''Soms moet een werkcollege in drie groepen opgedeeld worden vanwege het aantal studenten. Hoe zit dan de bonus- en malusverdeling?''' <br />
<br />
Dit is een open issue waarop we geen antwoord hebben. We vinden het raar om maluspunten toe te kennen als deze deze drie groepen op dezelfde dag gepland worden. Anderzijds vinden we het ook raar als al deze groepen op deelfde dag als een hoorcollege gepland worden. Dus we weten het niet.<br />
<br />
Mensen van de huidige editie (Fall 2016) mogen deze regel interpreteren zoals het ze uitkomt. <br />
<br />
<br />
Als suggestie wordt gegeven dat verschillende groepen van een werkcollege geen verschillende activiteiten zijn, en de weekafstand tussen een hoor- en een werkcollege is de *kortste* weekafstand tot een groep.<br />
<br />
==Advanced==<br />
<br />
<br />
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.<br />
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.<br />
<br />
<br />
==Links==<br />
<br />
Dit is misschien ook interessant:<br />
<br />
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf<br />
<br />
http://www.metaheuristics.net/downloads/tthardness04.pdf<br />
<br />
==Terug==<br />
<br />
Terug naar de [[Heuristieken|Heuristieken hoofdpagina]].</div>
Quinten