İçereği Atla

OstimScheduler

Kısıt-tatmin algoritması ile çakışmasız ders programı üreten Python aracı.
30 Nisan 2026 yazan

Repo Tanıtımı

OSTİM Teknik Üniversitesi öğrencileri için seçilen derslerden çakışmasız haftalık program üreten kısıt-tatmin çözücü. Sert kısıtların (çakışma yok) yanı sıra yumuşak kısıtları (boş gün, sabah/akşam tercihi) ağırlıklandırarak top-N varyant döndürür.

Özellikler

  • Backtracking + forward checking solver
  • Most-constrained-first heuristic ile dallanma azaltıldı (saniye-altı çözüm)
  • Sert kısıtlar: çakışma yok, kapasite uygun
  • Yumuşak kısıtlar: boş gün, sabah/öğleden sonra tercihi, dersler arası boşluk, binalar arası mesafe
  • Skorlanmış top 5 program varyantı
  • Görsel haftalık tablo (matplotlib) + JSON çıktı
  • Web arayüzü (Flask) + komut satırı (CLI)
  • CSV ders kataloğu girişi (Selenium yarı-otomatik scraper opsiyonel)

Mimari

  • Veri: CSV — ders kodu, şube, gün, saat, kapasite, hoca
  • Solver: Backtracking + forward checking; çakışma matrisi ön-hesap
  • Heuristic: Most-constrained-variable + least-constraining-value
  • Skorlama: Yumuşak kısıt ihlal puanı + binalar arası yürüyüş süresi
  • Web UI: Flask + Jinja2, kullanıcı kısıt ağırlıklarını kaydırgaçla ayarlar

Kullanılan Teknolojiler

Python, pandas, matplotlib, Flask, constraint propagation, Selenium (opsiyonel scraping), argparse.

GitHub Repo · Canlı: ostimclass.akpinar.dev

EduNER-TR
Türkçe akademik metinler için Named Entity Recognition modeli — kişi, üniversite, fakülte, bölüm ve unvan tanır.