PENERAPAN METODE BARVINOK RATIONAL
FUNCTIONS PADA OPTIMASI INTEGER
PROGRAMMING
(Kata kunci: Integer Programming, Barvinok rational function)
PRESENTASI TUGAS AKHIR – CI 1599
Penyusun Tugas Akhir :
Riska Kurniawati
(NRP : 5107.100.508)
Dosen Pembimbing
:Rully Soelaiman, S.Kom, M.Kom.
• Optimasi sering kali dibutuhkan dalam proses pengambilan keputusan
• Bentuk optimasi dapat berupa meminimumkan biaya yang dikeluarkan atau juga dapat berupa memaksimumkan pendapatan yang ingin diperoleh.
• Permasalahan yang sering muncul, jika hasil dari proses optimasi berupa bilangan pecahan.
• Digunakan metode
integer programming
untuk menyelesaikan masalah tersebut.• Metode
integer programing
yang sudah ada, kurang baik dalam hal efisiensi waktu jika masalah yang dipecahkan terlalu besar karena akan membutukan kompleksitas waktu yang lama.• Jurnal yang ditulis oleh J.A De Loera, D.Haws, R. Hemmecke, P. Huggins, dan R. Yoshida memberikan alternatif metode penyelesaian permasalahan
integer programming
menggunakan metodeBarvinok Rational Functions
• Pada Tugas akhir ini, metode
Barvinok Rational Functions
diharapkan mampu untuk menyelesaikan permasalahan
integer
programming
dengan lebih cepat dan efisien dalam penggunaanmemori.
Tujuan dari pembuatan tugas akhir ini adalah :
•
Memberikan kemudahan dalam menyelesaikan kasusinteger
programming
.•
Menganalisa algoritmabinary search
yang digunakan dalam metodeBarvinok Rational Functions
untuk menentukan efisiensi algoritma tersebut dalam menyelesaikan kasusinteger programming.
•
Menentukan nilai optimal suatu kasusinteger programming
menggunakan algoritma
binary search
dari metodeBarvinok
Rational Functions
•
Membandingkan nilai optimal dari permasalahan integer programming menggunakan program Latte v1.2 dengan Solver IP yang sudah umum• Menentukan tahapan apa saja yang harus dilakukan untuk mendapatkan nilai optimal dalam menyelesaikan suatu kasus
integer programming
menggunakan metodeBarvinok
Rational Functions.
• Menentukan bagaimana jalannya algoritma
binary search
dari metodeBarvinok Rational Functions
dalam menyelesaikan kasusinteger programming.
Metode
barvinok rational functions
hanya digunakan untuk menyelesaikan kasusinteger programming
.Hanya algoritma
Binary search
yang diterapkan dan dianalisa untuk mendapatkan nilai optimal dalam suatu kasusinteger
programming
.Penyelesaian permasalahan
integer programming
menggunakan algoritma
binary search
dari metodeBarvinok
Rational Functions
dilakukan dengan perhitungan secaramanual.
Perangkat Lunak yang digunakan untuk menyelesaikan kasus
integer programming
berdasarkan metodeBarvinok Rational
Functions
yaitu program Latte v1.2 yang dijalankanmenggunakan sistem operasi Linux Red Hat.
Untuk solver IP digunakan Program TORA dengan metode
Branch and Bound
.• Integer Programming
• Metode Branch and Bound • Teori Fungsi Polynomial • Lattice Point
• Polyhedra
• Generating Function • Rational Function
• Metode Barvinok Rational Function • Monomial Substitution
• Algoritma Binary Search
Pada bagian perancangan ini meliputi dua
bagian, yaitu:
•
Perancangan Data :
Data Masukan
Data Keluaran
•
Perancangan Proses :
Flowchart Keseluruhan Sistem
Skenario uji coba pada tugas akhir ini yaitu :
Skenario uji coba kebenaran hasil dari program Latte v1.2
yang dibandingkan dengan program TORA
Skenario uji coba kinerja dari program Latte v1.2
dibandingkan dengan program TORA untuk menguji tingkat efisiensi waktu pada saat komputasi
.
•
Data yang digunakan :
•
Data taaa1
•
Data taaa2
•
Data cuww1
•
Data cuww2
•
Data cuww3
• Berdasarkan hasil uji coba yang dilakukan pada skenario uji coba menggunakan beberapa variabel, maka dapat di evaluasi bahwa :
Program Latte v1.2 yang menerapkan algoritma binary search dari metode barvinok rational function mampu menyelesaikan permasalahan integer dengan efektif dan efisien.
Program Latte v1.2 yang menerapkan algoritma binary search dari metode barvinok rational function mempunyai waktu eksekusi program yang lebih cepat dibandingkan dengan waktu eksekusi program TORA dengan menggunakan metode branch and bound
Program Latte v1.2 yang menerapkan algoritma binary search dari metode barvinok rational function mempunyain jumlah Iterasi yang lebih sedikit dibandingkan dengan iterasi pada program TORA
• Tabel hasil evaluasi
Berdasarkan hasil uji coba yang telah dilakukan, maka dapat disimpulkan bahwa :
• Program Latte v1.2 yang menerapkan metode barvinok rational functions
mampu memberikan kemudahan dalam menyelesaikan kasus integer programming serta mempunyai waktu komputasi yang lebih cepat dan lebih efisien dalam penggunaan memori .
• Algoritma binary search dalam metode barvinok rational functions, merupakan algoritma yang efektif dalam menyelesaikan kasus integer programming dibandingkan dengan metode branch and bound yang digunakan dalam TORA.
• Penerapan metode barvinok rational functions ini mampu menghasilkan
one feasible integer solution untuk masing – masing data uji coba sehingga memudahkan pengguna dalam pengambilan keputusan
• Program Latte v1.2 mampu menghasilkan nilai optimal yang sama dari suatu permasalahan integer programming dengan solver IP lainnya yang sudah umum.
[1] A.I. Barvinok, J. Pommersheim, An algorithmic theoryof lattice points in polyhedra, in: New Perspectives in Algebraic Combinatorics (Berkeley, CA, 1996–1997), Mathematical Science and Research Institute Publications, vol. 38, Cambridge University Press, Cambridge, 1999, pp. 91–147
[2] A.I Barvinok, Lattice Points, Polyhedra, and Complexity, IAS/Park City Mathematics Series Volume , 2004
[3] A.I. Barvinok, Polynomial time algorithm for counting integral points in polyhedra when the dimension is fixed, Math. Oper. Res. 19 (1994) 769–
779.
[4] J.A De Loera, D.Haws, R. Hemmecke, P. Huggins, R. Yoshida, A computational study of integer programming algorithms based on Barvinok rational functions, Discrete Optimization 2 (2005) 135 – 144
[5] J.A. De Loera, R. Hemmecke, J. Tauzer, R.Yoshida, Effective lattice point counting in rational convex polytopes, J. Symbolic Comput. 38 (2004) 1273–1302.
[6] J.A. De Loera, D. Haws, R. Hemmecke, P. Huggins, J. Tauzer, R.Yoshida, A User’s Guide for LattE v1.1, 2003, Program package LattE is available at http://www.math.ucdavis.edu/~latte/
[7] M. F. Muthohar, Penerapan Algoritma Branch and bound pada Masalah
Integer Knapsack , ITB, 2008
[8] R. Maharesi, Perbandingan Antara Pendekatan Branch and Bound dan
Pemrograman Linier: Dengan Sebuah Contoh Kasus Optimasi,
Universitas Gunadarma, 2002.
[9] Taha, Hamdi A. 1982. Operation Research : An Introduction, Eight Edition, Macmillan Publishing Co.Inc. .New York
[10] …..2007, Barvinok, <URL : http://freshmeat.net/ projects/ barvinok/>
[11] ...2007, Bilangan Bulat <URL : http://id.wikipedia.org/ wiki/Bilangan_bulat>
[12] ...2007, Integer <URL : http://id.wikipedia.org/wiki/ Integer_(ilmu_komputer) >
[13] ...2009, Laurent Polynomial <URL : http://en. wikipedia.org/wiki/Laurent_series>
•
Integer programming yang biasa disebut juga pemrograman integer sering kali dibutuhkan ketika keputusan harus dilakukan dalam bentuk bilangan bulat•
Model matematis dari pemrograman bulat sebenarnya sama dengan modellinier programming
, dengan tambahan batasan bahwa variabelnya harus bilangan bulat•
Bentuk :Maximize
c.x
subject to :
Ax ≤ b
x ≥ 0 dan non-negative
•
Dalam ilmu komputer, istilah "Integer
" digunakan untuk merujuk kepada tipe data apapun yang merepresentasikan bilangan bulat, atau beberapa bagian dari bilangan bulat. Disebut juga sebagaiintegral data type
.•
Tipe data integral terbagi menjadi dua kategori, baik itu bertanda (signed
) ataupun tidak bertanda (unsigned
). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan bulat positifBilangan bulat terdiri dari bilangan cacah (0, 1, 2, ...) dan negatifnya (-1, -2, -3, ...; -0 adalah sama dengan 0 dan tidak dimasukkan lagi secara terpisah). Bilangan bulat dapat dituliskan tanpa komponen desimal atau pecahan. Himpunan semua bilangan bulat dalam matematika dilambangkan dengan
Z (atau ), berasal dari
Zahlen
(bahasa jerman untuk "bilangan")• Metode branch and bound diusulkan pertama kali oleh A.H.Land dan A.G.Doig pada tahun 1960.
• Metode branch and bound adalah sebuah metode pencarian di dalam ruang solusi secara sistematis. Ruang solusi pada algoritma branch and bound diorganisasikan ke dalam pohon ruang status. Ruang status pada pohon tersebut digunakan untuk menyimpan berbagai kemungkinan solusi yang kemudian diolah lebih lanjut untuk mendapatkan solusi optimal
• Tools : program TORA. Solusi yang diperoleh dengan program ini mempunyai kekurangan, karena tidak menyediakan pilihan yang dapat memberikan alternatif solusi optimal.
• Algoritma branch and bound ini merupakan algoritma yang cukup efektif dalam menentukan solusi optimal, namun kurang baik dalam hal efisiensi waktu jika masalah yang dipecahkan terlalu besar karena akan
Metode Branch and Bound
•
Monomial
merupakan suatu fungsi yang terdiri dari term tunggal, misalnyacxn
, dimanac
merupakan konstanta,x
merupakan variabel, dan
n
bernilai nol atau positif integer. Sedangakanpolynomial
bisa juga diartikan sebagai suatu fungsi yang mengandung operasi baik penjumlahan ataupun perkalian dari sejumlahmonomial
term yang terbatas (finite
).•
Bentuk fungsipolynomial
pada umumnya :•
Laurent PolynomialTeori Fungsi Polynomial
0 0 1 2 2 1 1
...
)
(
x
a
x
a
x
a
x
a
x
a
x
f
=
n n+
n− n−+
+
+
+
•
Finite field
atau bisa disebutGalois field
adalahfield
yang terdiri dari elemen – elemen yang nilainya terbatas. Sedangkan field sendiri adalah abstraksi sistem bilangan seperti bilangan rasional Q, bilangan real R, dan bilangan kompleks C, beserta sifat – sifat pentingnya. Jika suatufield
terdiri dari himpunan F yang terbatas anggotanya, makafield
tersebut dinamakanfinite
field
•
BentukPolynomial
dapat terdiri lebih dari satu variabel(
multivariate
). Salah satu bentukpolynomial
yang terdiri lebihdari satu variabel yaitu
Laurent Polynomial
. Bentuk dariLaurent
Polynomial
ini sama seperi bentukpolynomial
pada umumnyatetapi pada bentuk
Laurent Polynomial
ini setiap term dimungkinkan untuk mempunyainegative degree
(derajat eksponen yang bernilai negatif).•
Bentuk fungsilaurent polynomial
pada umumnya :Laurent Polynomial
∑
∈
=
n n n nx
a
R
a
x
f
(
)
,
•
Lattice Points
merupakan suatu kumpulan (set) titik-titik integer yang berada dalam suaturegion
yang terbatas (bounded
polyhedron
), baik yang berada tepat di batasregion
maupunyang berada didalam
region
•
Lattice point
dapat digunakan untuk menentukan bentuk daripolyhedron
, apakahpolyhedron
tersebutbounded
atauunbounded
.Lattice point
dapat digunakan untuk menentukantitik yang paling optimal dalam
polyhedron
yangbounded
. Jikalattice point
dalam suatupolyhedron
terus bertambah, berartipolyhedron
tersebutunbounded
dan tidak dapat dicari titik yangpaling optimal dari
polyhedron
tersebut•
Polyhedra
merupakan representasi geometris dari sistem persamaan baik linier maupun tidak linier.Polyhedra
dapat berupa suatu bidang . Perpotongan (intersection)
dari beberapapolyhedra
akan membentuk suatupolyhedron).
•
Bounded Polyhedron
biasanya disebut juga sebagaiPolytope
.Convex rational polytope
merupakanrational
polyhedron
yang memiliki batasan yangconvex. Polyhedron
yang
bounded
akanconvergen
terhadap semua nilai.•
Polytope
biasanya disebut juga dengan sebuahcone
•
Pemecahan (decompose
) sebuahcone
menghasilkanunimodular cone
yang lebih sederhana•
Generating function
merupakan suatu proses untuk mendapatkan suatu bentuk persamaan yang tidak dipengaruhi oleh faktor rekursifnya•
Bentuk umum darigenerating function
:generating function
digunakan
untuk
proses
pemecahan
cone
menjadi beberapa
unimodular cone
yang sederhana , proses ini biasanya disebut sebagai
proses
decompose cone
.
Generating Function
∑
∈=
d z m mx
x
P
f
(
,
)
(1)•
Rational function
merupakan suatu fungsi yang dituliskan berdasarkanratio
dari 2 fungsipolynomial
, contoh , dimana P dan Q merupakan fungsipolynomial
.•
Rational function
merupakan salah satu bentuk expansi darigenerating function
, dimana semua variabel dalam persamaantersebut berupa bilangan integer. Jika inputan yang digunakan dalam persamaan
rational function
tersebut berupalattice point
, maka persamaan tersebut disebutrational polyhedron
•
Bentuk umum dari Rational function :
Rational Function
( )
(
) (
)
∑
• Metode
Barvinok rational functions
pertama kali diperkenalkan oleh A.I Barvinok pada tahun 1993. MetodeBarvinok rational
functions
ini merupakan suatu metode baru yang ditawarkanuntuk memperbaiki dan menyempurnakan penyelesaian kasus
integer programming
.•
Tujuan dari metodeBarvinok rational functions
ini adalah untuk menemukan solusi optimal dariMaximize
c.x
subject to :
Ax ≤ b
x ≥ 0 non-negative integer
•
Input data berupa mxd integral matrix A, dimana m merupakan•
Bentuk umum dariBarvinok Rational Functions
:•
Dimana:I
=polynomial
size indexing setEi
= elemen dari {1,-1}, nilai plus atau minus Ei bergantung dari penambahan atau pengurangan cone.zui
=Lattice point
yang mengandung titik-titik integer, dapatberupa vertice (puncak dari
unimodular cone
)zvij
=generator
daricone
P (berupa vektorrays
daricone
P)∑
Π
∈ =−
=
I i v d j u i ij iz
z
E
z
P
f
)
1
(
)
;
(
1 (3)•
Persamaan (3) merupakan bentuk darirational function
dimana, dalam bentuk fungsirational function
tersebut selalu ada komponen pembilang dan penyebut, yaitu :•
Denominator
(penyebut) dari fungsi diatas berupa hasil kalibinomial dari , dimana
vij
merupakangenerator
daricone Pi
(
ray
dari conePi
). Dan bentuk dari penyebut ini berupapolynomial
.•
Numerator
(pembilang) dari fungsi diatas berupasingle
•
Dari metodebarvinok rational functions f(P,z)
suatupolytope P
, jumlah darilattice point
di dalamP
menjadi terbatas ketika vektor (z1...zd
) mendekati nilai (1,....,1). Untuk mengatasi hal tersebut, substitusi vektor tidak dapat dilakukan dengan mudah. Oleh karenanya dilakukangeneral monomial substitution
•
Jika diberikan suatu cost vectorc
elemenZd
, dan diterapkann substitusi untukzk
=tck
, maka persamaan 2.8 bentukrational
function
nya dalam t adalah :Monomial Substitution
∑
Π
∈ =−
=
I i v c k j u c i ij it
t
E
t
P
f
)
1
(
)
,
(
. 1 . (4)Algoritma :
Input : A Zm×d, b Zm, c Zd
Output : Nilai Optimal dari M = maximize[c . x : Ax ≤ b, x ≥ 0, x Zd]
1. Selesaikan masalah Integer Programming dengan menggunakan metode linier programming relaxation dimana M = [max { c . x : Ax ≤ b, x ≥ 0}] dan m = [min{ c . x : Ax ≤ b, x ≥ 0}] . Dengan demikian, [M,m] merupakan initial range untuk algoritma binary search ini
2. Algoritma:
While M > m do
new := [M+m/2]
Using Barvinok algorithm compute qnew = | P ∩ {x: c.x ≥ new}∩ Zd|
If qnew > 0 then set m = new
Else M = new -1
• Data masukan yang digunakan dalam proses manual metode barvinok rational functions ini berupa persamaan integer programming berupa : Maximize c.x
subject to : Ax ≤ b x ≥ 0 x Zd
Data masukan yang digunakan dalam program Latte v1.2 merupakan persamaan integer sama halnya seperti yang digunakan dalam proses manual, dengan bentuk matriks:
dimana: - m = jumlah constrains - d = jumlah variabel
Data Masukan
⎥
⎦
⎤
⎢
⎣
⎡
+
A
1
b
d
m
ContohData taaa1
•
Manual : Persamaan Integer : Maximize z = 5x1 + 4x2 Subject to : x1 + x2 ≤ 5 10x1 + 6x2 ≤ 45 x1,x2 >= 0Contoh Data Masukan
•
Latte v1.2 : taaa1 2 3 5 -1 -1 45 -10 -6 linearity 1 1 nonnegative 2 1 2 taaa1.cost 1 2 5 4TABEL DATA KELUARAN
• Data keluaran yang dihasilkan dari proses manual berupa nilai optimal dari persamaan integer yang ada.
• Data keluaran program Latte v1.2 ini merupakan hasil dari
penyelesaian persamaan
integer programming dengan menggunakan metode Barvinok Rational Functions.
• Tabel Data Keluaran, dapat
Data Keluaran
Waktu yang dibutuhkan untuk menjalankan program TORA Waktu eksekusi
untuk TORA 6
Waktu yang dibutuhkan untuk menjalankan program
menggunakan algoritma BBS Waktu eksekusi
untuk BBS 5
Jumlah iterasi yang dibutuhkan oleh BBS dan TORA
Jumlah Iterasi 3
Nilai optimal yang didapatkan Value
2
Nama File masukan Problem
1
Keterangan Nama Data
Flowchart Keseluruhan Sistem
Mulai Persamaan Integer Programming Proses Inisialisasi Proses Pemecahan Cone Proses Menghitung Lattice PointProses Optimasi Menggunakan Algoritma Binary Search
Optimal Value Dari
Terdapat 4 proses utama
yang digunakan
dalam
metode barvinok rational
function :
1. Proses Inisialisasi
2. Proses Pemecahan Cone
3. Proses
Hitung
Lattice
point
4. Proses optimasi dengan
menerapkan
algoritma
Binary Search
• Proses inisialisasi ini merupakan suatu proses untuk
menginisialisasi permasalahan integer programming yang akan diselesaikan menggunakan
metode Barvinok Rational Functions.
• Proses inisialisasi terdiri dari 2 tahap :
• Tahap Cek Input
• Tahap Baca Problem Data
Proses Inisialisasi
Mulai
Persamaan Integer Programming
Proses Cek Inputan
Proses Baca Problem Data
Persamaan IP yang Telah diinisialisasi
• Proses yang dilakukan dalam tahapan ini berupa pengecekan inputan apakah inputan tersebut kosong atau tidak.
• Disini maksud dari kosong adalah apakah inputan tersebut mengandung Lattice Point
ataukah tidak. Jika inputan yang dimasukkan tidak mengandung
Lattice Point, maka inputan tersebut dianggap kosong dan tidak dapat diselesaikan.
• Tahapan ini menghasilkan keluaran berupa persamaan
integer programming yang telah dilakukan pengecekan inputan.
Proses Inisialisasi - Cek Inputan
• Inputan yang sudah dicek pada tahap cek inputan kemudian dibaca problem data yang terkandung didalamnya.
• Dilakukan inisialisasi apakah problem pada inputan tersebut berupa permasalahan integer ataukah bukan.
• Jika hasil inisialisasi terhadap problem data tersebut bukan
merupakan permasalahan integer maka inputan tersebut
dianggap kosong dan tidak dapat dikerjakan
• Proses pemecahan (decompose) cone
merupakan bagian yang penting dalam metode Barvinok rational functions.
• Proses Decompose cone merupakan proses pemecahan suatu cone kedalam beberapa unimodular cone.
• Salah satu cara yang digunakan untuk memecah suatu cone (decompose cone) kedalam beberapa bentuk unimodular cone dengan tepat adalah dengan menerapkan fungsi generating function.
Proses Pemecahan Cone
•
Setelah didapatkanunimodular
cone
dari proses decompose cone, maka untuk menentukanLattice Point
yang paling optimaldari masing-masing
unimodular
cone
adalah dengan melakukan prosesmonomial substitution
.Proses Hitung Lattice Point
• Pada proses optimasi ini, akan dicari nilai optimal dari permasalahan yang ada dengan menganalisa jalannya algoritma
binary search dalam metode
barvinok rational functions
• Algoritma binary search akan membandingkan lattice point
dari masing-masing unimodular cone dan dicari lattice point
yang terbesar dari beberapa
unimodular cone tersebut untuk dijadikan nilai optimal dari permasalahan IP
Proses Optimasi
Data taaa1
•
Manual : Persamaan Integer : Maximize z = 5x1 + 4x2 Subject to : x1 + x2 ≤ 5 10x1 + 6x2 ≤ 45 x1,x2 >= 0Data taaa1
•
Latte v1.2 : taaa1 2 3 5 -1 -1 45 -10 -6 linearity 1 1 nonnegative 2 1 2 taaa1.cost 1 2 5 4•
Menggunakan Latte v1.2•
Menggunakan TORAOutput Program :
(Current) Best Objective Value (Max) = 23 Found at iteration 2
Optimality verified at iteration 5
Hasil Percobaan Data taaa1
Data taaa2
•
Manual : Persamaan Integer : Maximize z = 2x1 - x2 + 3x2 Subject to : x1 - x2 + 5x3 ≤ 10 2x1 - x2 + 3x2 ≤ 40 x1,x2 >=0Data taaa2
•
Latte v1.2 : taaa2 2 4 10 -1 1 -5 40 -2 1 -3 linearity 1 2 nonnegative 3 1 2 3 taaa2.cost 1 3 2 -1 3•
Menggunakan Latte v1.2•
Menggunakan TORAOutput Program :
(Current) Best Objective Value (Max) = 40 Found at iteration 1
Optimality verified at iteration 2
Hasil Percobaan Data taaa2
Gambar hasil uji coba data taaa2 menggunakan TORA Gambar hasil uji coba data taaa2 menggunakan Latte v1.2
Data cuww1
•
Manual : Persamaan Integer : Maximize z = 213x1 -1928x2 – 11111x3 – 2345x4 + 9123x5 Subject to : 12223x1 + 12224x2 + 36674x3 + 61119x4 + 85569x5 ≤ 89643482 x1,x2,x3,x4,x5 >= 0Data cuww1
•
Latte v1.2 : cuww1 1 6 89643482 -12223 -12224 -36674 -61119 -85569 linearity 1 1 nonnegative 5 1 2 3 4 5 cuww1.cost 1 5 213 -1928 -11111 -2345 9123•
Menggunakan Latte v1.2Output Program :
•
Menggunakan TORAOutput Program :
Hasil Percobaan Data cuww1
Data cuww2
•
Manual : Persamaan Integer : Maximize z = 213x1 -1928x2 – 11111x3 – 2345x4 + 9123x5 – 12834x6 Subject to : 12228x1 + 36679x2 + 36682x3 + 48908x4 + 61139x5 + 73365x6 ≤ 89716839 x1,x2,x3,x4,x5 >= 0Data cuww2
•
Latte v1.2 : cuww2 1 7 89716839 -12228 -36679 -36682 -48908 -61139 -73365 linearity 1 1 nonnegative 6 1 2 3 4 5 6 cuww2.cost 1 6 213 -1928 -11111 -2345 9123 -12834•
Menggunakan Latte v1.2•
Menggunakan TORAOutput Program :