GAMS Kullanım Notları

Benzer belgeler
EMM3208 Optimizasyon Teknikleri

GAMS Kurulumu ve Temel Özellikleri GAMS ile Modellemeye Giriş, Örnek Problemler

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

EMM3208 Optimizasyon Teknikleri

EMM3208 Optimizasyon Teknikleri

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ YÖNEYLEM ARAŞTIRMASI DERSİ. GAMS REHBERİ (Kısaltılmış)

doğrusal programlama DOĞRUSAL PROGRAMLAMA (GENEL)

Lineer Programlama. Doğrusal terimi, hem amaç hem de kısıtları temsil eden matematiksel fonksiyonların doğrusal olduğunu gösterir.

YÖNEYLEM ARAŞTIRMASI - I

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

EMM3208 Optimizasyon Teknikleri

Doğrusal Programlamada Grafik Çözüm

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

7. BÖLÜM İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI .= Genel: Vektörler bölümünde vektörel iç çarpım;

DOĞRUSAL OLMAYAN PROGRAMLAMA (NLP)

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

Doğrusal Programlama. Prof. Dr. Ferit Kemal Sönmez

Başlangıç Temel Programının Bilinmemesi Durumu

DOĞRUSAL PROGRAMLAMANIN ÖZEL TÜRLERİ

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

TAMSAYILI PROGRAMLAMA

11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler

ACD TEZGAH İZLEME YAZILIMI

Şekil 2.23: Window menüsü ve elemanları

4.1. Gölge Fiyat Kavramı

BİLG Dr. Mustafa T. Babagil 1

SİSTEM MÜHENDİSLİĞİ DOĞRUSAL PROGRAMLAMA ÖRNEKLER (MODEL KURMA, ÇÖZÜM, YORUM)

EM302 Yöneylem Araştırması 2 Doğrusal Olmayan Programlamaya Giriş. Dr. Özgür Kabak

ALTUNBİLEKLER Marketler Zinciri. ARÇELİK A.Ş. Bulaşık Makinesi İşletmesi. Ece Pınar KOCATEPE. AKSAPARK Kent Mobilyaları San. Ve Tic. A.Ş.

Simpleks Yönteminde Kullanılan İlave Değişkenler (Eşitliğin yönüne göre):

YÖNEYLEM ARAŞTIRMASI - III

KISITLI OPTİMİZASYON

18 Haziran Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Muhasebe

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

Göstericiler (Pointers)

Ders 10. Prof.Dr.Haydar Eş Prof.Dr.Timur Karaçay. Simpleks Yöntemine Giriş Alıştırmalar 10

DOĞRUSAL PROGRAMLAMADA DUALİTE (DUALITY)

Modelleme bir sanattan çok bir Bilim olarak tanımlanabilir. Bir model kurucu için en önemli karar model seçiminde ilişkileri belirlemektir.

İbrahim Küçükkoç Arş. Gör.

EM302 Yöneylem Araştırması 2 TP Modelleme. Dr. Özgür Kabak

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

KONU 3: DOĞRUSAL PROGRAMLAMA PROBLEMLERİ İLE İLGİLİ ÖRNEKLER

YÖNEYLEM ARAŞTIRMASI - III

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

ĐST 349 Doğrusal Programlama ARA SINAV I 15 Kasım 2006

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İleri Yöneylem Araştırması Uygulamaları Tam Sayılı Programlama

YÖNEYLEM ARAŞTIRMASI - I

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ YÖNEYLEM ARAŞTIRMASI DERSİ LINDO

C#(Sharp) Programlama Dili

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

YÖNEYLEM ARAŞTIRMASI - II

a2 b3 cij: birim başına ulaşım maliyeti xij: taşıma miktarı

Matematiksel modellerin elemanları

HESSİEN MATRİS QUADRATİK FORM MUTLAK ve BÖLGESEL MAKS-MİN NOKTALAR

Karar değişkenlere ilişkin fonksiyonların ve bu fonksiyonlara ilişkin sınırlamaların tanımlanması

BÖLÜM 17 RİJİT ROTOR

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Data View ve Variable View

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

SİSTEM MÜHENDİSLİĞİ DOĞRUSAL PROGRAMLAMA MODEL KURMA ÖRNEKLERİ

8.333 İstatistiksel Mekanik I: Parçacıkların İstatistiksel Mekaniği

BÖLÜM 1: MADDESEL NOKTANIN KİNEMATİĞİ

Akış Kontrol Mekanizmaları

Optimizasyon İçin Kök(Generic) Model (Doğrusal-Olmayan Programlama Modeli)

DOĞRUSAL PROGRAMLAMA TEKNİĞİ İLE KÖMÜR DAĞITIM OPTİMİZASYONU COAL DISTRIBUTION OPTIMIZATION BY UTILIZING LINEAR PROGRAMMING

GEOMETRİK PROGRAMLAMADA GEOMETRİK-HARMONİK ORTALAMA EŞİTSİZLİGİNİN ROLÜ VE FONKSİYONEL

2. LOJİSTİK ŞEBEKESİ TASARIMI

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

ABAQUS Programına Giriş Kullanılacak Sürümler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

AutoCAD Alternatifi Çizim Programı

Lambda İfadeleri (Lambda Expressions)

Bir Doğrusal Programlama Modelinin Genel Yapısı

BİL-142 Bilgisayar Programlama II

Temelleri. Doç.Dr.Ali Argun Karacabey

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

YÖNEYLEM ARAŞTIRMALARI 1

T.C. DOKUZ EYLÜL ÜNİVERSİTESİ SOSYAL BİLİMLER ENSTİTÜSÜ EKONOMETRİ ANABİLİM DALI EKONOMETRİ DOKTORA PROGRAMI

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

BİLGİSAYAR PROGRAMLAMA DERSİ

YÖNEYLEM ARAŞTIRMASI - III

Öğr. Gör. Serkan AKSU 1

Hızlı ve Güvenli Vale Hizmeti

Saha İş Gücü Yönetim Sistemi ve Güzergah Optimizasyonu

Genel Graf Üzerinde Mutlak 1-merkez

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Dijital Eğitim Portalı Kullanıcı el kitabı. digikampus.com. digikampus.com tüm hakları saklıdır.

Özyineleme (Recursion)

DENİZ HARP OKULU ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

Transkript:

GAMS Kullanım Notları Dilay Çelebi İstanbul Teknik Üniversitesi 1. Giriş Aşağıdaki DP problemini ele aldığımızı varsayalım. Z min = 4x 1 + 2x 2 + 33x 3 (1) x 1 4x 2 + x 3 12 (2) 9x 1 + 6x 2 = 15 (3) 5x 1 + 9x 2 3 (4) x 1, x 2, x 3 0 (5) Bu modeli GAMS ile modelleyebilmek için önce değişkenleimizi tanımlamalıyız. x1 x2 x3 Tanımladığımız bu değişkenlerin pozitif olması gereklidir. Positive variables x1, x2, x3; Daha sonra amaç fonksiyonunu tanımlarız. Gams kullanırken dikkat etmeniz gereken husus kullanacağınız tüm denklem ve eşitsizlikleri önceden tanımlamanız gerektiğidir. amac kisit1 kisit2 kisit3; Tanımladıktan sonra amaç fonksionumuzu ve eşitsizliklerimizi yazmaya başlayabiliriz. 1

amac.. z=e=4*x1+2*x2+33*x3; kisit1.. x1-4*x2+x3=l= 12; kisit2.. 9*x1+6*x2=e=15; kisit3.. -5*x1+9*x2=g=3; Burada kullanılan ilişkisel operatörlerin anlamları aşağıda verilmiştir. =e= : Eşit =l= : Küçük Eşit =g= : Büyük Eşit Son olarak modelin çözümü için gerekli komutların verilmesi gereklidir. Öncelikle modele bir isim verilmesi gereklidir. Bizim örneğimizin adı ornek olarak alınırsa aşağıdaki komutla modelimizin oluşturulması sağlanabilir. Model ornek /all/ ; Bu komut gereksiz gibi gözükse de aslında ileri seviyede, bir Gams modeli üstünden bir çok model çalıştırmak isteyen kullanıcılar için çok kullanışlıdır. / 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 aşağıda gösterilen komut çalıştırılır. Solve ornek using lp minimizing z ; Bu komutun yapısı aşağıda verilen yapıya uygun olarak oluşturulmalıdır. 1. Solve komutu 2. Çözülmek istenen modelin adı 3. using komutu, bu komut kullanmak istediğiniz yöntemi seçim şansı sunar. 4. Çözüm yöntemi. Çözüm yönteminin model yapısına uygun seçilmesi gerekmektedir. Gams içinde bulunan bazı yöntemler aşağıda listelenmiştir. 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 2

5. Amacınıza göre minimizing veya maximizing komutu 6. Optimize edilmek istenen değişkenin adı Bu komutlarla tanımlanan modelin son hali aşağıda gösterildiği gibi olacaktır. x1 x2 x3 Positive variables x1, x2, x3; amac kisit1 kisit2 kisit3; amac.. z=e=4*x1+2*x2+33*x3; kisit1.. x1-4*x2+x3=l= 12; kisit2.. 9*x1+6*x2=e=15; kisit3.. -5*x1+9*x2=g=3; Model ornek /all/ ; Solve ornek using lp minimizing z ; Modeli bu şekilde yazmak doğru olmasına rağmen, bu yaklaşım kullanıldığında büyük kapsamlı modellerin modellenmesinde problemler çıkabilir. Bu sebeple yazım üstünde bazı değişiklikler yapılabilir. Endeks Tanımlanması: Modelde verilen üç ayrı değişkenin ayrı ayrı tanımlanmasına gerek yoktur. Bunun yerine bir x değişkeni tanımlanıp, üç ayrı endeks atanabilir. Gams modellerinde endeksler set komutu ile tanımlanır. Sets i /1, 2, 3/ Bu komut aynı sonucu verecek şekilde aşağıda gösterildiği şekilde de yazılabilir: Sets i /1*3/ Endeks tanımlamalarını göstermek için aşağıda gösterilen ulaştırma problemini ele alabiliriz. Bu problemde, İstanbul ve Ankara da bulunan iki üretim merkezinden, Sakarya, Bolu ve Eskişehir de bulunan üç pazarın gereksinimlerine göre bilgisayar sunucusu 3

Sakarya Bolu Eskişehir Kapasite İstanbul 150 km 250 km 400 km 350 adet Ankara 300 km 200 km 150 km 600 adet Talep Miktarı 325 adet 300 adet 275 adet gönderilmesi gereklidir. Her bir sunucunun ulaştırma fiyatı göderim 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. Bu problemde her fabrikalar ve pazarlar endeks olarak tanımlanabilir. Sets i j fabrikalar /ist, ank/ pazarlar /sak, bol, esk/; Artık tüm değiştirgeler 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/; Uzaklıkları tanımlamak için ise tablo tanımını kullanmalıyız. Table u(i,j) sak bol esk ist 150 250 400 ank 300 200 150 ; Değişken olarak her fabrikadan her pazara gönderilen sunucu miktarını alabiliriz. x(i,j) Positive variables x; maliyet kapasite(i) talep(j); maliyet.. kapasite(i).. talep(j).. z=e=90*sum((i,j), x(i,j)*c(i,j)); sum(j, x(i,j)) =l= K(i); sum(i, x(i,j)) =g= T(j); Son olarak modelin çözümü için aşağıda verilen komutları yazmalıyız. Model ornek2 /all/ ; Solve ornek2 using lp minimizing z ; 4

İlgilendiğimiz değişkeni aşağıda verilen komutu kullanarak görüntüleyebiliriz. Display x.l; 5