Sözlük · approach
Kısıt Programlama
Çözümün gereken kısıtlara uyması temel alınan optimizasyon paradigması — özellikle çizelgeleme ve atama problemlerinde güçlü.
Constraint ProgrammingCPKısıt Tabanlı Programlama
Kısıt programlama (Constraint Programming — CP), bir problemi 'değişkenler + kısıtlar' biçiminde tanımlayıp tüm kısıtları sağlayan çözümü arayan optimizasyon yaklaşımıdır. Karma tam sayılı programlamadan (MIP) farkı: MIP doğrusal denklemler üzerinde çalışır ve maliyet/kazanç fonksiyonu en aza/en üste indirir; CP ise mantıksal kısıtları doğrudan ifade eder ve önce mümkün bir çözüm aramaya odaklanır, sonra iyileştirir. Çizelgeleme, ders programı, atama, vardiya, yapboz, konfigürasyon gibi 'çakışma sıfır olmalı, sonra optimize et' yapısındaki problemler için tipik olarak MIP'ten daha hızlı çözüm verir. Çözücüler: birkaç olgun açık kaynak constraint programming motoru mevcut; ayrıca ticari ürünler de var.
Örnek
Bir okul ders programı: 50 öğretmen ve 30 sınıf birden çok kısıt altında. CP çözücüsü 'değişkenler = her ders için zaman + oda', 'kısıtlar = çakışma yok' der; tüm değişkenleri kısıtlara uyacak şekilde dener; saniyeler veya dakikalar içinde çözüm bulur.