Anda di halaman 1dari 4

Mixed-Integer Linear Programming Basics: Solver-Based

Untuk menyelesaikan masalah linear mixed-integer pada matlab kita dapat menggunakan
sintaks intlinprog. Dengan merumuskan masalah sesuai dengan input untuk
intlinprog, sintaks intlinprog yang relevan adalah ;

[x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)

Dimana f merupakan vektor koefisien biaya, intcon merupakan vektor bilangan bulat positif
yang berisi komponen x yang bernilai bilangan bulat (Misalnya, jika Anda ingin
membatasi x(1)dan x(4)menjadi bilangan bulat, setel intcon=1:4; ), A dan b merupakan
matriks ketidaksetaraan linear, Aeq dan beq merupakan persamaan linear dimana Aeq*x =
beq, lb dan ub merupakan batasan untuk nilai x.

Factory, Warehouse, Sales Allocation Model: Solver-Based


Pada subbab ini menunjukkan cara mengatur dan menyelesaikan masalah pemrograman
linear mixed-integer. Dimana permasalahn untuk menemukan tingkat produksi dan distribusi
yang optimal di antara satu set pabrik, gudang, dan outlet penjualan.

Fasilitas Lokasi

Untuk nilai tertentu dari parameter dengan skala N dituliskan sebagai berikut :

 |f N 2| pabrik
 |w N 2| gudang
 |s N 2| outlet penjualan
Fasilitas ini berada di titik grid bilangan bulat terpisah antara 1 dan N di arah x dan y. Agar
fasilitas memiliki lokasi terpisah, maka diperlukan f + w + s ≤ 1.

Produksi dan Distribusi

Terdapat produk P yang dibuat oleh pabrik. Dimana permintaan untuk setiap produk p di
outlet penjualan s adalah d(s, p). Permintaan merupakan kuantitas yang dapat dijual dalam
interval waktu. Salah satu kendala pada model adalah bahwa permintaan terpenuhi, berarti
sistem menghasilkan dan mendistribusikan jumlah yang tepat dalam permintaan.

Ada kendala kapasitas pada setiap pabrik dan masing-masing gudang.

 Produksi produk p di pabrik f kurang dari pcap (f, p).


 Kapasitas gudang w adalah wcap(w).
 Jumlah produk p yang dapat diangkut dari gudang w ke outlet penjualan dalam
interval waktu kurang dari turn(p)*wcap(w), di mana turn(p) adalah tingkat omset
produk p.

Misalkan setiap outlet penjualan menerima persediaannya hanya dari satu gudang. Bagian
dari masalahnya adalah menentukan pemetaan gerai penjualan termurah ke gudang.
Biaya

Biaya pengangkutan produk dari pabrik ke gudang, dan dari gudang ke outlet penjualan,
tergantung pada jarak antara fasilitas, dan pada produk tertentu. Jika dist(a, b) adalah jarak
antara fasilitas a dan b, maka biaya pengiriman produk p antara fasilitas ini adalah jarak
waktu biaya transportasi tcost(p):
dist (a , b)∗tcost ( p)
Biaya pembuatan unit produk p di pabrik f adalah pcost(f, p).

Masalah Pengoptimalan

Diberikan suatu lokasi fasilitas, dengan tuntutan dan kendala kapasitas, untuk menentukan:

• Tingkat produksi setiap produk di setiap pabrik


• Jadwal distribusi untuk produk dari pabrik ke gudang
• Jadwal distribusi untuk produk dari gudang ke outlet penjualan

Jumlah ini harus memastikan bahwa permintaan terpenuhi dan total biaya diminimalkan.
Selain itu, setiap outlet penjualan diharuskan untuk menerima semua produknya dari tepat
satu gudang.

Variabel dan Persamaan untuk Masalah Pengoptimalan

Varibel control yang dapat kita rubah dalam suatu pengoptimalan antara lain:
• x ( p , f , w)=¿ jumlah produk p yang diangkut dari pabrik f ke gudang w
• y (s , w)=¿ variabel biner mengambil nilai 1 ketika outlet penjualan dikaitkan dengan
gudang w
Dengan fungsi tujuan minimalnya adalah

Untuk kendala
Variabel x dan y muncul dalam fungsi tujuan dan batasan secara linear. Karena y dibatasi
untuk nilai bilangan bulat, maka permasalahannya adalah program linear mixed-integer
(MILP).

Traveling Salesman Problem: Solver-Based


Contoh ini menunjukkan cara menggunakan pemrograman bilangan bulat biner untuk
memecahkan masalah penjual perjalanan klasik. Masalah ini untuk menentukan tur tertutup
terpendek (jalur) melalui satu set pemberhentian (kota). Dalam hal ini ada 200
pemberhentian, tetapi kita dapat dengan mudah mengubah variabel n pemberhentian (stop)
untuk mendapatkan ukuran masalah yang berbeda. Pertama kita akan menyelesaikan masalah
awal dan melihat bahwa solusin memiliki subtur. Ini berarti solusi optimal yang ditemukan
tidak memberikan satu jalur berkelanjutan melalui semua titik, tetapi sebaliknya memiliki
beberapa loop yang terputus. Kemudian akan kita menggunakan proses iteratif untuk
menentukan subtur, menambahkan batasan, dan me-rerunning pengoptimalan hingga subtur
dihilangkan.
Formulasi Masalah
Rumuskan masalah penjual keliling untuk pemrograman linear bilangan bulat sebagai
berikut:
• Hasilkan semua perjalanan yang mungkin, yang berarti semua pasangan
pemberhentian yang berbeda.
• Hitung jarak untuk setiap perjalanan.
• Fungsi biaya yang harus diminimalkan adalah jumlah jarak perjalanan untuk setiap
perjalanan dalam tur.
• Variabel keputusan adalah biner, dan terkait dengan setiap perjalanan, di mana 1
mewakili perjalanan yang ada di tur, dan 0 mewakili perjalanan yang tidak ada dalam
tur.
• Untuk memastikan bahwa tur mencakup setiap perhentian, sertakan batasan linear
yang setiap pemberhentian adalah pada dua perjalanan. Ini berarti satu kedatangan
dan satu keberangkatan dari pemberhentian.

Optimal Dispatch of Power Generators: Solver-Based


Contoh ini menunjukkan cara menjadwalkan dua generator listrik berbahan bakar gas secara
optimal, artinya mendapatkan biaya paling sedikit.
Notasi dan Parameter Masalah
Anda dapat merumuskan masalah penjadwalan sebagai masalah pemrograman bilangan bulat
biner. Tentukan indeks i, j, dan k, dan vektor penjadwalan biner y sebagai:
• nPeriods = jumlah periode waktu
• i = periode waktu
• j = indeks generator
• y(i,j,k) = 1 ketika periode i, generator j beroperasi pada tingkat daya k. Generator mati
ketika sum_k y(i,j,k) = 0.
Anda perlu menentukan kapan generator dimulai setelah mati. Misal
• z(i,j) = 1 saat generator j mati pada titik i, tetapi hidup pada titik i + 1. z(i,j) = 0
sebaliknya. Dengan kata lain, z(i,j) = 1 ketika sum_k y(i,j,k) = 0 dan sum_k
y(i+1,j,k)= 1.
Perlu diketahui cara untuk mengatur z secara otomatis berdasarkan pengaturan y. Batasan
linear di bawah ini menangani pengaturan ini. Kita juga memerlukan parameter masalah
untuk biaya, tingkat generasi untuk setiap generator, tingkat konsumsi generator, dan bahan
bakar yang tersedia.

Mixed-Integer Quadratic Programming Portfolio Optimization:


Solver-Based
Problem Outline
Kita dapat mengekspresikan banyak masalah pengoptimalan portofolio sebagai masalah
pemrograman kuadrat. Misal kita memiliki seperangkat aset N dan ingin memilih portofolio,
dengan x(i) menjadi pecahan dari investasi yang berada dalam aset i. Jika diketahui r vektor
dari pengembalian rata-rata setiap aset, dan matriks kovarians Q dari pengembalian, maka
untuk tingkat keengganan risiko λ yang diberikan, untuk memaksimalkan pengembalian di
formulasikan sebagai berikut:
max ( r T x −λ xT Qx )
x
Pemecah quadprog membahas masalah pemrograman kuadrat. Namun, selain masalah
pemrograman kuadrat, kita mungkin ingin membatasi portofolio dalam berbagai cara, seperti:
• Memiliki tidak lebih dari aset M dalam portofolio, di mana M <¿ N .
• Memiliki setidaknya m aset dalam portofolio, di mana 0< m<¿ M .
• Memiliki batasan semikontinuus, yang berarti x (i)=0, atau fmin ≤ x (i)≤ fmax untuk
beberapa fraksi tetap fmin>0 dan fmax ≥ fmin.
Kita tidak dapat menyertakan batasan ini dalam quadprog. Kesulitannya adalah sifat diskrit
dari kendala. Selain itu, pemecah pemrograman linear mixed-integer intlinprog tidak
menangani kendala diskrit, dimana tidak membahas fungsi objektif kuadrat.
Modeling Discrete Constrain
x adalah vektor pecahan alokasi aset, dengan 0 ≤ x(i)≤ 1 untuk setiap i. Untuk memodelkan
jumlah aset dalam portofolio, diperlukan variabel indikator v sedemikian rupa sehingga
v(i)=0 ketikax (i)=0, dan v(i)=1 ketika x (i)>0. Untuk mendapatkan variabel yang
memenuhi pembatasan ini, atur vektor v menjadi variabel biner, dan memberlakukan batasan
linear
v(i)f min ≤ x (i)≤ v (i)f max
Ketidaksetaraan ini sama-sama menegakkan bahwa x (i) dan v ( i ) adalah nol pada saat yang
sama, dan mereka juga menegakkan fmin≤ x (i)≤ fmax saat x (i)>0.
Juga, untuk menegakkan batasan jumlah aset dalam portofolio, memberlakukan batasan
linear
m ≤∑ v (i) ≤ M
i

Objective and Successive Linear Approximations

Anda mungkin juga menyukai