6. 1. TAMSAYILI PROGRAMLAMA 6.1. TAMSAYILI PROGRAMLAMA Çoğu uygulamalı problemlerin, karar değişkenleri ancak tamsayılı olduğunda anlamlıdır. Çünkü, girdi ve çıktıların bölünmezlik sorunu, karar değişkenlerinin tamsayılı olmasını gerektirir. Sermaye bütçelemesi, elektrik jeneratör birimleri, araç ve gereçler, makineler ve kişiler bunlara birer örnektir.
Doğrusal programlama problemlerinde bazı değişkenlerin tamsayılı değerli yada tüm değişkenlerin tamsayılı olması istenebilir. Eğer problemde, sadece bazı değişkenlerin tamsayı değerli olması gerekli iken diğer değişkenler bölünebilirlik varsayımını karşılayan yani kesirli değerler alabilen değişkenler ise bir tür problem, karma tamsayılı programlama problemidir.
Bir problemin çözüm değerlerinin tamsayılı olması istendiğinde, bu problem doğrusal programlama formulasyonundan tamsayılı programlamaya dönüşür. Aslında , tamsayılı programlamanın matematik modeli, değişkenlerinin tamsayı değerli olması istenen bir ek kısıtlayıcılı doğrusal programlama modelinden başka bir şey değildir.
Örneğin; Max z = 6X1+5X2+2X3 Kısıtlayıcılar: 10x1+4x2+x3 ≤ 600 (6.1) 2x1+5x2+2x3 ≤ 800 ve x1, x2, x3≥0 x1 Tamsayı
Bu karma tamsayılı programlama probleminin çözümünde X1 ve X3 değişkeninin değerinin tamsayı olması gerekli değildir. X1 değişkeninim çözüm değeri ise tamsayı olmak zorundadır.
Max z=6x1+5x2+2x3 Kısıtlayıcılar: 10x1+4x2+x3 ≤ 600 (6.2) 2x1+5x2+2x3 ≤ 800 Ve x1, x2, x3 ≥ 0, x1, x2, x3 tamsayı
(6.2) de verilen problem, arı tamsayılı programlama problemi olup çözüm değerleri de; Max z=888.0, x1=22, x2=0 ve x3=378’dir.
Uygulamada çoğu doğrusal programlama problemlerinde bölünebilirlik varsayımı geçerli olmadığı gibi bazı problemlerin “evet veya hayır kararları” ile ilişkin olduğunu görmekteyiz. Bu tür kararlarda iki olanaklı seçim sadece evet ve hayırdır. Örneğin; bu yatırımı yapmalı mıyız? Fabrikayı bir alanda mı kurmalıyız? Gibi sadece iki seçenekli kararlar, değerleri0 ve 1 ile kısıtlanan karar değişkenleri ile gösterilir. Böylece, j’inci evet veya hayır kararı j ile aşağıdaki şekilde ifade edilir.
1 karar j evet ise xj= 0 karar j hayır ise
Bu tür değişkenlere ikili (binary) değişkenler (veya 0-1 değişkenleri) adı verilir. Tamsayılı programlama problemindeki tüm değişkenlerin ikili değişkenler yani 0 veya 1’e eşit olması istendiğinde, bu tür tamsayılı programlama problemine ikili tamsayılı programlama veya 0-1 tamsayılı programlama problemi denir. Aşağıda verilen problem, 0-1 tamsayılı programlama problemine bir örnektir.
Örnek: max z = 6x1+5x2+2x3 Kısıtlayıcılar: 10x1+4x2+x3 ≤ 600 (6.3) 2x1+5x2+2x3 ≤ 800, Ve x1, x2, x3 =0 veya 1
Bu örnek problemin çözüm değerleri x1=1, x2=1, x3=1 ve max z = 13’dür
Bazı değişkenlerin 0 veya 1 değerini alırken diğer değişkenlerin sürekli(kesirli) değerler alan tamsayılı programlama problemine 0-1 karma tamsayılı programlama problemi denir. Uygulamada, bu tür problemlere örnek olarak, bazı ürünlerin hangi makinede üretilmesinin seçimi ile bu makinelerde söz konusu ürünlerden ne kadar üretileceğine ilşkin problem 0-1 karma tamsayılı programlama türündendir
Bir tamsayılı programlama probleminin doğrusal programlama gevşetmesi kavramı, tamsayılı programlama çözümünde önemli bir rol oynar. Bu nedenle, doğrusal programlama gevşetmesinin tanımının yapılması gerekli olmaktadır.
Değişkenler üzerinde tüm tamsayı veya 0-1 kısıtlarının atılarak, elde edilen doğrusal programlama problemine, tamsayılı programlamanın doğrusal programlama gevşetmesi(relaxation) adı verilir.
(6.1), (6.2) ve (6.3) de verilen örnek problemlerin doğrusal programlama gevşetmesi aşağıda verilmiştir. Max z = 6x1+5x2+2x3 Kısıtlayıcılar: 10x1+4x2+x3 ≤ 600 (6.4) 2x1+5x2+2x3 ≤ 800 Ve x1, x2, x3 ≥ 0 (6.4) de verilen doğrusal programlama gevşetmesinin çözüm değerleri ise
x1 = 22.2, x2 = 0, x3 = 377.8 ve max z = 888.9’dur
Herhangi bir tamsayılı programlama, bazı ek kısıtlayıcılar(kısıtlayıcı değişkenlerinin tamsayı veya 0 yada 1 olması) ile doğrusal programlama gevşetmesi olarak görülmektedir. Bu yüzden, doğrusal programlama gevşetmesi, tamsayılı programlamanın daha az kısıtlayıcılı veya daha fazla rahatlandırılmış bir görünümüdür. Bunun anlamı da tamsayılı programlamanın çözüm bölgesi onun doğrusal programlama gevşetmesinin uygun bölgesinde olması gerektiğidir. Bir enbüyükleme (max) türündeki tamsayılı programlama problemi için bu durum şu şekilde ifade edilir.m
Doğrusal programlama gevşetmesinin optimal z değeri ≥ tamsayılı programlamanın optimal z değeri, (6.4) de verilen doğrusal programlama gevşetmesinin optimal z değerinin (888.9) diğer karma ve tamsayılı doğrusal programlama problemlerin optimal z değerinden daha büyük olduğunu görmekteyiz.
Bilinmelidir ki, tamsayılı programlamanın uygun çözüm bölgesi, onun doğrusal programlama gevşetmesinin uygun çözüm bölgesinin bir alt kümesi olmasına rağmen, tamsayılı programlama problemini çözmek onun doğrusal programlama gevşetmesini çözmekten genellikle daha zordur.
6.2. TAMSAYILI PROGRAMLAMA İLE İLGİLİ PROBLEMLER Uygulamada karşılaştığımız, personel programlaması, kuruluş yeri seçimi, sırt çantası, sermaye bütçeleme, sabit yükleme(yük) tezgah yerleştirme, küme örtme ya-veya kısıtlayıcılı, ise – 0 zaman kısıtlayıcılı problemler ile makineleri dizeleme problemlerinin tümü tam sayılı programlamaya ilişkin problemlerdir.
6.2.1. Kuruluş Yeri Seçimi Problemleri Örnek 6.2.1.1 FAMU imalat şirketi , yeni fabrikasının Bursa’daki Demirtaş Organize Sanayi Bölgesinde (DOSAB) veya Hasanağa Organize Sanayi Bölgesinde (HOSAB) kurmayı düşünmektedir. Aynı zamanda yeni kurulacak fabrikanın yanında en fazla bir depo inşa etmek zorundadır.
Her karar seçeneğinin net bugünkü değeri yani pazarın zaman içindeki değerini ele alan toplam karlılığı ile yatırımların getirdiği sermaye miktarı aşağıda Tablo 6.1’de verilmiştir. Ayrıca FAMU şirketinin bu fabrikaya ayırabildiği sermaye miktarı da 21 milyon YTL’dir.
Evet veya Hayır Soruları Net Bugünkü Değer (Milyon YTL Gerekli Sermaye Karar Seçeneği Sayısı Evet veya Hayır Soruları Net Bugünkü Değer (Milyon YTL Gerekli Sermaye Miktarı 1 Fabrikayı DOSAB’da mı kuralım? X1 20 15 2 Fabrikayı HOSAB’da mı kuralım? X2 14 8 3 Depoyu DOSAB’da mı kuralım? X3 12 7 4 Depoyu HOSAB’da mı kuralım? x4
Şirketin amacı, toplam net bugünkü değerini en çoklamak için fabrikanın ve deponun nerede kurulacağının belirlenmesidir.
Çözüm: Burada, tüm karar değişkenlerinin 0-1 olduğu görülmektedir.Yani: 1 karar j evet ise Xj= (j=1,2,3,4) 0 karar j hayır ise
Deponun kurulmasına ilişkin tamamıyla karşılıklı dışarmalı seçeneği gösterdiğinden yani, şirket en fazla bir depo istediğinden aşağıdaki kısıtlayıcının ele alınması gerekir.Yani x3 + x4 ≤ 1
Aynı zamanda ,deponun inşaatı fabrikanın kuruduğu bölgede olması istendiğinden,depoya ilişkin karar koşullu karardır.Böylece,x1 = 0 olduğunda x3 = 0olur.Benzer şekilde,x2 = 0 olduğunda x4 = 0 olacaktır.Söylenen bu durumları iki ek kısıtlayıcı ile ifade edebiliriz.
x3 ≤n x1 ve x4 ≤x2 veya x3 – x1 ≤0 ve x3 – x2 ≤ 0 dir. Şimdi şirketin 0-1 tamsayılı programlama modelini yazabiliriz. Max z = 20x1 + 14x2 + 12x3 +8x4
Kısıtlayıcılar 15x1 + 8x2 + 7x3 + 4x4 ≤ 21 x3 + x4 ≤ 1 -x1 +x3 ≤ 0 -x2 +x4 ≤ 0 xj ≤ 1 xj ≥ 0 xj = tamsayı ve sıfır veya 1 (j = 1,2,3,4)
Bu örnek problem,temel kararın evet veya hayır olan çoğu gerçek hayattaki uygulamalardan birisini göstermektedir.Çoğu kez,evet veya hayır türündeki kararlar,önceki kararlara bağlı olup yani koşullu kararlardır.Örneğin,bir karar diğer karara koşullandırıldı ise diğeri evet ise onunda sadece evet olmasına izin verilir. Bu örnek problemin WINQSB paket programı ile elde edilen çözümü ise x1 = 0, x2 = 1,x3 = 0,x4 = 1 ve max z = 22.000.000 YTL’dir.
6.2.2 Sırt Çantası Problemleri Herhangi bir tamsayılı programlama problemi sadece bir kısıtlayıcılı ise bu tür probleme çoğu kez sırt çantası problemi (knapsack problem) adı verilir.Uygulamasa,birden fazla kısıtlayıcılı sırt çantası problemleriyle de,karşılaşabiliriz.Birden fazla kısıtlayıcılı sırt çantası problemine,çok boyutlu sırt çantası problemi denir.Sermaye bütçeleme,portföy seçimi,proje seçimi makinelerin yerleşim planı gibi bir çok problem sırt çantası problemi olarak düşünülebilir.
ÖRNEK 6.2.2.1 Güldoğan Tekstil Şirketi,boyahane,ev tekstili,dikim atölyesi,cep astarı dikim atölyesi olmak üzere dört yatırımı düşünmektedir.Bu yatırımların gerektirdiği şu andaki nakit miktarları,yatırımların getirisinin net bugünkü değeri ile şirketin elindeki yatırımlara ayıracağı kaynak miktarı bilgileri aşağıdaki tabloda verilmiştir.
Gerekli Sermaye Miktarı GüldoğanTekstilŞirketine İlişkin Veriler Yatırımlar Karar Değişkeni Gerekli Sermaye Miktarı (1000 YTL) Net Bugünkü Değeri Boyahane X1 6.300 18.500 Ev tekstili (Dikim) X2 1.080 10.200 Cep astarı (Dokuma X3 2.160 18.000 Cep astarı (Dikim) x4 1.440 16.000 Eldeki nakit miktarı (YTL) 6.900.00
Güldoğan Tekstil Şirketinin amacı,net bugünkü değerini en fazla kılan yatırımı seçmektir. ÇÖZÜM: Şirketin dört yatırım seçeneği ve dolayısıyla da dört karar değişkeni vardır.Yatırım seçeneklerine ilişkin karar evet veya hayır türündedir.O nedenle,değişkenleri 0-1 tamsayılı değerler olarak ifade etmeliyiz.
1 yatırım j seçilirse xj(j = 1,2,3,4) = 0 yatırım j seçilmez ise
Örneğin,x3 = 1 cep astarı dokuma bölümünün kurulmasını ve x3 = 0 ise cep astarı dokuma bölümünün kurulmasını ifade eder.Buna göre şirketin 0-1 tamsayılı tek boyutlu sırt çantası problemi aşağıdaki şekilde ifade edilir.
Max z =18.500x1 + 10.200x2 + 18.00x3 + 16.000x4 Kısıtlayıcılar 6.300x1 + 1.080x2 + 2.160x3 + 1.440x4 ≤ 6.900 ve xj = 0 veya 1 (j = 1,2,3,4)
Bu problemin WINQSB paket programı ile elde edilen çözüm değerleri; x1 = 0,x2 = 1,x3 = 1,x4 = 1 ve max z = 44.200.000YTL’dir.
Güldoğan Tekstil Şirketi,ayrıca aşağıdaki koşullarında karşılanmasını istemektedir. 1.Şirket en fazla iki yatırım yapabilmektedir. 2.Şirket,cep astarı dokuma yatırımı yaparsa,boyahane yatırımı yapmak zorundadır. 3.Şirket,cep astarı dikim atölyesi yaparsa ev tekstiline yatırım yapmayacaktır
Bu durumda,şirketin yatırımlarının sayısını belirleyen kısıtlayıcı x1 + x2 + x3 + x4 ≤ 2’dir.Yukarıdaki iki nolu koşul ise koşulluk arar özelliğindedir.Dolayısı ile x3 = 1 ise x1 = 1 olmalıdır.Bu kısıtlayıcının okuyucuya daha anlaşılır olması için,aşağıdaki iki durumu ele alarak açıklamakta yarar vardır.
Durum 1: x3 = 1 yani x3 = 1 ise 1 – x1 ≤ 0 veya x1 ≥ 1dir. X1 = 0 veya xi = 1 olmak zorunda olduğundan x1 = 1’dir.Dolayısıyla şirketin istediği ikinci koşul karşılanmaktadır. Durum 2: x3 = 0 ise 0 – x1 ≤ 0 ve x1 ≥ 0 dır. X1 = 0 veya 1 olması durumunda x1 = 1 ve dolayısıyla x3 = 1olmak zorundadır. 3 nolu koşulda ise Güldoğan Tekstil için ek kısıtlayıcı x2 + x4 ≤ 1’dir.Şimdi bu ek kısıtlayıcı da iki durum ile açıklamaya çalışalım.
Durum 1: x4 = 1,olduğunda şirket cep astarı dikim atölyesine yatırım yapacağını ifade eder.Yukarıdaki kısıtlayıcıda,x4 yerine 1 koyduğumuzda yani x2 + 1 ≤ 1 veya x2 ≤ 0 olur, x2 = 0 bize şirketin ev tekstiline yatırım yapmayacağını,dolayısıyla 3 nolu koşulun karşılığını gösterir..
Durum 2: X4 = 0,bu durumda 3.koşul x2’nin değerinin kısıtlamaz.Eğer x4 = 0 olursa x2 ≤ 1 olur ve bu da x4’ün değerini 0 veya 1 olması için serbest bırakılır. Yukarıda ele aldığımız kısıtlayıcılar ile birlikte problemin 0-1 tamsayılı programlama modeli aşağıda verilmiştir.
Max z = 18.500x1 + 10.200x2 + 18.00x3 + 16.000x4 Kısıtlayıcılar 6.300x1 + 1.080x2 + 2.160x3 + 1.440x4 ≤ 6.900 x1 + x2 + x3 + x4 ≤2 - x1 + + x3 ≤0 x2 + + x4 ≤1 ve xj = 0 veya 1 (j = 1,2,3,4)
Bu problemin çözümü; X1 = 1,x2 = 0,x3 = 0,x4 = 0 ve max z =18.500.000 YTL’dir.
ÖRNEK 6.2.2.2 Bir seyahat işletmesi,yolcularına yanlarında taşıyabileceği eşyanın en fazla 20 kg olması koşulunu koymuştur.İstenen ise,bize en fazla fayda sağlayan eşyalarımızdan ne kadarını valizimizde taşıyabileceğimizdir.Eşyalar ile ilgili ağılıklar ve onların faydaları (YTL) aşağıda verilmiştir.
Eşyalar Ağırlık (kg) Fayda (YTL) Gömlek, Takım elbise Ayakkabı İç çamaşır Radyo Diz üstübilgisayar Kilim Halı Tencere 0.2 1.2 0.8 0.1 2.0 3.5 1.5 4.0 8.0 60.0 15.0 20.0 100.0 80.0 200.0 6.0
ÇÖZÜM Karar değişkenlerimiz; xj =Taşınacak j’inci eşyanın miktarı (xj ≥ 0 ve tamsayı) xj = 1,2,3,4,…,9 Amaç fonksiyonu ise faydayı en fazla kılan Max z =8x1 + 60x2 + 15x3 + 2x4 + 20x5 + 100x6 + 80x7 + 200x8 + 6x9 dir. Kısıtlayıcı ise,taşıyabileceğimiz eşya ağırlığının 20 kg’mı geçmemesidir.Yani; 0.2x1 + 1.2x2 + 0.8x3 + 0.1x4 + 2x5 + 3.5x6 + 1.5x7 + 4x8 + 2x9 ≤ 20 ve Xj ≥ 0 ve tamsayı j = 1,2,3,4,…,9
Modelin çözüm değerleri ise; x1 = 2,x2 = x3 = 0,x4 = 1,x5 = x6 = 0,x7 = 13,x8 = x9 = 0 ve Max z = 1058 YTL’dir.
Bu problemde görüldüğü üzere,aynı eşyadan birden fazlasının çantaya (valize) konulabilme olanağı vardır.Öte yandan,öyle problemlerde vardır ki,eşyaların çantaya konulup konulmaması kararını gerektirebilir.Bu durumda,karar değişkenleri 0-1 türünden tanımlanmalıdır.Yani;
1 j ’inci eşyanın çantaya konulması Xj= 0 j ’inci eşyanın çantaya konulmaması
Karar değişkenleri 0 veya 1 ile tanımlanan sırt çantası problemlerine 0-1 sırt çantası problemleri denir. Şimdi,0-1 sırt çantası problemi için bir örnek problem ele alarak onun çözümünü verelim.
ÖRNEK 6.2.2.3 Yeşim Tekstil Şirketi,ürettiği hazır giyim ve ev tekstili ürünlerini satmak için Bursa’da altı satış mağazası açmayı düşünmektedir.Satış mağazalarının her biri ayrı semtlerde olacaktır.Piyasa araştırmasına göre satış mağazalarının aylık kiraları ve bu mağazalarda alışveriş yapabilecek potansiyel müşteri sayısı aşağıda verilmiştir.
Aylık kira tutarı (YTL) 2,000 3,000 5,000 2,500 1,500 1,200 semtler 1 2 3 4 5 6 Aylık kira tutarı (YTL) 2,000 3,000 5,000 2,500 1,500 1,200 Aylık potansiyel müşteri sayısı 30,000 45,000 60,000 20,000 15,000 18,000
İstenen,potansiyel müşteri sayısını en çok kalacak satış mağazalarının hangi semtlerde açılması gerektiğini belirlemektedir.Ayrıca,şirketin satış mağazalarının aylık kirası için ayırabildiği para da 12.00 YTL’dir.
ÇÖZÜM Bu problem,hangi semtlerde mağazaların açılıp açılmamasına ilişkin olduğundan,0-1 tamsayılı programlama türünde formüle edilmelidir.Dolayısı ile,
1 mağazanın j semtinde açılması Xj = 0 mağazanın j semtinde açılmaması
Max z = 30.000x1 + 45.000x2 + 60.000x3 + 20.000x4 + 15.000x5 + 18.000x6 Kısıtlayıcılar 2.000x1 + 3.000x2 + 5.000x3 + 2.500x4 + 1.500x5 + 1.200x6 ≤ 12.000 ve Xj = 0 veya 1,j = 1,2,3,4,5,6 Bu problemin çözümü; x1 = 1,x2 =1,x3 = 1,x4 =0,x5 = 0,x6 = 1 ve max z =153.000
Şirket aylık 153.000 müşteri potansiyelini elde edebilmesi için satış mağazalarını 1,2,3 ve 6 nolu semtlere açmalıdır. Sırt çantası problemleri tek kısıtlayıcılı olduğu gibi değişkenlere ilişkin kısıtlar artırılarak çok boyutlu da olabilir.
6.2.3 Sermaye Bütçeleme Problemleri Sermaye bütçeleme problemleri,eldeki sınırlı bütçenin yatırım projelerine dağıtılarak en fazla getiriyi sağlamayı amaçlayan problemlerdir.Sermaye bütçeleme problemleri klasik doğrusal programlama problemi olarak formüle edilerek çözümlendiği gibi sırt çantası problemi türünde de ele alınarak,0-1 tamsayılı programlama problemi olarak da çözümlenebilmektedir.
Daha önce ele aldığımız Örnek 6. 2. 2 Daha önce ele aldığımız Örnek 6.2.2.1,aslında tek dönemli sermaye bütçeleme problemidir.Fakat uygulamada,çoğu yatırımcılar,elindeki sermayeyi birden fazla döneme yayıp belirli projelere yatırarak dönem sonunda en fazla getiriyi elde etmek isterler.Ayrıca yatırımcılar,hangi dönemde hangi yatırım yapılmalıdır ki en fazla getiri sağlansın ile iki veya daha fazla projeden sadece birisinin seçilmesinin gerektiren problemler ile de karşılaşırlar. Özellikle,birden fazla döneme ilişkin yatırım problemleri,çok dönemli sermaye bütçeleme problemleridir.
ÖRNEK 6.2.3.1 FAMU Şirketi,elindeki sermayeyi birbirini izleyen 4 yıl için var olan 5 projeye yatırmak ve yatırımlarını 5.yılda satarak elde edeceği toplam getiriyi ençoklamak istemektedir.Şirket,bu projelerden birine karar verirse,dört yıl boyunca belirli miktarda bu projeye para yatırmalıdır. Şirketin her dönem için yatırabileceği para sınırlıdır.Şirket ile ilgili veriler aşağıda tabloda verilmiştir.
FAMU Şirketi İle İlgili Veriler Projeler Yıllar içinde yatırılması gereken miktar (YTL) 5.yılda beklenen satış fiyatı 1 2 3 4 20,000 40,000 10,000 5,000 80,000 30,000 2,000 60,000 50,000 5 15,000 25,000 8,000 Bütçe
FAMU şirketinin amacını gerçekleştirmek modeli formüle ediniz. ÇÖZÜM Bu problem,çok boyutlu sırt çantası problemidir.Bütçe kısıtlayıcısı her yıla karşılık gelmek üzere dört tanedir. Modelin karar değişkenleri
1 proje j seçilirse Xj = j = 1,2,3,4,5 0 proje j seçilmez ise
Amaç fonksiyonu ; Max z = 80x1 + 60 x2 + 50 x3 + 40x4 + 20x5
Kısıtlayıcılar 40x1 + 30x2 + 40x3 + 20x4 + 15 x5 ≤ 60 40x1 + 20x2 + 30x3 + 30x4 + 25x5 ≤ 80 10x1 + 5x2 + 10x3 + 5x4 + 10x5 ≤ 30 5x1 + 2x2 + + 10x4 + 8x5 ≤ 20 ve xj = 0 veye 1,j = 1,2,3,4,5
Problemin optimal çözümü ise x1 =1,x2 = 1,x3 = x4 = x5 = 0 ve max z = 140.000 YTL’dir.
6.2.4 Sabit Yük Problemleri Sabit yük (Fixed-Charge) veya hazırlık maliyeti (Setup cost) bir faaliyet gerçekleştiğinde ortaya çıkar.Örneğin,bir kumaşın baskı makinesinde basılması için önce kumaşın baskı kalıbı hazırlanıp baskı makinesi yerleştirilmelidir. Baskı kalıbının hazırlanması ve makineye takılması maliyetine sabit yük veya hazırlık maliyeti denir.Basılan kumaş miktarı ile orantılı olan maliyete de değişken maliyet denir.Bir anlamda,değişken maliyet en az faaliyet düzeyi ile orantılı olacaktır.Bilindiği üzere,bir işletme istenen,toplam maliyetin enküçüklenmesidir. Bir j faaliyetinin toplam maliyeti aşağıdaki fonksiyon biçiminde ifade edebilir.
kj + cjxj xj > 0 ise, Fj (xj) = 0 xj > 0 ise,
Burada; Xj = Faaliyet j’nin (kj≥0) miktarını Kj = Faaliyet j’nin hazırlık veya sabit yük maliyetini Cj = Faaliyet j’nin her artışına göre maliyetini gösterir. Dikkat edildiğinde,kj maliyeti ancak xj>0 olduğunda ortaya çıkmaktadır.Bir anlamda,ancak ürün üretilmeye karar verildiğinde hazırlık veya sabit yük maliyeti söz konusu olmaktadır.
Hazırlık maliyetini içeren problemler,karma tamsayılı problem biçiminde ifade edilebilir.bunun için,her bir faaliyetin (j = 1,2,3,…,n) üretimi xj > 0 olmalı mıdır?gibi soruların her biri için evet veya hayır kararını yansıtan yeni bir yardımcı ikili (binary) değişken yj’ye gereksinim vardır.Böylece,
Z= n ∑ (cj xj+kjyj j=1
Burada 1 xj > 0 ise yj = 0 xj = 0 ise Bu yüzden yj tesadüfi kararlar (contingen decisions) olarak görülmektedir.Dolayısıyla xj ile yj arasındaki ilişkiyi ortaya koyan kısıtlayıcının da ele alınması gerekir.Bu kısıtlayıcıda, Xj ≤ Myj j = 1,2,3,…,n
Buradaki,M herhangi bir xj (j = 1,2,3,…,n) nin en çok uygun değerinin aşan oldukça büyük değerli sayısı ifade eder.Bu kısıtlayıcı, xj >0 olduğunda yj’nin sıfırdan çok bire olduğunu (yani yj = 1) karşılar.Böylece,kjyj = kj olur ve xj üretildiğinde sabit maliyet kj ortaya çıkar.Buradaki sorun,xj = 0 olduğunda sözünü ettiğimiz kısıtlayıcının yj’yi 0 veya 1 olması için serbest bırakmasıdır.Fakat bu sorun,amaç fonksiyonun yapısı gereği kendiliğinden
Çünkü kj = 0 olduğunda yj formülde yer almayacaktır Çünkü kj = 0 olduğunda yj formülde yer almayacaktır.Bu nedenle,kj > 0 olduğunda durum ile ilgileneceğiz.Ayrıca,xj = 0 olduğunda kısıtlayıcı yj = 0 ve yj = 1 arasında bir seçime olanak verir.Amaç fonksiyonun yj =0 olduğundaki değeri (z),yj = 1 olduğu değerden daha küçük olmalıdır.Dolayısıyla,amaç fonksiyonun değerini (z),minimum kılmak istediğimizden her zaman xj = 0 olduğunda yj = 0’ı seçeriz.
Şimdi,karma tamsayılı sabit yük problemini formüle edebiliriz. Minimum z = n (cj xj +kjyj) ∑ j=1
Kısıtlayıcılar n i = 1,2,3,…,m aijxj ≥ bi j = 1,2,3,…,n ∑ j=1
xj – Myj ≤ 0 ve xj ≥ 0 yj = 0 veya 1 j = 1,2,3,…,n Yukarıdaki modelde,eğer xj değişkenlerin tamsayı olması zorunlu ise bu problem,arı tamsayılı problem olur.
ÖRNEK 6.2.4.1 Bu örnekte,doğrusal programlamanın hava kirliliğini azatlımda nasıl kullanılabildiği açıklanacaktır.Önce problem klasik doğrusal programlama modeli olarak ifade edilecek sonra da ek yük maliyetler ele alınarak,model karma tamsayılı programlama olarak ifade edilerek çözüm değerlerine ulaşılmaya çalışılacaktır. Çelik fabrikasının iki fırınından çıkan;zerrecikler,sülfür oksit ve hidrokarbon türündeki kirleticiler havayı kirletmektedirler.Yasaların getirdiği temiz hava standartlarına göre şirket bu kirleticilerin yıllık aşağıdaki emisyon oranında (kg) azaltmak zorundadır.
Yıllık azatlımı istenen emisyon oranı (kg) Kirleticiler Yıllık azatlımı istenen emisyon oranı (kg) Zerrecikler Sülfür oksit Hidrokarbon 16.800 42.000 25.000
Bu kirleticilerin en ekonomik yolda azatlımı için kabul edilen yöntemler; a.Fabrika bacasının yükseltilmesi b.Fırın bacalarına filtre takılması c.Fırınlarda daha kaliteli yakıt kullanılmasıdır.
Teknolojik kısıtlamalar altında bu yöntemlerin kullanılması ile emisyon oranlarında yıllık azaltılabilecek miktarlar ise aşağıdaki tabloda verilmiştir. Fabrika Bacasının Yükseltilmesi Filtre takılması Kaliteli yakıt Kullanımı Kirleticiler Fırın 1 Fırın 2 Zerrecikler Sülfür oksit Hidrokarbon 3,000 2,200 6,000 4,500 3,600 3,200 9,600 10,000 5,000 9,000 15,500 13,500 7,500 17,500 5,500 4,700 5,400 4,000
Kirlilik Azatlım Yöntemleri Kirletici azatlım yöntemleri tam etkince kullanıldığında,onların yıllık maliyeti (milyon YTL) aşağıda verilmiştir. Kirlilik Azatlım Yöntemleri Fırın 1 Fırın 2 Fabrika bacasının yükseltilmesi Filtre takılması Kaliteli yakıt tüketimi 4 3 6 5 2.5
Çelik şirketinin amacı,bu kirletici azatlım yöntemlerinden hangi oranda (kapasitede) kullanarak toplam maliyetini minimum kılmaktır. ÇÖZÜM Bu problemin,altı karar değişkeni vardır.Her bir karar değişkeni,her iki fırında kullanılması gereken kirlilik azatlım yönteminin yüzdelik oranlarını gösterir
Karar Değişkenleri Fırın 1 Fırın 2 Fabrika bacasının yükseltilmesi Filtre takılması Kaliteli yakıt kullanılması x1 x3 x5 x2 x4 x6
Amaç fonksiyonu Min z =4x1 + 5x2 + 3x3 + 2.5x4 + 6x5 + 4x6 Kısıtlayıcılar Emisyon azalımı 3x1 + 2.2x2 + 6x3 + 4.5x4 + 3.6x5 + 3x6 ≥16.8 9.6x1 + 10x2 + 5x3 + 9x4 + 15.5x5 + 13.5x6 ≥42 7.5x1 + 17.5x2 + 5.5x3 + 4.7x4 + 5.4x5 + 4x6 ≥25
Teknolojik kısıt. x1≥1 x2≥1 x3≥1 x4≥1 x5≥1 x6≥1 ve xj≥0 (j = 1,2,3,4,5,6)
Yukarıda ifade edilen klasik doğrusal programlama modelinin çözüm değerleri x1 = 1, x2 = 0.1991,x3 = 1,x4 = 1,x5 = 0,x6 = 0.9540 ve min z = 14.310 YTL’dir.Buna göre Fırın 1’de baca yükseltilmesi yüzde yüz,Fırın 2’de %20 uygulanmalıdır.Fırın 1 ve Fırın 22ye yüzde yüz filtre takılmalı ve kaliteli yakıt tüketimi Fırın 2’de %95 olmalıdır.
Şimdi,çelik fabrikasında kirlilik azatlım yöntemi kullanmak için Fırın 1’de ek 1.000.000 YTL ve Fırın 2’de ek 600.000 YTL bir harcamanın gerekli olduğunu ele alarak problemimizi çözelim.böylece sabit yük maliyeti k1 = 1.000.000,k2 = 600.000 olacaktır.Bu sabit yük maliyetini de önceki modelimize yükleyerek,şirketin aşağıda görülen karma tamsayılı programlama modelini yazabiliriz.
Min z =4x1 + 5x2 + 3x3 + 2.5x4 + 6x5 + 4x6 + y1 + 0.6y2 Kısıtlayıcılar 3x1 + 2.2x2 + 6x3 + 4.5x4 + 3.6x5 + 3x6 ≥16.8 9.6x1 + 10x2 + 5x3 + 9x4 + 15.5x5 + 13.5x6 ≥42 7.5x1 + 17.5x2 + 5.5x3 + 4.7x4 + 5.4x5 + 4x6 ≥25 x1 ≤1 x2 ≤1 x3 ≤1 x4 ≤1 x5 ≤1 x6 ≤1 x1 – My1 ≤0 x2 – My2 ≤0
ve xj≥0 (j = 1,2,3,4,5,6) y1,y2 = 0 veya 1
Bu modelin,WINQSB paket programı ile elde edilen çözüm değerleri; x1 = 0,x2 = 0.42198,x3 = 0.9969,x4 = 1,x5 = 0.6592,x6 = 1,y1 = 0,y2 = 1 ve min z = 16.194.800 YTL’dir.
Ürünler İşçilik Süresi (dak) Kumaş Miktarı (gram) T-shirt Pijama Şort ÖRNEK 6.2.4.2 FAMU Tekstil Şirketi,hazır giyim ürünlerinden T-shirt,pijama, ve şort üretmektedir.Her bir ürün için istenen işçilik ve kumaş miktarı aşağıda verilmiştir. Ürünler İşçilik Süresi (dak) Kumaş Miktarı (gram) T-shirt Pijama Şort 8 28 16 284 658 939
Şirketin,haftalık üretim için elinde 8. 000 kg kumaş ile 108 Şirketin,haftalık üretim için elinde 8.000 kg kumaş ile 108.000 dakika işçilik vardır.Şirket,her T-sihrt satışından 5 YTL,pijama satışından 6 YTL,şort satışından da 4 YTL kazanmaktadır.Ayrıca,müşteri talebinin zamanında karşılanması için şirket,ürettiği ürünler için dikiş makinesi kiralamak zorundadır.Şirket,haftalık T-shirt makinesine kira bedeli olarak400 YTL,pijama dikiş makinesine 250 YTL,şort dikiş makinesine de 150Ytl ödemektedir. FAMU Tekstil şirketinin haftalık kârını en çoklayacak tamsayılı programlama modelini kurunuz.
ÇÖZÜM Karar değişkenleri; x1=Haftalık üretilecek T-shirt sayısını x2=Haftalık üretilecek pijama sayısını x3=haftalık üretilecek şort sayısını gösterir.
Dikkat edilirse kiralanan dikiş makinelerinin maliyeti üretilen ürün miktarına değil sadece üretilen ürün türüne bağlıdır. Dolayısıyla,makinelerin kiralama maliyeti ifadesini aşağıdaki değişkenleri kullanarak açıklayabiliriz.
1 T-shirt üretilirse y1 = 0 T-shirt üretilmez ise 1 Pijama üretilirse y2 = 0 Pijama üretilmez ise 1 Şort üretilirse y3 = 0 Şort üretilmez ise
Kısaca,eğer xj >0 ise yj =1 ve eğer xj = 0 ise yj = 0 dır. Haftalık makinelerin kiralama maliyeti = 400y1+250y2+150y3
Burada,bilinmesi gereken nokta,şirketin gerçekten ürettiği ürün makinesine ödemede bulunacağıdır.Örneğin,şirket sadece T-shirt ve pijama üretir ise y1 = y2 = 1 ve y3 = 0 olur ve dolayısıyla toplam haftalık kiralama maliyeti de 400+250 = 650 YTL olacaktır.
Kiralama maliyeti üretilen ürün miktarına bağlı olmadığından,her tür makinenin kiralama maliyetine sabit yük maliyeti adı verilir.bir faaliyetin sabit yük maliyeti ancak o faaliyet sıfır olamayan değer aldığı zaman ortaya çıkar.
Şimdi,şirketin tamsayılı programlama modelini kurabiliriz. Max z =5x1+6x2+4x3-400y1-250y1-150y3 Kısıtlayıcılar 8x1 + 28x2 + 16x3 ≤ 108.000 (işgücü) 284x1 + 658x2 + 939x3 ≤ 8.000.000 x1 - My1 ≤ 0 x2 - My2 ≤ 0 x3 - My3 ≤ 0 x1,x2,x3 ≥ 0; x1,x2,x3 tamsayı y1,y2,y3 = 0 veya 1
Bu model çözülürken,M = 15.000 alınmıştır.çözüm değerleri ise; x1 = 13.500,x2 = 0,x3 = 0,y1 = 1,y2 = 0,y3 = 0, max z = 67.100 YTL’dir.
6.2.5 Küme Örtme Problemleri Bir küme örtme probleminde (set covering problem) verilen herhangi bir kümenin her üyesi(örneğin küme 1) diğer kümenin (küme 2)kabul edilebilen bir üyesince örtülmeli yani kapsanmalıdır.Küme örtme problemindeki amaç;küme 1’deki tüm elemanları örtmek için gereken küme 2’deki eleman sayısını minimum kılmaktır.
6. 2. 5 Küme Örtme Problemleri 6.2.5 Küme Örtme Problemleri Bir küme örtme probleminde (set covering problem) verilen herhangi bir kümenin her üyesi(örneğin küme 1) diğer kümenin (küme 2)kabul edilebilen bir üyesince örtülmeli yani kapsanmalıdır.Küme örtme problemindeki amaç;küme 1’deki tüm elemanları örtmek için gereken küme 2’deki eleman sayısını minimum kılmaktır. Min z = n cj xj ∑ j=1
Kısıtlayıcılar m aij xj ≥ 1 i=1,2,….,m j=1,2,….,n ∑ t=1
ve xj = 0 veya 1 (j = 1,2,3…,n)
Küme örtme problemlerinin bir çok uygulama alanı vardır Küme örtme problemlerinin bir çok uygulama alanı vardır.Havayolu şirketleri ,hangi uçağının sefere çıkacağına ve onun nereye uçacağına filo çizelgelemesi yaparak karar verirler.Çizelgelenmiş uçuşlara uçakların atanmasına filo atanması denir.Filo atama probleminde,atama maliyetleri enazlanmak veya her uçuş seferinden elde edilen kâr en çoklanmak istenir.Filo atama ile tayfa eşleştirme problemleri küme örtme problemleri özelliğindedir.Ayrıca havayolu tayfa çizelgelemesi son yıllarda tamsayılı programlamanın önemli bir uygulamasını oluşturmakta,hatta binlerde olanaklı uçuş sıralamasını içeren problemler bu yöntemle çözülmektedir.
Bir küme örtme problemi,potansiyel faaliyetlerin (uçuş sıralaması gibi) bir sayısını içerirken faaliyetlerin özelliklerini (uçuşları gibi)tanıtabilir.Her faaliyet özelliklerden ziyade bazılarına sahip olmalıdır.Amaç ise her özelliğin en az bir kere kapsanarak en az maliyetli faaliyet bileşenini belirlemektir.Örneğin Si, i özelliklerini kapsayan (örten) tüm faaliyetlerin kümesi olsun.Böylece Si kümesinin en az bir elemanı seçilen faaliyetler arasında olmalıdır ve dolayısıyla kısıtlayıcı
xj ≥ 1 ∑ jєsi
Bu kısıtlayıcılar küme-ayrıştırma probleminde xj ≥ 1 ∑ jє si
olur.Böylece,Si kümesinin her bir elemanı,bütün seçilen faaliyetler arasında yer almalıdır,
ÖRNEK 6.2.5.1 Bursa Belediyesi sekiz yerleşim merkezi için itfaiye (yangın söndürme) istasyonu kurmak istemektedir.Belediyenin amacı,her bir yerleşim yerine,20 dakikada ulaşılabilecek yerlerde en az sayıda itfaiye istasyonunun kurulmasıdır. Bursa ilindeki sekiz yerleşim merkezi arasındaki ulaşım süreleri aşağıdaki tabloda verilmiştir.
Yerleşkeler Arasındaki Uzaklıklar (dakika) 15 25 30 35 22 10 32 16 24 12 18 28 26 40 20 19
İtfaiye istasyonlarının nerede ve kaç tane kurulması gerektiğini tamsayılı programlama modeli kurarak belirleyiniz. ÇÖZÜM Her yerleşim yerine,itfaiye istasyonunun kurulup kurulmamasını belirlemek için 0-1 değişkenlerini; x1,x2,x3,x4,x5,x6,x7 ve x8
1 itfaiye istasyonu j yerleşkesinde kurulur ise xj = 0 itfaiye istasyonu j yerleşkesinde kurulmaz ise ile tanımlayalım. Toplam kurulacak itfaiye istasyonu sayısı = x1+x2+x3+x4+x5+x6+x7+x8 dir. Bursa Belediye yönetiminin amacı ise bu toplam sayıyı en aza indirmektir.Yani;
Min z = x1+x2+x3+x4+x5+x6+x7+x8 Belediye yönetiminin kısıtlayıcıları ise yerleşkelere 20 dakikada ulaşılabilen yerleşkelerde itfaiye istasyonlarının kurulmasıdır.aşağıda,her bir yerleşkenin 20 dakikada veya daha az sürede diğer yerleşkelere ulaşabildiğini tablodan yararlanarak belirlenmiştir.
Ulaşılabilen Yerleşkeler 1,2,7 1,2,6,8 3,4,8 3,4,5,7 4,5,6,8 2,5,6,7 1,4,6,7,8 2,3,5,7,8
Yerleşke 12e 20 dakika uzaklıkta en az bir itfaiye istasyonu kurmak için x1+x2+x7 ≥ 1 ( Yerleşke 1 ) kısıtlayıcısı ele alınmalıdır.bu kısıtlayıcı x1 = x2 = x7 = 0 olmasını olanaksız kılar ve böylece yerleşke 12e 20 dakikada ulaşabilen az bir itfaiye istasyonunun kurulması sağlanmış olur.Benzer şekilde diğer 7 yerleşke içinde kısıtlayıcıları yazabiliriz.Amaç fonksiyonu ile bu kısıtlayıcıları ilişkilendirirken her değişken 0 veya 12e eşit olmalıdır.
Şimdi,Bursa ilinde hangi yerleşkelere itfaiye istasyonu kurulması gerektiğini belirleyen 0-1 tamsayılı programlama modelini kurabiliriz. Min z = x1+x2+x3+x4+x5+x6+x7+x8
Kısıtlayıcılar x1+x2 +x7 ≥ 1 (Yerleşke 1) x1+x2 +x6 +x8 ≥ 1 (Yerleşke 2) x3+x4 +x8 ≥ 1 (Yerleşke 3) x3+x4+x5 +x7 ≥ 1 (Yerleşke 4) x4+x5+x6 +x8 ≥ 1 (Yerleşke 5) x2 +x5+x6+x7 ≥ 1 (Yerleşke 6) x1 +x4 +x6+x7+x8 ≥ 1 (Yerleşke 7) x2+x3 +x5 +x7+x8 ≥ 1 (Yerleşke 8) ve xj = 0 veya 1 (j = 1,2,3,4,5,6,7,8)
Bu modelin optimal çözümü ise x2 = x4 = 1,x1 = x2 = x3 = x4 = x5 = x6 = x7 = x8 = 0 ve min z = 2’dir. Böylece,Bursa ilinde sadece yerleşke 2 ve yerleşke 4’de olmak üzere;iki tane itfaiye istasyonu kurulmalıdır.
Küme örtme problemlerinde temel amaç,bütün yerleşkelere hizmet verebilecek ve bir yerleşkeye “en az” bir merkezin hizmet verebilmesini sağlayan en az sayıda itfaiye istasyonunun alt kümesinin belirlenmesidir.Bu problemde verilen sekiz yerleşke küme 1’in elemanları(S1 = {1,2,3,4,5,6,7,8})ve bu yerleşkelere 20 dakika içinde ulaşılabilen yerleşkelerde kurulacak itfaiye istasyonları da küme 2’nin (S2 = {2,4})elemanlarıdır.Yerleşke 2’de kurulan itfaiye istasyonu,yerleşke 1,2,6 ve 8’e hizmet ederken yani onları kapsarken,yerleşke 4’de kurulan itfaiye istasyonu da yerleşke 3,4,5 ve 7’ye hizmet götürecektir.
ÖRNEK 6.2.5.2 Bir havayolu şirketi,tayfalarını gelecekteki uçuşların tümünü örtmesi (kapsaması) için atamak istemektedir.Odaklanılan problem,aşağıdaki tabloda verilen birinci sütundaki İstanbul ile ilgili uçuşlara üç tayfanın atanmasıdır.Tablodaki 12 sütun her tayfa için olanaklı 12 sıralamayı ve her sütunda yer alan sayılarda uçuş sırasını göstermektedir. Bu sırlamada yer alan uçuşlarda,her uçuşu kapsayacak şekilde 3 tayfadan birisinin atanması gereklidir.Elbette bir uçuşa birden fazla tayfa atanabilir.Böyle bir durumda,havayolu şirketi fazladan istihdam ettiği tayfaların ücretini ödemek zorundadır.Tablonun maliyet satırı özellikle sıralı uçuşlara örten (kapsayan) üç tayfanın toplam atanma maliyetini minimum kılmaktır.
Havayolu Şirketi problemi İçin Veriler Uçuşların olanaklı sıralaması uçuşlar 1 2 3 4 5 6 7 8 9 10 11 12 İstanbul-Londra İstanbul-Frankfurt İstanbul-Amsterdam Londra-Ankara Londra-İstanbul Ankara-Frankfurt Ankara-Amsterdam Frankfurt-İstanbul Frankfurt-Ankara Amsterdam-İstanbul Amsterdam-Ankara Maliyet(1000 YTL)
ÇÖZÜM Uygun 12 sıralı uçuş için 12 tane evet veya hayır vardır.Yani;j sırasındaki uçuşu bir tayfa atanmalı mıdır? (j = 1,2,3,4,5,6,7,8,9,10,11,12) Dolayısıyla bu soruya ilişkin kararlar için 12 tane ikili değişken kullanılmalıdır.
1 j sırasındaki uçuşa bir tayfa atanır ise Xj = 0 j sırasındaki uçuşa bir tayfa atanmaz ise Bu formülasyonun en ilginç kısmı her kısıtlayıcının karşılığı olan uçuşu kapsamaktadır.Örneğin tablodan son uçuş olan Amsterdam-Ankara uçuşunu ele alalım.Beş sıralama(isimcek 6,9,10,11 ve 12 sıralamalar)bu uçuşu kapsar.Bu yüzden söz konusu 5 sıralamada yer alan uçuşlardan en az biri seçilmelidir.Buradaki kısıtlayıcı; x6+x9+x10+x11+x12 ≥ 1 dir.
Bu problemin tamamlanmış 0-1 tamsayılı programlama modeli aşağıda verilmiştir. Min z =2x1+3x2+4x3+6x4+7x5+5x6+7x7+8x8+9x9+9x10+8x11+9x12
Kısıtlayıcılar x1+x4+x7+x10 ≥ 1 (İstanbul-Londra) x2+x5+x8+x11 ≥ 1 (İstanbul-Frankfurt) x3+x6+x9+x12 ≥ 1 (İstanbul-Amsterdam) x4+x7+x9+x10+x12 ≥ 1 (Londra-Ankara) x1+x6+x10+x11 ≥ 1 (Londra-İstanbul) x4+x5+x9 ≥ 1 (Ankara-Frankfurt) x7+x8+x10+x11+x12 ≥ 1 (Ankara-Amsterdam) x2+x4+x5+x9 ≥ 1 (Frankfurt-İstanbul) x5+x8+x11 ≥ 1 (Frankfurt-Ankara) x3+x7+x8+x12 ≥ 1 (Amsterdam-İstanbul) x6+x9+x10+x11+x12 ≥ 1 (Amsterdam-Ankara)
(üç tayfanın atanması) 12 xj = 3 ∑ j=1
ve xj = 0 veya 1 (j = 1,2,3,…,12) Bu modelin optimal çözümü: Min z = 18.000 YTL x3 = 1 (Bir tayfa üçüncü sıralamadaki uçuşa atanacak) x4 = 1 (Bir tayfa dördüncü sıralamadaki uçuşa atanacak) x11 = 1 (Bir tayfa on birinci sıralamadaki uçuşa atanacak) x1 = x2 = x5 = x6 = x7 = x8 = x9 = x10 = x12 = 0
6.2.6 Ya-Veya Kısıtlayıcı Problemler Matematiksel programlama problemlerinde genellikle,iki kısıtlayıcıdan en az birisinin doyurulması istenir.İşte bu tür kısıtlayıcılı problemlere ya-veya kısıtlayıcı(Either-or Constraints) problemler denir.Bir problemde; f (x1,x2,….,xn)≤ 0 (1) g(x1,x2,….,xn)≤ 0 (2) biçiminde iki tür kısıtlayıcı olduğunu düşünelim.Bu iki kısıtlayıcıdan en az birisinin doyurulması için kısıtlayıcılara 0-1 değişkeni,y eklenir. f(x1,x2,….,xn)≤My (3) g(x1,x2,….,xn)≤M(1-y) (4)
Burada; y : 0-1 tamsayılı değişkeni M : f (x1,x2,….,xn) ≤ M ve g (x1,x2,….,xn) ≤ M Koşulu ile problemlerdeki diğer kısıtlayıcıları doyuran yeterince büyük değerli bir sayıyı ifade eder. Şimdi 3 ve 4 nolu yukarıdaki kısıtlayıcıların eklenmesi bize 1 ve 2 nolu kısıtlayıcılardan en az birinin doyurulmasına eşit olduğunu gösterir.
Şöyle ki; Eğer y = 0 olduğunda (3) ve (4) nolu kısıtlayıcılar f ≤ 0ve g ≤ M olur.Böylece, y = 0 olduğunda ikinci kısıtlayıcı (g ≤ M) problemin çözümünü sınırlamaz.Dolayısıyla,(1) veya muhtemelen (2) nolu kısıtlayıcı doyurulmuş olur. Eğer y = 1 olduğunda (3) ve (4) nolu kısıtlayıcılar f ≤ M ve g ≤ 0 olur.Böylece, y = 1 olduğunda (2) nolu veya (1) nolu kısıtlayıcı doyurulur. Sonuç olarak,y = 0 veya y = 1 olduğunda (3) ve (4) nolu kısıtlayıcılar ile (1) ve (2) nolu kısıtlayıcılardan en az birisi doyurulur. Şimdi,ve-veya kısıtlayıcılarına ilişkin iki örnek problemi ele alalım.
ÖRNEK 6.2.6.1 Bir otomobil fabrikası küçük,orta ve büyük boy olmak üzere üç tür otomobil üretmeyi düşünmektedir.Her tür otomobil için gerekli olan çelik,işgücü ile her otomobilden elde edilen kârlar tabloda verilmiştir.
Küçük Orta Büyük Eldeki Kaynak Miktarı Çelik (ton) İşgücü (saat) Kâr (YTL 1,5 30 2000 3 25 3000 5 40 4000 6.000 60.000
Otomobil üretiminin ekonomik olması için,üretilecek otomobil hangi türden ise miktarı en az 1000 adet olmalıdır.Fabrikanın kârını enbüyükleyecek tamsayılı programlama problemini formüle ediniz.
ÇÖZÜM Karar değişkenleri; x1 = Üretilecek küçük otomobillerin sayısını x2 = Üretilecek orta boy otomobillerin sayısını x3 = Üretilecek büyük boy otomobillerin sayısını gösterir. Amaç fonksiyonu: Max z =2000x1 + 3000x2 + 4000x3 Biliyoruz ki;herhangi bir türden otomobil üretilirse onun üretim miktarı en az 1000 olmalıdır.Çelik ve işgücü miktarı sınırlı olduğundan otomobil fabrikasınca aşağıdaki beş kısıtlayıcı doyurulmalıdır. Kısıtlayıcı 1; x1≤0 veya x1≥1000 Kısıtlayıcı 2; x2≤0 veya x2≥1000 Kısıtlayıcı 3; x3≤0 veya x3≥1000 Kısıtlayıcı 4; üretilen otomobiller için en fazla 6000 ton çelik kullanılabilir.
Önceki açıklamalarımızda da görüldüğü gibi eğer f(x1,x2,x3) = x1 ve g(x1,x2,x3) = 1000 – x1 olarak tanımladığımızda,kısıtlayıcı 1’i aşağıda verilen kısıtlayıcı çifti ile yeniden ifade edebiliriz. x1 ≤ M1y1 1000 – x1 ≤ M1(1 – y1) ve y1 := 0 veya 1
x1 ve 1000 - x1’in her ikisinin M1’den fazla olmasını önlemek için M1’in 1000’den büyük ve x1’in ise M1’den küçük olması gerekir.Dolayısıyla M1 yeterince büyük değerli seçilmelidir.Problemimizde,tüm işçilik süresi küçük otomobilin üretimine ayırdığımızda en fazla üretilebilecek otomobil sayısı 6000/3 = 2000 dir.Böylece,M1 = 2000 olmalıdır.Benzer şekilde,kısıtlayıcı 2 ve kısıtlayıcı 3’de kısıtlayıcı çifti ile değiştirerek yazabiliriz. x2 ≤ M2y2 1000 - x2 ≤ M2(1 – y2) y2 = 0 veya 1 x3 ≤ M3y3 1000 – x3 ≤ M3(1 _ y3) y3 = 0 veya 1 M2 = 2000 ve M3 = 1200 olması yeterlidir. Çelik kısıtlayıcısı ile işgücü kısıtlayıcıları da aşağıda verilmiştir. 1.5x1 + 3x2 + 5x3 ≤ 6000 (Çelik) 30x1 + 25x2 + 40x3 ≤ 60.000 (İşgücü) Şimdi xj ≤ 0 ve xj’nin tamsayı olması gerektiğini dikkate alarak otomobil fabrikasının tamsayılı programlama (TP) modelini yazabiliriz. Max z = 2000x1 + 3000x2 + 4000x3
Kısıtlayıcılar x1≤2000y1 1000 – x1 ≤2000(1 – y1) x2≤2000y2 1000 – x2 ≤2000(1 – y2) x3≤1200y3 1000 – x3 ≤120081 – y3) 1.5x1 + 3x2 + 5x3≤6000 30x1 + 25x2 + 40x3≤60.000 ve x1,x2,x3 ≥ 0; x1,x2,x3 tamsayı y1,y2,y3 = 0 veya 1 Bu modelin optimal çözüm değerleri;z =6000,x2 = 2000, y2 = 1,y1 = y2 = x1 = x3 = 0 dır..böylece,otomobil fabrikası 2000 adet orta boy otomobil üretmeli ve en fazla elde edeceği kâr da 6000 YTL’dir.
ÖRNEK 6.2.6.2 Bir şirketin araştırma ve geliştirme bölümü üç yeni ürün geliştirmiştir.Şirket yönetimi,üretim hattında yaşanabilecek darboğazı önlemek için bu ürünlere aşağıdaki iki kısıtlamayı getirmiştir. Kısıtlama 1:Geliştirilen üç üründen ancak ikisinin üretimi yapılmalıdır. Kısıtlama 2:bu ürünler,şirketin iki fabrikasından sadece birinde üretilmelidir. Ayrıca,her iki fabrikada üretilen ürünlerin birim üretim maliyetleri aynıdır.Ürünler ile ilgili diğer bilgiler aşağıdaki tabloda verilmiştir.
Ürünler İle İlgili Diğer Veriler Haftalık elverişli çalışma süresi Fabrikalar 1 2 3 4 30 6 40 Birim kar(ytl) 5000 7000 3000 Satış potansiyeli (Haftalık adet) 7 5 9
Şirketin amacı, kârını ençoklamak için hangi ürünlerin ne miktarda üretilmesi ve bu ürünün hangi fabrikada üretileceğinin belirlenmesidir.Üretim miktarı ise tamsayı olma zorunluluğu yoktur.
ÇÖZÜM Karar değişkenleri: x1 = Geliştirilen ürün 1’in haftalık üretilecek miktarını x2 = Geliştirilen ürün 2’in haftalık üretilecek miktarını x3 = Geliştirilen ürün 3’ün haftalık üretilecek miktarını Kısıtlama 1 ve kısıtlama 2 ile karar değişkenleri (x1,x2,x3) ≤ 2 olması istenmekte ve bu ürünlerin (x1,x2,x3) ancak iki fabrikanın birinde üretilmesi istenmektedir.Ayrıca,karar değişkenleri sürekli değişkenler olduğundan yardımcı ikili değişkenleri (y1,y2,y3) gerekli olmaktadır.Eğer kara değişkenleri ikili yani 0-1 tamsayılı değişkenler olsaydı kısıtlama 1’i x1 + x2 + x3 ≤ 2 olarak yazabilirdik.Fakat karar değişkenleri sürekli değişkenler olduğundan ikili değişkenleri (yj) aşağıdaki gibi ifade edebiliriz.
1 Eğer xj > 0 ürün j üretilirse y4 = (j=1,2,3,4) 0 Eğer xj = 0 üretilmez ise
Bu yorumu,modelimizde M’in (büyük pozitif değerli sayı) yardımıyla güçlendirmek için aşağıdaki kısıtlayıcıları ekleriz; x1 ≤ My1 (1) x2 ≤ My2 (2) x3 ≤ My3 (3) y1 + y2 + y3 ≤ 2 (4) yj = 0 veya 1 (j = 1,2,3)
Ya-veya kısıtlayıcı ve negatif olmayan kısıtlayıcılar,kara değişkenleri için sınırlı uygun bölgeyi verir ve bu bölgede,her xj ≤ M’dir.bu yüzden,xj ≤ Myj kısıtlayıcısı,yj = 1 olduğunda xj’nin herhangi bir değerinin uygun bölgede olmasına olanak verir.yj = 0 iken xj = 0 olur.yukarıdaki 4.kısıtlayıcı y1,y2,y3’den en fazla ikisinin değerinin 1’e eşit olmasını zorunlu kılar ve dolayısıyla bu iki üründen ancak birisinin üretimi gerçekleşebilir. Kısıtlama 2 için diğer yardımcı ikili değişken (y4)’ü aşağıdaki yorumla modelimize eklemeliyiz.
1 Eğer 4x1 + 6x2 + 2x3 ≤40 (Fabrika 1’de mi gerçekleşmeli?) y4 = 0 Eğer 3x1 + 4x2 + 2 x3 ≤30 (Fabrika 2’de mi gerçekleşmeli?)
Kısıtlama 2,ya-veya kısıtlayıcı türündedir Kısıtlama 2,ya-veya kısıtlayıcı türündedir.Dolayısıyla bu iki kısıtlayıcı, 3x1 + 4x2 + 2 x3 ≤30 + My4 4x1 + 6x2 + 2x3 ≤40 + M(1 – y4) ve y4 = 0 veya 1 olarak ifade edebiliriz.
Şimdi,ele aldığımız kısıtlayıcıların sağ tarafındaki değişkenleri sol tarafa geçirerek şirketin amacını gerçekleştirecek modeli yazabiliriz. Max z = 5000x1 + 7000x2 + 3000x3 Kısıtlayıcılar x1 ≤7 x2 ≤5 x3 ≤9 x1 – My1 ≤0 x2 – My2 ≤0 x3 – My3 ≤0 y1 + y2 + y3 ≤2 3x1 + 4x2 + 2 x3 – My4 ≤30 4x1 + 6x2 + 2x3 + my4 ≤40 ve x1≥0,x2≥0,x3≥0 yj = 0 veya 1 (j = 1,2,3,4)
Bu model,karma tamsayılı programlama modelidir Bu model,karma tamsayılı programlama modelidir.Çünkü,üç karar değişkenin (xj) tamsayı olması istenmez iken dört tane ikili yani 0-1 tamsayılı değişkeni (yj) vardır.Karma tamsayılı programlama algoritması bu modelin çözümünde kullanıldığında,modelin optimal çözüm değerleri;
Max z = 54.500 YTL,x1 = 5.5, x2 = 0, x3 = 9, y1 = 1, y2 = 0, y3 = 1, y4 = 1 ve çözümde M = 50 olarak alınmıştır.Buna göre,üretim için seçilecek ürünler,ürün 1 ve ürün 3’dür.Bu iki ürün de fabrika 2’de üretilmelidir.Ayrıca,haftada ürün 5.5 birim ve ürün 3’den 9 birim üretilmeli ve bunun sonucunda elde edilen haftalık kâr 54.500 YTL olacaktır.
6.2.7.İse – O Zaman Kısıtlayıcılı Problemler İse – o Zaman kısıtlayıcılı (If – Then Constraints) problemler,çoğu uygulamalarda aşağıdaki durumlar ortaya çıktığında söz konusu olmaktadır. Eğer f(x1,x2,…,xn) > 0 kısıtlayıcısı doyurulması istenirse,o zaman g(x1,x2,…,xn) ≥ kısıtlayıcısı da doyurulmalıdır.Öte yandan,eğer f(x1,x2,…,xn) > 0 kısıtlayıcısı doyurulmaz ise g(x1,x2,…,xn) ≥ 0 doyurulabilir yada doyurulmayabilir.Kısaca,f(x1,x2,…,xn) > 0 kısıtlayıcısının g(x1,x2,…,) ≥ 0 kısıtlayıcısını doyurması istenir.Bunu sağlamak için formulasyonda,aşağıdaki kısıtlayıcıların dahil edilmesi gerekir.
-g(x1,x2,…,xn)≤ My (1) f(x1,x2,…,xn)≤ M(1-y) (2) y = 0 veya 1
Bilindiği üzere,M pozitif değerli bir sayı olup,M için seçilecek sayı,problemdeki tüm kısıtlayıcıları karşılayan x1,x2,…,xn değişkenleri için f ≤ M ve –g ≤ M olacak şekilde yeterince büyük olmalıdır.
Gözlemlediğimizde; Eğer f >0 ise o zaman (2) nolu kısıtlayıcı sadece y = 0 olduğunda sağlanır.O zaman (1) nolu kısıtlayıcı –g ≤ 0 veya g ≥ 0 olur ki,bu da istenen sonuçtur.Böylece,eğer f >0 ise o zaman (1) ve (2) nolu kısıtlayıcılar kendiliğinden g ≥ 0 olması sağlar.
Aynı zamanda eğer f > 0 doyurulmaz ise (2) nolu kısıtlayıcı y’nin y = 0 veya y = 1 olmasına izin verir,y = 1 seçilerek (1) nolu kısıtlayıcı kendiliğinden sağlanır.Böylece,eğer f > 0 doyurulmaz ise x1,x2,…,xn değişkenlerinin değerleri sınırlandırılmaz ve g < 0 veya g ≥ 0’ın her ikiside olanaklıdır. İse-o Zaman kısıtlayıcılı problemleri daha iyi açıklayabilmek için bir örnek problemi ele alaım.
ÖRNEK 6.2.7.1 Bursa’da Kaplanlar Soğutma San.Tic. ve Ltd. Şirketinin ürettiği sanayi buzdolaplarından Lapis (250 cm),Beril (240 cm),Mercan (250 cm) ve Oltu (250 cm) boyutunda ürettiği buzdolaplarına ilişkin veriler aşağıdaki tabloda verilmiştir.Bu ürünler,oldukça birbirine benzerdir,fakat şirket Lapis ve Beril isimli dolaplar üreteceği zaman ayda en az 60’şar adet üretecektir
Ürünler İle İlgili Veriler girdiler Lapis Beril Mercan Oltu Rldeki kaynak miktarı Soğutma ünitesi (adet) 1 225 Saç (kg) 260 98.5 96.5 87.5 31.082 Alüminyum (kg) 20 45 48 41.5 8.580 Cam (m²) 3.84 21.5 20.5 3720 İşçilik (saat) 37 36 35 8100 Kâr (YTL) 12.300 11.800 12.500 12.200
Şirketin aylık kârını ençoklayacak tamsayılı programlama modelini kurunuz. ÇÖZÜM Karar değişkenleri: x1:Aylık üretilecek Lapis buzdolabı miktarını x2:Aylık üretilecek Beril buzdolabı miktarını x3:Aylık üretilecek Mercan buzdolabı miktarını x4:Aylık üretilecek Oltu buzdolabı miktarını
Şirketin kâr fonksiyonu; Max z = 12.300x1 + 11.800x2 + 12.500x3 + 12.200x4 Kısıtlayıcılar x1 + x2 + x3 + x4≤225 (Soğutma ünitesi) 260x1 + 98.5x2 + 96.5x3 + 87.5x4≤31.082 (Saç) 20x1 + 45x2 + 48x3 + 41.5x4≤8.580 (Alüminyum) 3.84x1 + 21.5x2 + 20.5x3 + 20.5x4≤3720 (Cam (m²)) 37x1 + 36x2 + 35x3 + 36x4≤81000 (İşçilik-saat)
Şirket,Lapis ve Beril buzdolaplarından ürettiğinde o zaman bunların toplam üretim miktarı en az 60 adet olmalıdır.Bu kısıtlayıcıya da x1 + x2 > 0 ise o zaman x1 + x2 ≥60 olmalıdır. f(x) = x1 + x2 g(x) = -x1 – x2 + 60 olarak ifade edelim. M = 4500 aldığımızda, f(x) = x1 + x2 ≤4500y g(x) = -x1 – x2 + 60 ≤60(1 – y) y = 0 veya 1
Şirketin,tamsayılı programlama modelini bir bütünlük içinde aşağıdaki şekilde gösterebiliriz. Amaç fonksiyonu; Max z = 12.300x1 + 11.800x2 + 12.500x3 + 12.200x4
Kısıtlayıcılar x1 + x2 + x3 + x4 ≤225 260x1 + 98.5x2 + 96.5x3 + 87.5x4 ≤31.082 20x1 + 45x2 + 48x3 + 41.5x4 ≤8.580 3.84x1 + 21.5x2 + 20.5x3 + 20.5x4 ≤3720 37x1 + 36x2 + 35x3 + 36x4 ≤81000 x1 + x2 ≤4500y -x1 – x2 + 60 ≤60(1 – y) ve x1,x2,x3,x4≥0 y = 0 veya 1