Doğrusal Programlama Problemlerinin Bilgisayar Çözümleri

Caner Erden
4 min readOct 27, 2020

--

Bu yazıda doğrusal programlama problemleri Excel Solver kullanılarak nasıl çözülebilir onu göstermeye çalışacağım.

Excel Solver Aktifleştirme

Öncelikle Excel Solver aktifleştirmesi ile başlayalım. Excel Solver Excel’in varsayılan olarak getirmediği bir araç o nedenle önce aktif hale getirmek gerekiyor. Bunun için

1- Dosya seçeneğinden seçenekler menüsüne tıklayın.

2- Eklentiler kısmına gelin.

3- Excel Eklentilerine git diyerek Çözücü Eklentisini aktif hale getirin.

Çözücü eklentisi Veri sekmesi altında en sağda görünür hale gelmiş oldu. Şimdi bir örnek üzerinde Excel solver kullanımını görelim.

Örnek Problem

Örnek modelimizde sandalye, masa ve dolap satan bir mağaza düşünelim. Mağaza bir adet sandalye satışından 10, masa satışından 15, dolap satışından ise 5 birim kar elde ediyor. Ürünler için gerekli hammadde ve işçilik bilgileri ve şirketin sahip olduğu toplam işçilik süresi ile hammadde malzemesi miktarı tablonun sonunda verilmiştir. Bu bilgilere göre modeli Excel ile çözelim.

Matematiksel Modelin Kurulması

Excel Solver’a verilerin girilmeden önce problemin matematiksel modelini oluşturmamız gerekir. Matematiksel model için 4 adımda işlem gerçekleştirebiliriz. Model kurma ile ilgili daha detaylı bilgi için şu videoyu izleyebilirsiniz.

Adım 1: Problemin tanımı

Şirketin karını maksimize edebilmesi için hangi üründen kaç adet üretmesi gerekir?

Adım 2: Karar değişkenlerinin belirlenmesi

X1: Sandalye miktarı

X2: Masa Miktarı

X3: Dolap miktarı

Adım 3: Kısıtların belirlenmesi

1 malzeme kısıtı 3 X1 + 1 X2 + 2 X3 <=10

2 işçilik kısıtı X1 + 2 X2 + x3 <= 7

Negatif olmama kısıtı

x1, x2, x3 >=0

Adım 4: Amaç fonksiyonunun belirlenmesi

Max Z =10x1 + 15x2 + 5x3

Hücrelerin Ayarlanması

Baştan belirtelim. Burada anlatılan Excel Dosyasını buradan indirebilirsiniz.

Öncelikle belirli bir hücre aralığında karar değişkenlerimizi yerleştirelim. Karar değişkenlerini aşağıdaki gibi yerleştirebiliriz. Yeşil ile gösterdiğim kısımdaki hücreler değişken hücreleri gösteriyor. Yani modelimizde değişecek olan yerler bu yeşil hücreler olacak. Ki karar değişkenlerimiz yani hangi üründen ne kadar üreteceğimizin bilgisi bu hücrelerde saklanacak.

Ardından kısıtları belirli hücre aralığında belirtelim. Görüldüğü gibi yeşil kısımda tekrar değişkenlik gösteren yerleri belirtmeye çalıştım. Açık mavi olan hücrelerde ise sabit parametreleri göstermeye çalıştım. Yani kısıtlara ait katsayılar açık mavi kısımlara gelecek. Kullanılan sütunu o kısıtın ne kadar kullanıldığını tutan yer olacak. Mevcut sütunu da o kısıtın ne kadar mevcut olduğunu tutacak olan kısım.

Son olarak da amaç fonksiyonunun yerini belirtelim. Maviler ve yeşil hücreler yine aynı anlama gelmektedir.

Verilerin Girilmesi

Başlangıç çözümü için karar değişkenleri 0 olarak girilir.

Kısıt değerleri için katsayılar girilir. Matematiksel modelde oluşturduğumuz gibi kısıtların katsayılarını aynen giriyoruz.

Amaç fonksiyonu katsayıları girilir.

Hücre Aralığına İsim Vermek

Hücre aralıklarına çağırmada kolaylık olması için isim verilebilir. Bunun için formüller sekmesinden ad tanımlama menüsüne gidilir.

Hücre aralığı seçilerek hücre aralığına isim verilir.

Topla Çarpım Formüllerinin Yazılması

Karar değişkenleri ile matris işlemleri yapılarak hesaplamalar yapılır.

Amaç fonksiyonu için topla çarpım hesaplaması yapılır.

Excel Solver Kullanımı

Verilerin ve hesaplamaların girişinden sonra Veri sekmesinden Excel Solver çalıştırılabilir.

Solver Ekranı

Solver menüsüne girdiğimizde ilk önce bizden hedef hücresi soruluyor. Bunu max z olarak belirlediğimiz hücreyi giriyoruz. Problemimiz bir maksimizasyon problemi olduğu için en büyük seçeneğini seçiyoruz. Ardından karar_degiskenlerini değiştirerek bir işlem yap diyoruz. Son olarak kısıtlar kısmına kullanılan <= mevcut olacak şekilde kısıtlarımızı giriyoruz.

Çöz dediğimizde çözümler aşağıdaki gibi hesaplanmış olur. Demek ki X1=2,6 X2 = 2,2 X3 = 0 olarak çözüm bulunmuş olunur. Z değeri de 59 çıkmıştır.

Bir sonraki yazıda Excel Solver’da duyarlılık analizi konusu işlenecektir.

--

--

Caner Erden

Meta-heuristics, optimization algorithms, discrete event simulations, machine learning, statistics