ZAMAN DERS ÇİZELGELEME PROBLEMİ Bu tür problemler gerçek hayatta sık kullanılan problemlerdir. Okullarda, üniversitelerde ders çizelgeleme, sınav çizelgelerinin oluşturulması, hastanelerde hemşirelerin nöbet çizelgelerinin oluşturulması, havacılıkta pilotların uçuş çizelgelerinin oluşturulması ve bu gibi problemler, bu problemler sınıfına aittir. Problemin matematiksel modelini oluşturalım:
Veriler: 𝑛ℎ – ders saatlerinin mevcut miktarı, 𝑛𝑐 – derslik sayısı, 𝑛𝑠 – ders sayısı, 𝑛𝑖 – 𝑖. Öğretim üyesi tarafından verilen ders miktarı, 𝑛𝑏 – akademik blok sayısı, Ω – verilecek tüm dersler kümesi, Ω 𝑖 – 𝑖. Öğretim üyesi tarafından verilecek dersler kümesi,
VERİLER (devamı): ∆ 𝑏 - b akademik blokundaki dersler kümesi, 𝑠− ders indisi, 𝑐− derslik indisi, ℎ− saat indisi, 𝑖− öğretim üyesi indisi, 𝑏− blok indisini gösterir.
KARAR DEĞİŞKENİ: 𝑣 𝑠𝑐ℎ = 1, 𝑒ğ𝑒𝑟 𝑠 𝑑𝑒𝑟𝑠𝑖, 𝑐 𝑑𝑒𝑟𝑙𝑖ğ𝑖𝑛𝑑𝑒 ℎ 𝑠𝑎𝑎𝑡𝑡𝑒 𝑣𝑒𝑟𝑖𝑙𝑖𝑟𝑠𝑒 0, 𝑑𝑖ğ𝑒𝑟 𝑑𝑢𝑟𝑢𝑚𝑑𝑎
KISITLAR: Her öğretim üyesi kendine ait tüm dersleri veriyor. 𝑠∈ Ω 𝑖 𝑐=1 𝑛 𝑐 ℎ=1 𝑛 ℎ 𝑣 𝑠,𝑐,ℎ = 𝑛 𝑖 (∀ 𝑖 için) Her öğretim üyesi her bir saatte en fazla bir ders vere bilir. (Bu kısıt her öğretim üyesi ve her saat için yazılacak). 𝑠∈ Ω 𝑖 𝑐=1 𝑛 𝑐 𝑣(𝑠,𝑐,ℎ) ≤1 (∀ℎ , ∀𝑖 𝑖ç𝑖𝑛)
Her ders verilecek ve sadece 1 defa verilecek. 𝑐=1 𝑛 𝑐 ℎ=1 𝑛 ℎ 𝑣 𝑠,𝑐,ℎ =1 (∀𝑠 için) Her derslik ve her ders saatinde en fazla 1 ders verile bilir. 𝑠∈Ω 𝑣(𝑠,𝑐,ℎ)≤1 (∀𝑐 𝑣𝑒 ∀ℎ 𝑖ç𝑖𝑛) Her bir saatte her bir akademik blokun en fazla 1 dersi verile bilir. 𝑠∈ ∆ 𝑏 𝑐=1 𝑛 𝑐 𝑣(𝑠,𝑐,ℎ) ≤1 (∀ℎ 𝑣𝑒 ∀𝑏 𝑖ç𝑖𝑛)
AMAÇ FONKSİYONU Olabildiğine kompakt bir çizelgeleme yapılması öngörülüyor. Yani, mümkün derecede az sayıda derslik ve az sayıda ders saati kullanılmasını hedefleyen bir amaç fonksiyonu tasarlanmıştır. 𝑚𝑖𝑛 𝑧= 𝑠∈Ω 𝑐=1 𝑛 𝑐 ℎ=1 𝑛 ℎ 𝑐+ℎ 𝑣 𝑠,𝑐,ℎ Amaç fonksiyonunda (𝑐+ℎ) bir ceza katsayısı rolünü oynuyor. Problem minimizasyon problemi olduğu için 𝑐+ℎ büyüdükçe model onu sıfırlamağa çalışacaktır.
ÖRNEK: 5 ders saati, (h=1,2,3,4,5) 8 tane ders, (s=1,2,3,4,5,6,7,8) 3 derslik , (c= 1,2,3) 5 ders saati, (h=1,2,3,4,5) 8 tane ders, (s=1,2,3,4,5,6,7,8) 2 öğretim üyesi, (i=1,2) 2 ders bloku, (b=1,2) olsun.
Tüm derslerin kümesi: Ω= 𝑠 1 , 𝑠 2 , 𝑠 3 , 𝑠 4 , 𝑠 5 , 𝑠 6 , 𝑠 7 , 𝑠 8 1. Öğretim üyesinin ders kümesi: : Ω 1 = 𝑠 1 , 𝑠 2 , 𝑠 8 2. Öğretim üyesinin ders kümesi: : Ω 2 = 𝑠 3 , 𝑠 4 , 𝑠 5 , 𝑠 6 , 𝑠 7 1. Akademik blokun dersleri: ∆ 1= 𝑠 1 , 𝑠 2 , 𝑠 3 , 𝑠 4 2. Akademik blokun dersleri: ∆ 1= 𝑠 5 , 𝑠 6 , 𝑠 7 , 𝑠 8 Görüldüğü gibi Ω 1 ∪ Ω 2 =Ω 𝑣𝑒 Ω 1 ∩ Ω 2 =∅ ∆ 1 ∪ ∆ 2 =Ω 𝑣𝑒 ∆ 1 ∩ ∆ 2 =∅
Çözüm: Problemin çözümü aşağıdaki tabloda verilmiştir. H=1 H=2 H=3 H=4 C=1 𝑆 7 𝑆 6 𝑆 3 𝑆 4 𝑆 5 C=2 𝑆 2 𝑆 1 𝑆 8 - C=3
Öğretim üyesinin programı: H=1 H=2 H=3 H=4 H=5 C=1 - C=2 𝑆 2 𝑆 1 𝑆 8 C=3
2. öğretim üyesinin programı: H=1 H=2 H=3 H=4 H=5 C=1 𝑆 7 𝑆 6 𝑆 3 𝑆 4 𝑆 5 C=2 - C=3
Akademik bloğun çizelgesi: H=1 H=2 H=3 H=4 H=5 C=1 - 𝑆 3 𝑆 4 C=2 𝑆 2 𝑆 1 C=3
2. Akademik bloğun çizelgesi: H=1 H=2 H=3 H=4 H=5 C=1 𝑆 7 𝑆 6 - 𝑆 5 C=2 𝑆 8 C=3
GAMS kodu Bu verilere dayanarak çizelgelemeyi, modeli GAMS de çözerek oluşturalım. Bunun için GAMS kodunu yazalım:
SETS C classrooms / c1. c3/ H hours / h51. h5/ S subjects /s1 SETS C classrooms / c1*c3/ H hours / h51*h5/ S subjects /s1*s8/ I instructors /i1*i2/ B blocks /b1,b2/ SI(S,I) maps subjects and instructors /(s1,s2,s8).i1,(s3*s7).i2/ SB(S,B) maps subjects and blocks / (s1*s4).b1,(s5*s8).b2/; VARIABLES Z ; BINARY VARIABLE 𝑣 𝑆,𝐶,𝐻 ; EQUATIONS COST compact the timetable Const1 (I) every instructor teaches all his (her) subjects Const2 (H,I) every instructor teaches at most 1 subject every hour Const3 (S) every subject is taught once
Const4 (C,H) in every classroom-hour pair at most 1 subject is taught Const5 (H,B) at every hour at most 1 subject of any academic block is taught; COST.. Z =e= SUM( (S,C,H),(ord(C)+ord(H))*v(S,C,H)) ; Const1 (I) .. SUM( (S,C,H)$SI(S,I),v (S,C,H)) =e= SUM(S$SI(S,I),1); Const2 (H,I) .. SUM( (S,C)$SI(S,I),v (S,C,H)) =l= 1; Const3 (S) .. SUM( (C,H),v (S,C,H)) =l= 1; Const4 (C,H) .. SUM( (S),v (S,C,H)) =l= 1; Const5 (H,B) .. SUM( (S,C)$SB(S,B),v (S,C,H)) =l= 1;
MODEL timetable /ALL/; SOLVE timetable USİNG MIP MİNİMİZİNG Z ; DISPLAY v.L;
Problemin çözümü aşağıdaki tabloda verilmiştir:
Yani, 3. Dersliğe ders atanmıyor. derslikte 1. saatte s7 dersi, 2. saatte S6 dersi, 3. saatte S3 dersi,4. saatte S4 dersi, 5. saatte S5 dersi yapılacaktır; derslikte 1. saatte s2 dersi, 2. saatte S1 dersi, 3. saatte S8 dersi yapılacaktır;