ILP ile Ders Programı Olusturma

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.

Ders Girisi

• 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.

Öğretmen Girisi

• İkinci kısımda öğretim görevlilerinin sisteme kaydını yapıyoruz.

Öğrenci Girişi

• 3. kısımda dersleri alacak öğrencilerimizi sisteme kayıt ediyoruz

Ders-Öğretmen-Öğrenci Atamaları

• 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.

Ders Programı Oluşturma

• 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.

Program Kısıtları Oluşturma

• 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.

Kısıtlara Göre Program Oluşturma

• 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.

Dikkat Edilmesi Gerekilenler

Ö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.