Gönderen Konu: Excel Solver (Çözücü), Doğrusal Programlama Excel Solver İle Çözüm - 3  (Okunma sayısı 6171 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1243
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • İl / İlçe: İstanbul/Ümraniye
  • İşletim Sisteminiz: Win.7
  • Mesleğiniz: Excel Vba Programlama
  • Office Versiyonunuz: Office2003/2007/2010
Doğrusal Programlama Probleminin Excel Solver İle Çözümü:
 
Excel Solver ın Doğrusal Programlamada Kullanımı:
 
Excel Solver eklentisini ekledikten sonra bir önceki yazıdaki problemi adım adım çözelim.
Değişkenleri a ve b olarak belirledikten sonra fonksyonları da aşağıdaki şekilde tekrar belirleyelim.

Problemin amaç fonksiyonu :

Zmax = 3a + 2b

Problemin Kısıt Fonksiyonları :

2a+1b ≤ 100
1a+1b ≤ 80
a ≤ 40
a ≥ 0  ,  b ≥ 0
 
1-İlk olarak boş bir sayfaya uygun girişlerin yapılması gerekmektedir. a değişkeni için A3 hücresi, b değişkeni için de B3 hücresi seçilmiştir. A3 ve B3 hücresini boş bırakıyoruz.

2-Amaç fonksiyonunu C3 hücresine yazıyoruz.
=3*A3+2*B3

3-Kısıt Fonksiyonlarını tanımlama için eşitsizliğin sol tarafı hücrelere formül olarak girilir.
   Birinci Kısıt İçin D3 hücresine  =2*A3+B3  yazılır
2a+1b ≤ 100 Eşitsizliği

İkinci Kısıt İçin E3 hücresine =A3+B3 yazılır
1a+1b ≤ 80 Eşitsizliği
  Üçüncü Kısıt İçin F3 hücresine =A3 yazılır   a ≤ 40  Eşitsizliği

Dördüncü Kısıt İçin G3 hücresine =A3 yazılır
a ≥ 0 Eşitsizliği
 
Beşinci Kısıt İçin H3 hücresine =B3 yazılır
b ≥ 0 Eşitsizliği
 
4-Solver Eklenti butonuna bastığımız zaman karşımıza çıkan pencereyi yandaki gibi doldurmamız gerekmektedir.

Yapılması Gerekenler

- Öncelikle Amaç Fonksiyonunu olarak tanımladığımız C3 hücresini resimdeki gibi tanımlamalıyız
- Amaç Ençoklamak (Maksimize Etmek) olduğu için Max olarak belirlememiz gerekiyor.
- Değişken değer olan a ve b için tanımladığımız hücreleri (A3 ve B3) belirtiyoruz.


- Kısıt Fonksiyonlarını tanımlamak için Ekle butonunu tıklayarak yandaki pencereyi açıyoruz. İlk kısıt foksiyonumuz 2a+1b ≤ 100 idi ve D3 hücresinde belirtilmişti. Eşitsizlik Küçük Eşit olduğu için ≤ işareti seçilir ve eşitsizliğin sağ tarafındaki sabit değer ilgili alana yazılır.

- Diğer Kısıt Fonksiyonları da resimlerdeki gibi tanımlanırlar

- Daha sonra Solve (Çöz) butonuna basılarak Excel Solver ın optimizasyonu gerçekleştirmesi istenir. Eğer Solver bir sonuç bulursa otomatik olarak a ve b değişkenlerini A3 ve B3 hücrelerine yazar ve amaç fonksiyonunu hesaplayarak C3 hücresine çıkan sonucu yazar.

Bizim problemimizde

a = 20
b = 60
Zmax = 180 olarak bulunmuştur.

Yani A ekmeğinden 20 adet ve B ekmeğinden de 60 adet üretim yapılırsa kar ençoklanmış (maksimize) edilmiş olur. Bu problemde ulaşılabilecek en yüksek kar 180 br liradır ve yukarıda belirtilen kısıtlar altında daha yüksek kar elde edilemez.

En yüksek karı elde etmek için de A ve B ekmeklerinden kaçar adet üretileceği cevabı ile beraber problem çözülmüş olur.

Önemli Not : Solver (çözücü) eklentilerinin çalışması için ilgili Makrolara izin vermeniz gerekmektedir.

Örnek Excel Dosyasını indiriniz

Excel Solver Kurulumunun nasıl yapıldığını öğrenmek için tıklayınız

   
               


                 

                 

                 

                 

Fırat Toprak
=EĞER(EYOKSA("Google Arama");"Belki_Cevap_Burada";"")

Çevrimdışı Puletin

  • Excelce Onbaşı
  • **
  • İleti: 29
  • Puan +1/-0
  • Excel'den Daha Fazlası!..
  • Ad Soyad: Ferruh
  • İl / İlçe: EDİRNE
Bülent bey ders için teşekkürler..

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1243
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • İl / İlçe: İstanbul/Ümraniye
  • İşletim Sisteminiz: Win.7
  • Mesleğiniz: Excel Vba Programlama
  • Office Versiyonunuz: Office2003/2007/2010
Rica ederim Ferruh Bey.

Ben de notları hazırlayan ve paylaşıma izin veren Fırat Beye teşekkür ederim.
=EĞER(EYOKSA("Google Arama");"Belki_Cevap_Burada";"")