Yardım Merkezi · Program Oluşturma

Solver’a yalnız “dersleri yerleştir” demeyin; doğru çözüm alanını kurun.

Dersiva’da program oluşturma kalitesi, solver başlamadan önce belirlenir. Ders yükleri, gerçek kapasite, kesin yasaklar ve kalite tercihleri doğru ayrıldığında sistem daha tutarlı denemeler üretir ve yerleşmeyen derslerin nedeni daha kolay açıklanır.

Temel mantık

Üç şeyi birbirinden ayırın: yük, zorunluluk ve tercih.

01

Yük

Hangi öğretmenin hangi sınıfa hangi dersi haftada kaç saat vereceği. Solver’ın yerleştirmesi gereken gerçek iş miktarıdır.

02

Hard constraint

Asla ihlal edilmemesi gereken koşuldur. Kapalı gün veya kesin günlük maksimum gibi kurallar bu gruba girer.

03

Soft hedef

Mümkün olduğunca iyileştirilmek istenen kalite ölçütüdür. Boşluk azaltma veya daha dengeli günler buna örnektir.

01

Ön kontrol: veri modelini doğrulayın

Program oluşturmadan önce öğretmen, sınıf, ders ve atama toplamlarını kontrol edin. Bir öğretmenin planlanan haftalık yükü, ders atamalarından hesaplanan yükle; bir sınıfın toplam ders ihtiyacı da kullanılabilir haftalık zamanla uyumlu olmalıdır.

  • ✓Eksik öğretmen/ders ataması var mı?
  • ✓Haftalık saat toplamları doğru mu?
  • ✓Sınıfın kullanılabilir haftalık slotu toplam yükü karşılıyor mu?
02

Ders atamalarını ve kalan yükü kontrol edin

Her atama; öğretmen, sınıf/şube, ders ve haftalık saat bilgisini doğru taşımalıdır. Planlanan ve kalan yük görünümü, yerleştirme sırasında hangi öğretmen veya ders grubunun hâlâ kapasite istediğini anlamayı kolaylaştırır.

  • ✓Aynı ders yanlışlıkla iki kez atanmış mı?
  • ✓Öğretmen toplam yükü gerçek ders yüküyle eşleşiyor mu?
  • ✓Grup/ortak dersler doğru kümelenmiş mi?
03

Hard constraint ile kalite hedefini ayırın

Kesinlikle bozulamayacak kurallar hard constraint olmalıdır. Tercih niteliğindeki her şeyi sert kurala dönüştürmek çözüm alanını gereksiz daraltır. İlk denemede zorunlu koşulları sabitleyin, kalite hedeflerini solver’ın optimize edebileceği esnek hedefler olarak bırakın.

  • ✓“İstemiyorum” ile “mümkün değil” ayrıldı mı?
  • ✓Aynı öğretmene çelişen kesin koşul verildi mi?
  • ✓Kalite tercihi yanlışlıkla hard constraint yapılmış mı?
04

Kapalı günleri ve çalışma uygunluğunu tanımlayın

Öğretmenin kesin çalışamayacağı günleri kapalı gün olarak girin. Günün yalnız belirli saatlerinde çalışabilme gibi koşullar varsa bunları gerçek uygunluk verisi olarak tanımlayın. Bir öğretmenin tüm ders yükünü taşıyacak toplam açık slotunun kaldığından emin olun.

  • ✓Kapalı gün sonrası yeterli toplam slot kaldı mı?
  • ✓Korunan gün veya mevzuat kaynaklı koşul var mı?
  • ✓Sınıf ve öğretmen uygunlukları aynı anda kesişiyor mu?
05

Öğretmen bazlı günlük maksimumları gerçekçi belirleyin

Dersiva, öğretmenler için farklı günlük maksimum ders sınırlarını kullanabilir. Bu sınır kesin olarak tanımlandığında solver öğretmenin haftalık yükünü kalan günlere yaymak zorundadır. Çok düşük bir günlük maksimum, matematiksel olarak yeterli açık gün olsa bile programı zorlaştırabilir.

  • ✓Haftalık yük ÷ açık gün sayısı günlük maksimumla uyumlu mu?
  • ✓Bazı öğretmenler için farklı sınır gerekiyor mu?
  • ✓Günlük sınır ile kapalı gün birlikte imkânsızlık yaratıyor mu?
06

Blok dersleri ve haftalık dağılım desenlerini kurun

Blok ders gereksinimleri ile 2+2+1 gibi haftalık dağılım desenleri dersin pedagojik ve operasyonel yapısını belirler. Bu desenler sınıfın gerçek günlük kapasitesi ve öğretmen uygunluğuyla birlikte değerlendirilmelidir.

  • ✓Blok uzunluğu ilgili günün slotlarına sığıyor mu?
  • ✓2+2+1 gibi desen için yeterli farklı gün var mı?
  • ✓Aynı öğretmenin diğer dersleri blok alanını kilitliyor mu?
07

Kapasiteyi öğretmen + sınıf + gün kesişiminde düşünün

“Haftada yeterli saat var” tek başına yeterli değildir. Bir dersin yerleşebilmesi için aynı anda öğretmenin, sınıfın ve ilgili ders deseninin uygun olması gerekir. Gün bazlı sınıf slot kapasitesi ve öğretmen günlük kapasitesi birlikte gerçek çözüm alanını oluşturur.

  • ✓Sınıfın o gündeki gerçek ders saati sayısı doğru mu?
  • ✓Öğretmen ve sınıfın açık slotları gerçekten kesişiyor mu?
  • ✓Bir gün diğer günlerden farklı zaman yapısına sahip mi?
08

Program oluşturma modunu amaca göre seçin

Hızlı mod kısa sürede deneme ve veri kontrolü için; Dengeli mod günlük kullanımda hız/kalite dengesi için; Kalite modu ise daha fazla optimizasyon zamanı ayırarak daha iyi kalite hedefi aramak için kullanılabilir. İlk veri kontrolünde doğrudan en uzun çözümü çalıştırmak yerine kademeli ilerlemek daha verimlidir.

  • ✓İlk deneme mi, final kalite arayışı mı?
  • ✓Sorun veri fizibilitesi mi yoksa kalite mi?
  • ✓Daha uzun süre gerçekten kalite araması için gerekli mi?
09

Programı oluşturun ve deneme olarak kaydedin

Ön kontrol başarılıysa solver modeli kurar, zorunlu koşulları sağlayan çözüm alanını arar ve kalite hedeflerini optimize eder. Oluşan sonuç bir deneme programı olarak değerlendirilmelidir; ilk başarılı sonuç otomatik olarak uygulanacak program yapılmamalıdır.

  • ✓Program tamamlandı mı?
  • ✓Solver süresi ve sonuç durumu beklenen mi?
  • ✓Deneme programı geçmişe kaydedildi mi?
10

Yerleşmeyen dersleri semptom değil darboğaz olarak okuyun

Yerleşmeyen birkaç saat varsa önce hangi öğretmen, sınıf, gün ve kısıtların ortak noktada sıkıştığını bulun. Rastgele kapalı gün veya kalite kuralı kaldırmak yerine kapasite hesabını, günlük maksimumu, blok desenini ve çakışan atamaları sırayla kontrol edin.

  • ✓Yerleşmeyen saatler aynı öğretmende mi toplanıyor?
  • ✓Aynı sınıf veya gün sürekli tekrar ediyor mu?
  • ✓Hard constraint gevşetmeden önce gerçek kapasite hesaplandı mı?
11

Denemeleri karşılaştırın; yalnız birini uygulanacak seçin

Hızlı, Dengeli veya Kalite modlarında farklı denemeler oluşturabilirsiniz. Tamamlanma oranı aynı olsa bile boşluk, yoğun gün, kısa gün ve dağılım kalitesi değişebilir. Program geçmişinde karşılaştırma yapın; okul yönetiminin kontrol ettiği tek programı uygulanacak olarak seçin.

  • ✓Denemeler aynı veri/kısıt sürümüyle mi üretildi?
  • ✓Kalite farkı yalnız bir öğretmene mi yarıyor, okul geneline mi?
  • ✓Uygulanacak program doğru denemeden seçildi mi?
12

Kapanma veya native solver sorunu varsa güvenli tanılama kullanın

Program oluşturma başında uygulama kapanıyorsa bunu doğrudan “program imkânsız” olarak yorumlamayın. Güvenli Tanılama Modu — 1 Worker ile yeniden deneyin; OR-Tools native bileşenleri, Microsoft Visual C++ çalışma zamanı ve log kayıtlarını kontrol edin. 1 Worker çalışıp normal mod kapanıyorsa çalışma ortamı veya native/çoklu worker katmanı ayrıca incelenmelidir.

  • ✓1 Worker güvenli tanılama denendi mi?
  • ✓VC++ ve native çalışma ortamı hazır mı?
  • ✓log.txt / Windows olay kaydı incelendi mi?
Çözüm modu seçimi

Aynı veriyle farklı çözüm amacı kullanabilirsiniz.

İlk kontrol

Hızlı

Veri ve fizibiliteyi hızlı test etmek için kısa denemeler.

Günlük kullanım

Dengeli

Hız ve kalite arasında genel kullanım dengesi.

Final adayları

Kalite

Daha fazla optimizasyon süresiyle daha iyi kalite hedefi arama.

Yerleşmeyen ders analizi

Darboğazı dört katmanda arayın.

1

Atama

Haftalık ders yükü ve öğretmen toplamı doğru mu?

2

Uygunluk

Öğretmen ve sınıfın ortak açık slotu yeterli mi?

3

Kapasite

Günlük maksimum, sınıf slotu ve blok uzunluğu birlikte yeterli mi?

4

Kısıt

Birden fazla hard constraint aynı çözüm alanını sıfırlıyor mu?

Teknik tanılama

Fizibilite sorunu ile çalışma ortamı sorununu ayırın.

Solver “çözüm bulamıyor” ile uygulamanın native solver çağrısında kapanması aynı problem değildir. Güvenli Tanılama Modu, loglar ve çalışma zamanı önkoşulları bu ayrımı yapmak için kullanılır.

Sonraki rehber

v3.19 — Program Kalitesi Rehberi

Bir sonraki rehberde tamamlanmış iki programın neden aynı kalitede olmadığını; boşluk, yoğunluk, kısa gün, ders ağırlığı, öğrenci yükü ve okul geneli adalet üzerinden inceleyeceğiz.

v3.19
Yardım Merkezi

Yardım Merkezi’ne dön