Genetik Algoritma ile Sırt Çantası Problemi
Oluşturduğumuz matematiksel modelleri Gurobi gibi çeşitli çözücüler ile çözebilir ve problemin en iyi çözümünü elde edebiliriz. Ancak, boyut ve kısıtların çok fazla olduğu durumlarda, harcanan zaman optimum değeri bulmak için kabul edilemez derecede uzun olabilmekte ve hatta bazen optimum çözümün bulunması mümkün olamamaktadır.
Gerçek hayat problemlerinde genellikle zamansal olarak sınırlıyız ve hızlı bir şekilde uygulanabilir çözümlere ihtiyaç duyarız. İşte bu gibi durumlarda meta-sezgisel algoritmalar devreye girer.
Meta-sezgisel algoritmalar, özellikle NP-zor olarak bilinen ve geleneksel yöntemlerle çözülmesi zor olan problemlerde, yaklaşık çözümler sağlayarak pratik ve hızlı sonuçlar elde etmemize olanak tanır.
Önceki yazımda, bir sırt çantası probleminin Gurobi ile nasıl optimum çözüme ulaştığını ele almıştım. Bu sefer ise, aynı problemi genetik algoritma kullanarak çözmenin yolunu gösteren örnek bir doküman hazırladım.
İlgili dökümana ve yazdığım kodlara buradan ulaşabilirsiniz,
Bu dokümanda, genetik algoritmanın temel prensipleri üzerine bir giriş yaptım ve ardından algoritmanın Python programlama dili ile nasıl kodlanabileceğine dair bir örnek sundum. Algoritmanın performansını ölçmek için, birçok kez çalıştırıp optimum değere ne kadar yaklaştığını hesapladım. Dokümanın en sonunda “Sezgisel Optimizasyon” dersini aldığım zamanlar, genetik algoritmayı daha iyi anlayabilmek için oluşturduğum bir örneği ekledim.