Karar Destek Sistemleri Dersi 2. Ünite Özet

Çok-Ölçütlü Karar Verme Ve Çok-Amaçlı Programlama

Giriş

Çok amaçlı problemler, amaçlardan birisini iyileştirebilmek için diğerlerinden ödün vermeyi gerektirirler. Öyle ise; bir problemin çok amaçlı sayılabilmesi için öncelikle amaçların birbiriyle çelişmesi gerekmektedir. Birden fazla amaç söz konusu olduğunda, bu tip problemlerin tek amaçlı problemler için geliştirilen çözüm yöntemlerini kullanarak doğrudan çözülebilmeleri mümkün değildir. Eğer bir karar problemi birden fazla çelişen amaca sahip ise, amaçlar bir birleştirme tekniği kullanılarak birleştirilebilir. Bundan sonraki safhada tek amaçlı problemler için geliştirilen yöntemlerinden birisi kullanılabilir. Amaç birleştirme yöntemlerine ağırlıklı toplam ve epsilon kısıt yöntemleri örnek verilebilir. Ayrıca amaçlara birer hedef değer belirlenerek, çok amaçlı problemlerin çözümde hedef programlama yönteminin kullanılması da mümkündür. Bu bağlamda, amaç fonksiyonları ve kısıt fonksiyonları doğrusal olan problemlere uygulanan doğrusal hedef programlama yönteminden yararlanılabilinir.

Birden fazla ölçüt dikkate alınarak hangi seçeneğin daha iyi olduğunun belirlenmesi, çok ölçütlü karar problemidir. Çok ölçütlü karar problemlerinin çözümünde kullanılan tekniklerden biri TOPSIS’tir.

Çok Ölçütlü ve Çok Amaçlı Problemler

Çok ölçütlü karar probleminde, sınırlı sayıda seçenek arasından en uygununun belirlenmesine çalışılmaktadır ve en uygun seçeneği belirlemekte kullanılacak ölçüt sayısı birden fazladır (kitabın 26. sayfasındaki Örnek 1’de gösterildiği gibi). Çok amaçlı problem ise (kitabın 26. sayfasındaki Örnek 2’de gösterildiği gibi); birden fazla sayıda ve birbiriyle çelişen amaç fonksiyonlarına sahip bir karar problemidir.

Çok amaçlı problemde kısıtları sağlayan her çözüm bir alternatife karşı geleceğinden problemin yapısına bağlı olarak seçenek sayısı sonsuz olabilir. Çok ölçütlü ve çok amaçlı problemlerin farklı yapıda olmaları sebebiyle bu problemlerin çözümleri için farklı çözüm yöntemleri geliştirilmiştir.

Çok Ölçütlü Karar Verme ve Çok Amaçlı Programlamanın Temel Kavramları

Eğer çözümünü araştırdığımız problem tek ölçütlü ya da tek amaçlı ise bu durumda iki seçeneği karşılaştırmak oldukça kolaydır. Ancak birden fazla ölçüt ya da amaç söz konusu olduğunda seçenekleri birbiri ile kıyaslamak güçleşmektedir. İki ölçütün dikkate alındığı bir problemde; iki skaler sayıyı değil, ölçüt değerlerinin yer aldığı iki vektörü karşılaştırmak gerekir. Bu noktada bir vektörün, diğerine baskın olmaması durumunda hangi seçeneğin daha iyi olduğunu söylemek zor olacaktır.

Pareto-En İyi Çözümler Kümesi

Çok ölçütlü karar problemleri için Pareto-Eniyi tanımı ilk olarak 1906 yılında Pareto tarafından izleyen şekilde verilmiştir: “Topluluktaki bireylerin tamamı dikkate alındığında, ekonomik olarak eniyi nokta, topluluktaki her hangi bir bireyin tatmin düzeyini, diğerlerinin tatmin düzeyini bozmadan çok az da olsa artırmanın mümkün olmadığı noktadır.” Eğer matematiksel bir tanım yapılmak istenirse, f(x), tüm amaçları enküçükleme şeklinde olan çok amaçlı bir matematiksel modelin x çözümüne karşı gelen amaç vektörü iken, f(x) < f(x*) şartını sağlayan bir x çözümü bulunamıyor ise, x*, Pareto-Eniyi çözüm (etkin çözüm ya da bastırılamayan çözüm) olarak isimlendirilir. Tek amaçlı programlamada tek bir en iyi çözüm araştırılırken, çok amaçlı programlamada genellikle birden çok Pareto-Eniyi çözüm söz konusudur. Bu nedenle tek bir eniyi çözüm değil Pareto-Eniyi çözümler kümesi araştırılmaktadır (kitabın 29. sayfasındaki Şekil 2.1 ve Şekil 2.2’de gösterildiği gibi).

Çok Ölçütlü Karar Problemlerinin Çözüm Yöntemleri

Çok ölçütlü karar problemlerinin çözümünde kullanılabilecek çözüm yöntemlerinden biri TOPSIS’tir.

TOPSIS

Çok ölçütlü karar problemlerinde ideal çözüm, tüm ölçütlerde ulaşılabilecek eniyi değerlere sahip olan varsayımsal seçenek; eksi-ideal (anti-ideal) çözüm ise tüm ölçütlerde en kötü değerlere sahip olan varsayımsal seçenek olarak tanımlanmaktadır. TOPSIS (Technique for Order Preference by Similarity to Ideal Solution- İdeal Çözüme Benzerlik yolu ile Tercih Sırasının Belirlenmesi Tekniği) ideal çözüme benzerlik prensibine dayanır. Bu yöntem ile seçilen seçenek hem ideal çözüme en yakın olmalı, hem de eksi-ideal çözüme en uzak olmalıdır. Yöntem, altı adımdan oluşur.

İlk adıma geçmeden önce, karar verici tarafından karar matrisi oluşturulmalıdır. Karar matrisinin satırları seçeneklere, sütunları ise karar vermede kullanılacak ölçütlere karşı gelir. Her bir seçeneğin her bir ölçüte göre değerlendirilmesi ile oluşturulur. m seçenek sayısını, n ölçüt sayısını göstermek üzere, matrisin boyutu m × n ’dir. Karar matrisinin elemanları ise i seçenekleri, j ölçütleri göstermek üzere x ij ile ifade edilir. Diğer bir ifadeyle karar matrisi X’te i seçeneğinin j ölçütündeki değerine karşılık gelen matris elemanları x ij ile belirtilir.

Adım 1- Standart karar matrisinin oluşturulması: Standart karar matrisi (R m×n ), karar matrisinden (X m×n ) yararlanarak (kitabın 30. sayfasındaki Adım 1 altında verilen eşitlikte gösterildiği gibi) hesaplanır. Böylelikle standart karar matrisi R ’de her bir i seçeneğinin j ölçütteki standardize edilmiş değerine karşılık gelen r ij elemanları oluşturulur.

Adım 2- Ağırlıklandırılmış standart karar matrisinin oluşturulması: Öncelikle ölçütlere ilişkin ağırlık değerleri (w j ) belirlenir. Ölçüt ağırlıkları 0 ile 1 arasında değer alır ve ölçütlerin ağırlık değerleri toplamı 1’e eşittir (0 ? w j ?1ve ?w j =1’dir). Daha sonra R m×n matrisinin her bir sütunundaki elemanlar, ilgili wj değeri ile çarpılarak V m×n matrisi oluşturulur. Böylelikle, ağırlıklandırılmış standart karar matrisi V’de her bir i seçeneğinin j ölçütteki değerine karşılık gelen vij elemanları oluşturulur (v ij = w j r ij ).

Adım 3- İdeal ve eksi-ideal çözümlerin belirlenmesi: Bu adımda ideal çözüm (A + ) ve eksi-ideal çözüm (A ), izleyen şekilde tanımlanır. A + , her ölçütte ‘eniyi’ değerleri alan varsayımsal seçenektir. A ise her ölçütte “en kötü” değerleri alan bir diğer varsayımsal seçenektir. V m×n matrisinin her bir sütununun eniyi değerleri A + ’yı, en kötü değerleri ise A ’yi oluşturur.

Adım 4- Ayırma ölçüsünün hesaplanması: Bu adımda alternatifler arasındaki ayrım ölçüsü için Öklid uzak bağıntısı kullanılır. Her seçeneğin ideal çözümden (S i + ) ve eksi-ideal çözümden (S i ) uzaklıkları (kitabın 30. sayfasındaki Adım 4 altında verilen formüllerde gösterildiği gibi) hesaplanır. Buna göre ağırlıklandırılmış standart karar matrisinde i seçeneğine ilişkin v ij değerlerinin, ilgili j kriterdeki en iyi/ideal değerlerden (A + ) Öklid uzaklıkları hesaplanarak; i seçeneğinin ideal çözümden uzaklığı (S i + ) elde edilmektedir. Benzer biçimde, ideal değerler yerine eksi-ideal (A - ) değerlerden uzaklıklar hesaplanarak; i seçeneğinin eksi-ideal çözümden uzaklığı (S i - ) bulunmaktadır.

Adım 5- İdeal çözüme olan göreli yakınlığın hesaplanması: Her bir seçeneğin ideal çözüme olan göreli yakınlığı (G i ), eksi-ideal çözümden uzaklık değerinin (S i ), ideal ve eksi-ideal çözümden uzaklık değerlerinin toplamına (S i + S i + ) oranlanmasıyla (kitabın 30. sayfasındaki Adım 5 altında verilen formülde gösterildiği gibi) hesaplanır.

Burada G i , [0,1] aralığında bir değer alacaktır ve ne kadar büyük ise ilgili seçeneğin o kadar çok tercih edildiği anlamına gelmektedir.

Adım 6- Seçeneklerin sıralanması: Seçenekler ideal çözüme olan göreli yakınlık (G i ) değerleri büyükten küçüğe sıralandığında en çok tercih edilen seçenek(ler) en üst sırada yer alacaktır.

Bir seçenek, ideal çözüme yaklaştıkça ideal çözüme olan göreli yakınlık (G i ) değeri de 1’e yaklaşır. Eğer i. seçenek ideal çözüme eşit ise G i = 1 olur.

Çok Amaçlı Karar Problemlerinin Çözüm Yöntemleri

Çok amaçlı karar probleminin çözümünde hedef programlama, ağırlıklı toplam ve epsilon kısıt amaç birleştirme tekniklerinden yararlanmak mümkündür.

Hedef Programlama

Hedef programlama yaklaşımı, birden fazla amaç fonksiyonu olan problemler için kullanılabilecek çözüm yöntemlerinden birisidir. Yaklaşımın klasik eniyileme çözüm yöntemlerinden temel farkı, amaç fonksiyonlarını eniyilemeye çalışmaması bunun yerine amaçlardan istenmeyen yöndeki sapmaların toplamını enküçüklemesidir. Burada hedef, amaç fonksiyonunun ulaşması istenilen değerdir. Örneğin, ‘aylık toplam kârı enbüyüklemek’ bir amaç iken, ‘toplam aylık kârın en az 130.000 TL olması’ bir hedeftir. Söz konusu hedeflerin herhangi bir önceliği ya da ağırlığı olmayabileceği gibi belli bir önceliğe veya ağırlığa sahip olmaları da mümkündür. Buna bağlı olarak hedef programlama türleri;

  • Ağırlıklı hedef programlama
  • Öncelikli hedef programlama

olmak üzere iki ana başlık altında toplanabilir. Eğer gerçekleştirilmesi istenen hedefler farklı önem derecelerine sahip ise, ‘ağırlıklı hedef programlama’ söz konusudur. Amaç fonksiyonu oluşturulurken, hedeflerden istenmeyen yöndeki sapmalar hedeflerin önem derecelerini temsil edecek ağırlık değerleri (w i ) ile çarpılır.

Bazı hedeflere ulaşmak diğerlerinden daha öncelikli ise, ‘öncelikli hedef programlama’ söz konusudur. Öncelikli hedef programlamada, toplam n adet öncelik seviyesi var ise birinci hedef önceliği P 1 olmak üzere, hedef öncelikleri P 1 >>P 2 >> ...>>P n şeklinde sıralanır. Her bir öncelik seviyesinde birden fazla hedef bulunabilir. Bu durumda, aynı öncelik seviyesine sahip hedef grubunda yer alan hedefler ağırlıklı hedef programlamadaki gibi modellenebilir. Öncelikli hedef programlamada, ilk öncelik seviyesinden başlayarak, sırayla her bir öncelik seviyesi için ayrı bir model çözülür. Her bir aşamada daha büyük önceliğe sahip hedeflerin istenmeyen yöndeki sapma değerlerinin kötüleşmesi, modele kısıtlar eklenerek engellenir.

Hedef programlamada kırılgan kısıtlar ve esnek kısıtlar olmak üzere iki tür kısıt yapısı bulunmaktadır. Kırılgan kısıtlar, kesin olarak sağlanması gereken kısıtlardır. Hedeflerle ilgili olmayan tüm kısıtlar bu gruba dâhildir. Esnek kısıtlar ise, amaç fonksiyonlarının alacağı değeri – ve + yönde sapmalara izin verebilecek şekilde hedefe eşitlenmesi ile oluşturulan kısıtlarıdır. Hedef değerinden – ve + yöndeki sapma miktarları sapma değişkenleri ile temsil edilir. Her bir i hedefi için bir negatif sapma (s i ) ve bir pozitif sapma değişkeni (s i + ) tanımlanır. Sapma değişkenleri negatif değer alamazlar. Negatif sapma değişkeni (s i ), hedefin ne kadar altında kalındığını gösteren değişkendir. Örneğin, toplam aylık kârın en az 130.000 TL olması hedefleniyorken, 110.000 TL olarak gerçekleşmesi durumunda, hedef miktarına ulaşılamadığından, negatif sapma değişkeni değeri 20.000 TL olacaktır. Pozitif sapma değişkeni (s i + ) ise, hedefin ne kadar aşıldığını gösteren değişkendir. Örneğin, hedef 130.00 TL iken toplam aylık kâr 155.000 TL olarak gerçekleşmiş ise, pozitif sapma değişkeninin değeri 155.000-130.000=25.000 TL olacaktır.

Aynı esnek kısıta ait negatif ve pozitif sapma değişkenlerinin her ikisi birden sıfırdan büyük değer alamaz. Bu değişkenlerden bir sıfırdan büyük değer almış ise diğer mutlaka sıfır olur. Eğer tam olarak hedef değerine ulaşılmış ise, her iki sapmada sıfır değerini alır.

Hedefin yapısına bağlı olarak sapma değişkenlerinin pozitif değer alması istenebilir veya istenmeyebilir. Hedef programlama yaklaşımında amaç fonksiyonu hedeflerin istenmeyen yöndeki sapmaları toplamımın enküçüklenmesidir. Üç farklı hedef yapısı söz konusudur;

  • Hedef belli bir değerin üzerine çıkmak ise, hedef kısıtı ? olarak tanımlanır ve s i değişkeninin pozitif değer alması istenmez.
  • Hedef belli bir değerin altında kalmak ise, hedef kısıtı ? olarak tanımlanır. s i + değişkeninin sıfırdan büyük değer alması istenmez.
  • Hedef tam olarak belli bir değere ulaşmak ise, hedef kısıtı eşitlik şeklinde tanımlanır ve ne s i + değişkeninin ne de s i değişkeninin sıfırdan büyük değer alması istenmez.

Farklı öneme sahip hedefler söz konusu olduğunda amaç fonksiyonu; hedeflerin istenmeyen yöndeki sapmalarının hedeflerin önemini temsil eden ağırlıklarla çarpılarak toplanması ile (kitabın 35. sayfasındaki Örnek 5’te gösterildiği gibi) oluşturulur.

Hedeflerin önceliği birbirinden farklı olduğunda ilk öncelik seviyesinden başlayarak, sırayla her bir öncelik seviyesi için ayrı bir model ile (kitabın 35. sayfasındaki Örnek 6 ve 36. Sayfasındaki Örnek 7’de gösterildiği gibi) problem çözülür.

Ağırlıklı Toplam Amaç Birleştirme Yöntemi

Ağırlıklı toplam amaç birleştirme yöntemi, çok amaçlı problemleri tek amaçlı yapıya dönüştürmek için kullanılan en yaygın ve eski amaç birleştirme yöntemlerinden birisidir. Bu yöntemde amaç fonksiyonları, pozitif ağırlıklarla çarpılıp toplanarak tek bir amaç fonksiyonuna dönüştürülürler.

Bu yöntemin önemli avantajlarından ikisi, kullanım kolaylığı ve kullanıcı tercihlerinin modele yansıtılabilmesidir. Ancak tüm Pareto-Eniyi değerlerin türetebilmesi için uygun çözüm alanının ve amaç fonksiyonlarının dışbükey olma şartı vardır. Dolayısıyla ağırlıklı toplam amaç birleştirme yöntemi tamsayılı doğrusal programlama ve doğrusal olmayan programlama problemlerinin çözümünde kullanılabilmekle birlikte tüm etkin çözümlerin türetilmesini garanti edilemez.

Dışbükey küme , herhangi iki noktasını birleştiren doğru parçasının tamamının küme içinde kalabildiği kümelerdir. Doğrusal matematiksel modellerin uygun çözüm alanları dışbükey kümedir.

Doğrusal modellerin tüm amaç ve kısıt fonksiyonları doğrusaldır. Doğrusal fonksiyonlar aynı zamanda hem dışbükey hem de dışbükey fonksiyon olarak kabul edilirler.

Ağırlıklı toplam amaç birleştirme yöntemi, kullanılırken amaçlar birleştirildikten sonra, w 1 +w 2 = 1 olacak şekilde farklı w 1 ve w 2 değerlerinden oluşan bir ağırlık seti belirlenir. Problem bu sette yer alan her bir ağırlık çifti için (kitabın 39. sayfasındaki Örnek 8’de gösterildiği gibi) çözülür. Elde edilen çözümler içerisinden tekrar edilen çözümler ayıklanarak etkin çözümler kümesinin elemanlarından bazıları elde edilir. Ağırlık seti, ne kadar fazla sayıda ağırlık çiftinden oluşursa, tüm etkin çözümleri elde edebilme olasılığı da o kadar artacaktır.

Birleştirilecek amaçların bazıları enküçükleme bazıları enbüyükleme yapısında ise; ağırlıklı toplam amaç birleştirme yönteminin kullanılabilmesi için öncelikle tüm amaçların aynı yapıya dönüştürülmesi gereklidir. Bir amaç fonksiyonunun yönünü değiştirmek gerekiyorsa “-1” ile çarpmak yeterlidir.

Epsilon Kısıt Yöntemi

Epsilon kısıt yönteminde, amaçlardan sadece birisi amaç fonksiyonu olarak ele alınır. Diğerleri ise epsilon (?) değerleri ile sınırlandırılarak kısıta dönüştürülür. p tane amaç fonksiyonundan ( p –1) tanesi aşağıdaki gibi kısıt fonksiyonlarına dönüştürülür. Böylece problem tek amaçlı hale dönüştürülmüş olur.

Epsilon kısıt yöntemi kullanılırken, kısıta dönüştürülmüş amaçların sınırlandırılacağı farklı ? k değerleri seti belirlenir. Problem bu sette yer alan her bir ? grubu için çözülür. Elde edilen çözümler içerisinden tekrar edilen çözümler ayıklanarak etkin çözümler kümesinin elemanlarından bazıları elde edilir. ? k değerleri seti ne kadar fazla sayıda ? grubundan oluşursa, tüm etkin çözümleri elde edebilme olasılığı da o kadar artacaktır.

Epsilon kısıt yöntemi, ağırlıklı toplam amaç birleştirme yönteminden farklı olarak amaçların birleştirilmesi yerine, amaçlardan birisini eniyilerken diğerlerinin kısıtlara eklenmesi mantığına dayanır. Dışbükeylik şartına ihtiyaç duymayan bir yöntemdir. Ancak ? k değerleri setinin belirlenmesi aşaması (kitabın 40. sayfasındaki Örnek 9’da gösterildiği gibi) zahmetlidir.

Çok Amaçlı Karar Problemlerinin LINGO İle Çözümü

Çok amaçlı karar problemlerinin LINGO yazılımı ile çözümü mümkündür.

LINGO

LINGO, Lindo Systems Inc. şirketi tarafından üretilmiş, doğrusal, tamsayılı ve doğrusal olmayan matematiksel modelleri çözebilen, bir eniyileme yazılımı ve modelleme dilidir. ‘www.lindo.com’ adresinden yazılım ile ilgili bilgi edinmek ve ücretsiz olarak deneme sürümünü indirmek mümkündür.

Herhangi bir matematiksel modelin LINGO formatında açık olarak yazımı basit olarak aşağıdaki şekildedir:

MIN( veya MAX) = amaç fonksiyonu;

Kısıt 1 ;

Kısıt 2 ;

..

Kısıt n ;

END

Modelin açık yazımı sırasında uyulması gereken yazım kuralları aşağıda verilmiştir:

  • Genel bir anlayış olarak modelin amaç fonksiyonu ilk satırda, kısıtlar da diğer satırlarda yazılmaktadır. Ancak LINGO’da bu bir zorunluluk değildir.
  • Bütün matematiksel ifadeler birbirinden ‘;’ işareti kullanılarak ayrılmalıdır. Sonuçta LINGO ‘;’ ile ayrılmış ifadeleri algılar.
  • LINGO MAX= ve ya MIN= ile başlayan satırı amaç fonksiyonu satırı olarak, diğer satırları ise kısıt olarak kabul eder. Her kısıtın yeni bir satırdan başlaması önerilir, kısıt sırasının önemi yoktur.
  • Değişken isimleri bir harf (A-Z) ile başlamalı ve en çok 32 karakter uzunluğunda olmalıdır.
  • Büyük ya da küçük harf kullanımları arasında fark yoktur. “TALEP” ve “talep” aynı değişken olarak kabul edilir.
  • Değişken ve parametreler arasında ‘*’ işaretinin olması gerekir. Örnek: ‘2x 1 +3x 2 ’ ifadesi LINGO’da ‘2*x 1 +3*x 2 ’ olarak yazılır.
  • ? ve ? işaretleri LINGO’da <= ve >= olarak ya da < ve > olarak yazılabilir.
  • Ayrıca bir koşul verilmediği sürece, LINGO modeldeki bütün değişkenleri sıfırdan büyük veya eşit reel değişken olarak kabul eder. Farklı özellikteki değişkenler için modele mutlaka ilgili işaret kısıtı eklenmelidir.

LINGO’da işaret kısıtlarını yazmak için kullanılabilecek fonksiyonlar aşağıda verilmiştir:

  • @GIN(değişken-adı) genel tamsayı değişken
  • @BIN(değişken-adı) 0-1 tamsayı değişken
  • @FREE(değişken-adı) her türlü reel değer alabilen değişken
  • @BND(alt sınır, değişken-adı, üst sınır) alt veya üst sınır değeri olan değişken.

Güz Dönemi Ara Sınavı
7 Aralık 2024 Cumartesi
v