GAMS NOTLAR Yrd. Doç. Dr. Berk Ayvaz.

Slides:



Advertisements
Benzer bir sunumlar
Seramik Dental İmplantlar
Advertisements

BİYOGAZ HAZIRLAYANLAR : HAKAN DEMİRTAŞ
BÖLÜM 5 . KÜTLE BERNOULLI ENERJI DENKLEMİ
HAZIRLAYANLAR AYHAN ÇINLAR YUNUS BAYIR
Yeniliği Benimseyen Kategorilerinin Bütüncül ve Analitik Düşünme Açısından Farklılıkları: Akıllı Telefonlar için Bir İnceleme Prof. Dr. Bahtışen KAVAK,
Doç. Dr. Hatice Bakkaloğlu Ankara Üniversitesi
Newton’un Hareket Yasaları
19. VE 20. YÜZYILDA BİLİM.
Enerji Kaynakları-Bölüm 7
AKIŞKANLAR DİNAMİĞİ BÖLÜM 8 . BORULARDA AKIŞ.
İŞGÜCÜ PİYASASININ ANALİZİ
BRÜLÖR GAZ KONTROL HATTI (GAS TRAİN)
SES DONANIMLARI Ayşegül UFUK Saide TOSYALI
İŞLETİM SİSTEMİ İşletim Sistemi Nedir İşletim Sisteminin Görevleri
Tıbbi ve Aromatik Bitkilerin Hayvansal Üretimde Kullanımı
MUHASEBE YÖNETMELİĞİ KONFERANSI
Bu sitenin konusu kıyamete kadar hiç bitmeyecek
DUYUŞ VE DUYUŞSAL EĞİTİMİN TANIMI
ÇOCUKLARDA BRONŞİOLİT VE PNÖMONİ
Alien hand syndrome following corpus callosum infarction: A case report and review of the literature Department of Neurology and Radiology, Yantai Yuhuangding.
Parallel Dağılmış İşlemci (Parallel Distributed Processing)
TANJANT Q_MATRİS Aleyna ŞEN M. Hamza OYNAK DANIŞMAN : Gökhan KUZUOĞLU.
ADRESLEME YÖNTEMLERİ.
Diksiyon Ödevi Konu:Doğru ve etkili konuşmada
AZE201 ERKEN ÇOCUKLUKTA ÖZEL EĞİTİM (EÇÖE)
ÇUKUROVA ÜNİVERSİTESİ KARATAŞ TURİZM İŞLETMECİLİĞİ VE OTELCİLİK
EĞİTİMDE YENİ YÖNELİMLER
BAĞIMLILIK SÜRECİ Prof Dr Süheyla Ünal.
FACEBOOK KULLANIM DÜZEYİNİN TRAVMA SONRASI STRES BOZUKLUĞU, DEPRESYON VE SOSYODEMOGRAFİK DEĞİŞKENLER İLE İLİŞKİSİ  Psk. Asra Babayiğit.
BİLİŞİM TEKNOLOJİLERİ NEDİR?
PSİKO-SEKSÜEL (RUHSAL) PSİKO-SOSYAL
Sinir Dokusu Biyokimyası
Can, H. (1997). Organizasyon ve Yönetim.
Bölüm 9 OPERASYONEL MÜKEMMELİYETİ VE MÜŞTERİ YAKINLAŞMASINI BAŞARMA: KURUMSAL UYGULAMALAR VIDEO ÖRNEK OLAYLARI Örnek Olay 1: Sinosteel ERP Uygulamalarıyla.
ERGENLİKTE MADDE KULLANIMI
Şeyda GÜL, Fatih YAZICI, Mustafa SÖZBİLİR
MOL HESAPLARINDA KULLANILACAK BAZI KAVRAMLAR:
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK. GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK.
Engellerin farkında mıyız?
CEZA MUHAKEMESİ HUKUKU
DİSİPLİN HUKUKU.
İZMİR.
ACİL YARDIM ve AFET YÖNETİMİ ÖĞRENCİLERİNİN KARAR VERME DÜZEYLERİ
Yazar:ZEYNEP CEREN YEŞİLYURT Danışman: YRD. DOÇ. DR
TEMEL MAKROEKONOMİ SORUNLARI VE POLİTİKA ARAÇLARI
IMPLEMENTATION OF SOME STOCK CONTROL METHODS USED IN BUSINESS LOGISTICS ON DISASTER LOGISTICS: T.R. THE PRIME MINISTRY DISASTER AND EMERGENCY MANAGEMENT.
Mikrodalga Sistemleri EEM 448
Örnekler Programlama Dillerine Giriş
Modülasyon Neden Gereklidir?
A416 Astronomide Sayısal Çözümleme - II
İSTATİSTİK II Hipotez Testleri 1.
4.BÖLÜM ÇAĞDAŞ BÜYÜME MODELLERİ
Ayçiçeği Neden Stratejik Ürün Olmalı?
Aydınlanma Işığın doğası ile ilgili bilgilerin tarihsel süreç içindeki değişimini farkeder. a. Dalga ve tanecik teorisinden bahsedilir,
Final Öncesi.
Sayısal Haberleşme.
ULUSLARARASI FİNANS.
Elektrik Enerjisi Üretimi, Dağılımı ve Depolanması
İÇ ORGANLARIN YAPISI VE İŞLEYİŞİ
DENK KUVVET SİSTEMLERİ
Dil Materyalleri ve Çalışmaları Doç. Dr. Müdriye YILDIZ BIÇAKÇI
Sosyal Bilimler Enstitüsü
Anlamsal Web, Anlamsal Web Dilleri ve Araçları
Hazırlayan; Görkem Baygın Yabancı Dil / M Şubesi 21 Maddede İngiliz Dili Edebiyatı Okumak Ne Demektir?
FURKAN EĞİTİM VAKFI TEFSİR USULÜNE GİRİŞ
BİN AYDAN DAHA HAYIRLI GECE KADİR GECESİ
Tarımsal nüfus ve tarımda istihdam
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
Emir ÖZTÜRK T.Ü. F.B.E. Bilg. Müh. A.B.D. Y.L. Semineri
Sunum transkripti:

GAMS NOTLAR Yrd. Doç. Dr. Berk Ayvaz

GAMS General Algebraic Modeling System GAMS (The General Algebraic Modeling System) matematiksel proglamlama ve optimizasyon için tasarlanan yüksek seviyeli bir dildir. Büyük ve karmaşık Doğrusal, Doğrusal Olmayan, Karma Tamsayılı optimizasyon problemleri modelleyebilmek için kullanılan bir programdır.

Açıklama yazmak için $ONTEXT; - - - - - - - - - - This guide is for a scientist who knows the Russian language. The tutorials supplement the major Tutorials for the users, who know Russian. + + + + + + + + + + $OFFTEXT;

Açıklama yazmak için Açıklama yazmanın diğer yolu ifadenin başına yıldız işaret koymaktır. *

GAMS Temelleri Kümeler Veri Girişi Değişkenler Denklemler Model Çözüm

SETS i plants / Tashkent, Almaty/ j consumers / Tokyo, London, Moscow/; SETS t year /1965, 1966, 1967, 1968, 1969, 1970, ... ... ... 1998, 1999/; Ya da SETS t year /1965*1999/;

SETS m machine /mach1, mach 2, mach 3, mach 4, mach 5,. , SETS m machine /mach1, mach 2, mach 3, mach 4, mach 5, ..., ... ... ... ... ... … mach 24/; Or a different way: SETS m machine / mach 1* mach 24/;

SETS i consumers / Almaty , Tashkent, Fargana /; SETS j consumers / Almaty , Tashkent, Fergana /; İ ve j kümeleri aynı değerleri alıyorsa alias komutu ile i ‘nin elemanları j’ye altarılabilir. SETS k station / Toktogul, Uchkurgan, Charvak, Chardara /; ALIAS(k,j);

Alt küme tanımlama SETS nt nodes /post1*post14, nurek, vahsh, pandj, tmgu, tald, div1, aral_sea, r_1*r_6, total / ns(n) supplies / vahsh, pandj / nr(n) regions / r_1*r_4, aral_sea / nr1(n) regions / r_1*r_6 / nl(n) lakes / nurek, tald, TMGU / rlast(n) last user / aral_sea /

Parametreler SETS i consumers / Almaty, Tashkent, Fergana /; PARAMETERS a(i) orders / Almaty 7350 Tashkent 7250 Fergana 7170 / b(i) supplies / Almaty 7250, Tashkent 7180,Fergana 770 /; PARAMETERS c(i) price / Almaty 5, Tashkent 21.80, Fergana 1.70 /;

Denklemlerde İndeks Sembollerinin Açıkça Kullanımı dz.. tz =E= y('jan‘ ) + y('feb') + y('mar') +y('dec') +y('nov') +y('oct');

Örnek 1 Ürün 1 ve ürün 2 olmak üzere 2 farklı ürün imal eden bir firmanın aşağıdaki doğrusal programlama modelini ele aldığımızı varsayalım. Zmaks = 4x1 + 5 x2 x1 + x2 ≤ 60 (I. Numaralı kısıt) x1 -2 x2 ≤ 40 (II. Numaralı kısıt) x1 - x2 ≥ 0 (III. Numaralı kısıt) x2 ≤20 (IV. Numaralı kısıt) x1 ,x2 ≥ 0 Kaynak: Berna Tektaş-Sivrikaya, Yöneylem Araştırması Gams Uygulama Dersi Notları

İlk olarak modeldeki amaç fonksiyonu ve karar değişkenlerinin tanımlaması gerekir.

Eğer karar değişkenlerimin negatif değer almasını istemiyorsam karar değişkenleri pozitif olarak tanımlanmalıdır.

Eğer karar değişkenlerim sadece 0 ya da 1 değerini alabilirse aşağıdaki şekilde tanımlanmalıdır. Binary variables x1, x2;

İkinci adımda ise modeldeki amaç fonksiyonu ve kısıt denklemlerinin Equations başlığı altında tanımlanmasıdır.

Equations kısmının altına amaç foksiyonu ve denklemler şekildeki gibi yazılır. GAMS’de eşitlik/eşitsizlik operatörleri aşağıdaki gibi yazılır. = =e= ≤  =l= ≥  =g=

Modelimizi GAMS’de tanımlamış olduk Modelimizi GAMS’de tanımlamış olduk. Şimdi modeli çözebilmek için gerekli komutları vermemiz gereklidir. Bunun için öncelikle modelimize bir isim vermeliyiz. Bizim örneğimizin adı “ornek1” olursa aşağıdaki komutla modelimizin oluşturulması sağlanabilir. “/” işareti ile sınırlandırılan alana modele dahil edilmesi istenen denklem ve kısıtlar yazılarak model sınırlandırılabilir. Bu özellik, aynı zamanda her fonksiyonun önce neden tanımlanması gerektiğini açıklamaktadır. Biz modelimizde tüm kısıtları kullanmak istediğimiz için “all” (tümü) komutunu kullanacağız.

Son olarak modeli çözmek için “solve” komutu çalıştırılır. Bu komutun yapısı aşağıda verilen yapıya uygun olarak oluşturulmalıdır. “Solve” komutu Çözülmek istenen modelin adı “using” komutu, bu komut kullanmak istediğimiz yöntemi seçim şansı sunar. Çözüm yöntemi; çözüm yönteminin model yapısına uygun seçilmesi gerekmektedir. GAMS içinde bulunan bazı yöntemler şunlardır. “lp” doğrusal programlama “nlp” doğrusal olmayan programlama “mip” tamsayılı programlama “rmip” genişletilmiş tamsayılı programlama “minlp” tamsayılı, doğrusal olmayan programlama “rminlp” genişletilmiş tamsayılı, doğrusal olmayan programlama “mpec” denge kısıtlı matematiksel modeller “cns” kısıtlanmış nonlinear sistemler 5. Amacınıza göre “minimizing” veya “maximizing” komutu 6. Optimize edilmek değişkenin adı (bu örnekte “z”)

ATK- Beyaz dört müşterisinin taleplerini karşılamak için üç potansiyel fabrikayı değerlendirmektedir. Her hangi bir fabrikayı açarsa firma 200,000TL’lik yatırım yapması gerekmektedir. Bir fabrikada üretilip, bir müşteriye gönderme birim maliyetleri tabloda verilmiştir. Firmanın talepleri en düşük maliyetle karşılaması için gerekli TP modelini kurunuz.

Kümelerin tanımlanması SET kümeadı açıklayıcı yazı(isteğe bağlı) / kümenin_ilk_öğesinin_adı açıklayıcı yazı(isteğe bağlı) kümenin_ikinci_öğesinin_adı açıklayıcı yazı(isteğe bağlı) /;

Kümelerin tanımlanması alias komutu ise bir kümenin elemanlarını farklı bir isimdeki başka bir kümeye kopyalamak için kullanılır

Veri Girişi GAMS çeşitli yöntemlerle veri girişine olanak sağlar. scalar, parametre, tablo Scalar(Sabit) scalar ifadesi sıfır boyutlu bir katsayı tanımlamak için kullanılır. SCALAR ilköğeadı açıklayıcı yazı(isteğe bağlı) /sayısal değer/ ikinciöğeadı açıklayıcı yazı(isteğe bağlı) /sayısal değer/ ;

Parameterler Parametre formatı bir kümenin elemanlarına ilişkin değerler atamak için kullanılır PARAMETER öğeadı(bağlıolduğuküme) açıklayıcı yazı(isteğe bağlı) /kümenin 1. elemanın adı ilgili değer, kümenin 2. elemanın adı ilgili değer,

Tablolar Tablo formatı veri değerleri iki veya daha fazla kümeye dayanan bilgileri girmek için kullanılır

Değişkenler GAMS içindeki bir değişken optimize edilecek modelde veya çözümü aranan denklemlerde üzerinde oynanabilen sayısal bir büyüklük olarak tanımlanır.

Denklemler

Denklemler

Model&Çözüm

ÖRNEK 3 Bu problemde, İstanbul ve Ankara’da bulunan iki üretim merkezinden, Sakarya, Bolu ve Eskişehir’de bulunan üç pazarın gereksinimlerine göre bilgisayar sunucusu gönderilmesi gereklidir. Her bir sunucunun ulaştırma fiyatı gönderim yapılan uzaklığa bağlı olarak km başına 90 TL olarak verilmiştir. Problemin amacı her bir üretim merkezinin kapasitelerini aşmadan her pazarın gereksinimini en düşük maliyetle karşılayacak çözümün bulunmasıdır. Pazarlar Sakarya Bolu Eskişehir Kapasite İstanbul 150 km 250 km 400 km 350 adet Ankara 300 km 200 km 600 adet Talep miktarı 325 adet 300 adet 275 adet

Bu problemde her fabrika ve pazar endeks olarak tanımlanabilir. Sets i fabrikalar /ist, ank/ j pazarlar /sak, bol, esk/; Artık tüm değişkenler bu endekslere bağlı olarak tanımlanacaktır. Parameters K(i) her fabrikanın kapasitesi /ist 350, ank 600/ T(i) her pazarın talebi /sak 325, bol 300, esk 275/; Km başına taşıma maliyeti 90 TL olarak verilmiştir. Bu durumda sabit birim km taşıma maliyeti Scalar m km başına taşıma maliyeti /90/; uij: i fabrikasından j pazarına olan uzaklık olmak üzere çift indisli “uij” değişkenini tanımlamak içinse tablo tanımını kullanmalıyız. Table u(i,j) sak bol esk ist 150 250 400 ank 300 200 150 ; Bu durumda birim taşıma maliyeti aşağıdaki şekilde tanımlanır. Parameter c(i,j) her bir durum için taşıma maliyeti ; c(i,j) = m*u(i,j); olur.

Değişken olarak her fabrikadan her pazara gönderilen sunucu miktarını alabiliriz. Variables x(i,j) z; Positive variables x; Equations maliyet kapasite(i) talep(j); maliyet.. z=e=sum((i,j), x(i,j)*c(i,j)); kapasite(i).. sum(j, x(i,j))=l= K(i); talep(j).. sum(i, x(i,j))=g= T(j); Son olarak modelin çözümü için aşağıda verilen komutları yazmalıyız. Model ornek3 /all/ ; Solve ornek3 using lp minimizing z ; İlgilendiğimiz değişkeni aşağıda verilen komutu kullanarak görüntüleyebiliriz. Display x.l;

ÖRNEK 3.

Veri Alma (Küme&Tablo) Problemin çözümü için gerekli tüm verileri GAMS’in içine yazmak yerine, bu verileri saklayan başka bir dosya(excel, notepad) kullanılabilir. Bu sayade hem kod basitleşir hem de var olan verileri tekrar yazmaya gerek kalmaz Importing sets&table from an excel file

Şartlı ifadeler ve alt kümeler GAMS de şart ifadesi $ ile gösterilir. Eğer diye okunur.

Eğer y 2.5 den büyükse x=2 olur.

Sameas ifadesi Bir işlemi yalnızca, bir küme metni tam olarak başka bir küme metniyle eşleştirilirse gerçekleştir. $ komutu i ve j aynı değilse toplamı çalıştırmayı söyler.

Sameas ifadesi

Subset 𝑥= 𝑖=1 20 𝑧 𝑖

Diğer koşul ifadeleri İf if (x ne 0, DATA(i)=12 ; ); While while(x<10, x=x+0.01; ); Repeat repeat( x=x+0.01; until x>=10) ; Other Conditional Alternatives 17

Ek programlama operatörleri 1) LOOP - cycle operator. 2) IF-ELSE - conditional operator. 3) FOR - cycle operator. 4) WHILE - conditional cycle operator.

LOOP The LOOP operator is very frequently used with the PUT operator for printing out and displaying the information on the screen. The LOOP operator has the following syntax: LOOP (control_ area [$(condition)] operator {; operator});

LOOP Consider the following hypothetical case of the integration model: SET x / d15*d25 / PARAMETER nachalo(x) / d15 423 / differ(x) / d15 58.4, d16 47.7, d17 68.8 d18 46.5, d19 57.9, d20 46.9 d21 64.5, d22 65.4, d23 34.7 d24 76.4, d25 34.4/; The LOOP operator can be used for computing increasing sums: LOOP(x, nachalo(x+1) = nachalo(x) + differ(x)); Only one operator and one control set - x is presented here within the cycle operation area nachalo(x+1) = nachalo(x) + differ(x)

IF-ELSE Operator The IF-ELSE operator is useful for transferring from one operator to another. In some cases, it can be written down as a set of dollar conditions. The IF operator can be used for making the GAMS code more understandable. The optional part of "ELSE" allows formulating the traditional construction "IF-THEN-ELSE". The following syntax is for the "IF-THEN-ELSE" operator: if (condition, operators; {condition ELSEIF, operators} [operators ELSE;] );

IF (f <= 0, p(i) = -1; q(j) = -1; ELSEIF ((f > 0) AND (f < 1)), p(i) = p(i)**2; q(j) = q(j)**2; ELSE p(i) = p(i)**3; q(j) = q(j)**3; );

WHILE Operator WHILE operator is used for cycling the process of calculation before the execution of some logical condition. The syntax of the WHILE operator is the following: while (operator, operators; );

FOR Operator Operator FOR is used for cycling the bloc of operators. It has the following syntax: FOR (i = initial value, TO finite value [BY step] operators; );

SCALAR i; SCALAR globmin; globmin = inf; OPTION BRATIO = 1; FOR (i = 1 TO 1000, x.l(j) = UNIFORM(0,1); SOLVE ml USING NLP MINIMIZING obj ; IF (obj.l LE globmin, globmin = obj.L ; globinit(j) = x.L(j); );