lehrkraefte:blc:informatik:glf25:glueckswerkstatt:plan

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf25:glueckswerkstatt:plan [2025/10/29 08:17] – created Ivo Blöchligerlehrkraefte:blc:informatik:glf25:glueckswerkstatt:plan [2025/11/03 06:49] (current) – [Wichtige Code-Schnipsel] Ivo Blöchliger
Line 18: Line 18:
 === 1. Priorität eines Teilnehmers s === === 1. Priorität eines Teilnehmers s ===
 <code python> <code python>
-workshop_nummer = plan.o[s][0]+workshop_nummer = plan.o[s][0]  # 1. Prio  (Index [s][1] wäre zweite Prio etc.)
 </code> </code>
 === Workshop w zur Zeit t schon voll? === === Workshop w zur Zeit t schon voll? ===
 <code python> <code python>
 if plan.b[w][t] >= plan.m[w]: if plan.b[w][t] >= plan.m[w]:
-   # Tu wat+   # Tu wat, wenn Workshop w zur Zeit t schon voll
 else: else:
-   # Tu wat anderes+   # Tu wat anderes, wenn noch Platz im Workshop w zur Zeit t
 </code> </code>
  
Line 33: Line 33:
    w = plan.o[s][i]    w = plan.o[s][i]
    if plan.b[w][t] < plan.m[w]:  # Hat noch Platz?    if plan.b[w][t] < plan.m[w]:  # Hat noch Platz?
-      plan.schedule(s,w,t)    # Einplanen+      if plan.x[s][t]==-1:       # Teilnehmer s zur Zeit t noch nicht verplant? 
 +         if not w in plan.x[s]   # Teilnehmer s besucht Workshop w noch nicht? 
 +            plan.schedule(s,w,t) # Einplanen!
 </code> </code>
 Mögliche Variante für obigen Code: Mögliche Zeitfenster innerhalb der ''for i''-Schleife durchgehen (und so beide Zeitfenster ausnutzen). Mögliche Variante für obigen Code: Mögliche Zeitfenster innerhalb der ''for i''-Schleife durchgehen (und so beide Zeitfenster ausnutzen).
  
 === Umteilen === === Umteilen ===
-Teilnehmer suchen, die zur Zeit ''t'' den Workshop der Priorität ''p1'' besucht, in in den Workshop der Priorität ''p2'' umgeteilt werden könnte:+Teilnehmer suchen, die zur Zeit ''t'' den Workshop ''der Priorität ''p1'' besucht, in in den Workshop der Priorität ''p2'' umgeteilt werden könnte:
 <code python> <code python>
 +umteilbar = []
 for s in range(plan.S): for s in range(plan.S):
   if not plan.laueri[s]:  # Nur nicht Laueris (sonst keine Prioritäten-Liste o)   if not plan.laueri[s]:  # Nur nicht Laueris (sonst keine Prioritäten-Liste o)
-    if plan.x[s][t]==plan.o[s][p1]:   # s zur Zeit t in Workshop der Prio p1?+    if plan.x[s][t]==plan.o[s][p1]:   # Teilnehmer s zur Zeit t in Workshop der Prio p1 eingeteilt?
       w2 = plan.o[s][p2]  # Workshop der Prio p2       w2 = plan.o[s][p2]  # Workshop der Prio p2
       if plan.b[w2][t]<plan.m[w2]:  # Hat noch Platz       if plan.b[w2][t]<plan.m[w2]:  # Hat noch Platz
 +        umteilbar.append(s)
 </code> </code>
  
 +=== Zufällige Reihenfolge ===
 +Hier am Beispiel der Teilnehmernummern
 +<code python>
 +import random
 +randomS = list(range(plan.S))
 +random.shuffle(randomS)   # Zufällige Reihenfolge aller Teilnehmer
 +for s in randomS:
 +   # Tu wat mit s
 +</code>
  
  • lehrkraefte/blc/informatik/glf25/glueckswerkstatt/plan.1761725834.txt.gz
  • Last modified: 2025/10/29 08:17
  • by Ivo Blöchliger