Bu çalışmada Bitirme Projesi konusu olarak PuLP Kütüphanesi ile Integer Linear Programming tekniğini kullanarak üniversiteler için belirlenen kısıtlara göre otomatik ders programı oluşturan uygulama yazılmıştır.
• Uygulamamızı çalıştırdığımızda karşımıza gelen ekran bu şekildedir.İlk kısımda ders programımızdaki derslerimizin sisteme kaydını yapıyoruz.
• İkinci kısımda öğretim görevlilerinin sisteme kaydını yapıyoruz.
• 3. kısımda dersleri alacak öğrencilerimizi sisteme kayıt ediyoruz
• 4.kısımda öğretim görevlilerimizi verecekleri dersleri ile öğrencileri seçtikleri dersleri ile eşleştiriyoruz.Bu bölümde öğretmen ve öğrenci kısıtlarımız devreye giriyor.
• 4.kısımda ki eşleştirmeleri yaptıktan sonra Report bölümümüzde program istenilen günü seçip Get dediğimizde bize girdiğimiz veriler eşliğinde bir ders programı oluşturuyor.
• Eğer bu ders programına kısıtlar koymak istiyorsak örneğin şekilde görüldüğü gibi Algoritma dersini pazartesi günü sabah 8.00 ‘a Olasılık dersini 12.00 a atamak gibi bu kısıtları burada belirliyoruz.
• Son olarak Report bölümünden tekrar kısıt belirlediğimiz günlere ait ders programını oluşturmasını söylediğimiz de istediğimiz derslerin istediğimiz saatte olduğunu gördüğümüz kısıtlarımızı sağlayan bir program üretmiş oluyoruz.
Öncelikle .Net Core 3.1 veya üzeri ve Python yüklü olmalı.Bilgisayarımızda Python Path Eklenmiş olmalıdır.
Sonrasında aşağıdaki komutları sırası ile çalıştırıp ilgili paketler kurulmalıdır:
python -m pip install pulp
python -m pip install scikit-glpk
python -m pip install progressbar
Son olarak uygulamamızı Visual Studio ile açıp çalıştırabiliriz.
• Solver olarak PULP_CBC_CMD kullanılmıştır.Ancak solve_schedule.py dosyasında 266. satırdaki #print(pl.pulpTestAll()) açarsanız yada diğer yöntemlerle (dosya konumu üzerinden ulaşmak gibi) kendi sisteminizde hangi solver'ı seçebileceğinizi görüp istediğiniz solver'ı set edebilirsiniz.