• Tidak ada hasil yang ditemukan

ALGORITMA PARTICLE SWARM OPTIMIZATION DAN TERAPANNYA DALAM MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS MAKALAH

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITMA PARTICLE SWARM OPTIMIZATION DAN TERAPANNYA DALAM MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS MAKALAH"

Copied!
114
0
0

Teks penuh

(1)

ALGORITMA PARTICLE SWARM OPTIMIZATION DAN TERAPANNYA DALAM MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS

MAKALAH

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Matematika

Disusun oleh: Helvetika Amperiana

NIM: 123114009

PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

(2)

i

ALGORITMA PARTICLE SWARM OPTIMIZATION DAN TERAPANNYA DALAM MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS

MAKALAH

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Matematika

Disusun oleh: Helvetika Amperiana

NIM: 123114009

PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

(3)

ii

PARTICLE SWARM OPTIMIZATION ALGORITHM AND ITS APPLICATION IN SOLVING CUTTING PAPER ROLL PROBLEM

A PAPER

Presented as a Partial Fulfillment of the Requirements to Obtain the Degree of Sarjana Sains

Mathematics Study Program

Written by: Helvetika Amperiana Student ID: 123114009

MATHEMATICS STUDY PROGRAM DEPARTMENT OF MATHEMATICS FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA

(4)

MAKALAH

ALGORITMA PARTICLE S WARM O PTIMIZATTON DAN TERAPANNYA

DALAM MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS

Sisusun oleh:

Narna. F{elv*tika Ampcriana

NIM: 123114**9

Telah dis*f*jui *l*h:

Ilasen pembimbing makal ah

Tanggzil: 31 Ja:ruari 2017

(5)
(6)

v

HALAMAN PERSEMBAHAN

Maka..

Ingat selalu bahwa berkat dan karunia berbanding lurus dengan tanggung jawab

dan itu semua hanya dapat disempurnakan oleh Kasih.

Tugas akhir ini saya persembahkan untuk orang tua saya tercinta, Ir. Yugianto dan Ho’ing Buddy Serta adik saya terkasih, Febriano Ampera Putra

(7)
(8)

vii ABSTRAK

Algoritma Particle Swarm Optimization (PSO) merupakan salah satu algo-ritma optimasi dengan teknik pendekatan heuristik. Pendekatan haeuristik yaitu pendekatan komputasi untuk mencari suatu penyelesaian optimal atau mendekati optimal dari suatu masalah optimasi dengan cara mencoba secara iteratif untuk memperbaiki kandidat solusi dengan memperhatikan batasan kualitas solusi yang diinginkan. Algoritma PSO terinspirasi dari perilaku sekawanan burung atau sekumpulan ikan yang dapat menjelajah ruang solusi secara efektif sehingga mempunyai keefektifan yang baik dalam menyelesaikan masalah.

Makalah ini mengimplementasikan algoritma PSO untuk menyelesaikan masalah pemotongan persediaan kertas, yaitu pada rol kertas jumbo yang akan dipotong untuk mendapatkan rol kertas kecil. Lebar rol kertas kecil ditentukan oleh permintaan pelanggan dan jumlah rol yang dipesan juga berbeda-beda. Tujuannya adalah mencari dan menyusun pola pemotongan dari sebuah rol jumbo menjadi rol kecil sedemikian hingga diperoleh hasil yang optimum. Berdasarkan hasil penelitian ini, diperoleh solusi optimal yaitu jumlah rol jumbo dan sisa yang minimum untuk beberapa kasus pesanan yang masuk. Selanjutnya dibuat suatu program tampilan dengan MATLAB berdasarkan algoritma PSO. Dibandingkan dengan perhitungan software Quantitative Method (QM), yaitu software yang populer digunakan untuk memproses data kuantitatif, hasilnya cukup mendekati.

Kata kunci: Algoritma Particle Swarm Optimization (PSO), masalah pemotongan persediaan, program linear

(9)

viii ABSTRACT

Particle Swarm Optimization (PSO) algorithm is an optimization algorithm classified as a heuristic approach technique. It seeks an optimal solution or almost optimal in iterative manner. The candidate for solutions are improved iteratively with regards to the quality of the desired solution. PSO algorithm is inspired by the behavior of a flock of birds or school of fish that can explore the solution space effectively so have a good effectiveness in solving the problems.

This paper implements the PSO algorithm to solve the problem of cutting paper supplies. Jumbo paper rolls are cut in to smaller paper rolls which widths are determined by customer demand. The number of rolls are also varied. The goal is to find and develop cutting pattern of jumbo rolls into small rolls so that optimum results are obtained. Based on PSO algorithms written in MATLAB, the optimal solution is obtained which minimizes the use of the number of jumbo rolls for some cases of incoming orders. Compared to the results produced by optimization software QM (Quantitative Methods), the result is quite accurate.

Paper industry produces jumbo paper rolls by using a paper machine. The

Keywords: Particle Swarm Optimization (PSO) algorithm, cutting stock problem, paper roll, linear programming.

(10)
(11)
(12)

xi DAFTAR ISI

HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ...vi

ABSTRAK ... vii

ABSTRACT ... viii

LEMBAR PERNYATAAN PERSETUJUAN ... vii

KATA PENGANTAR ... x

DAFTAR ISI ... xi

BAB I PENDAHULUAN ... 1

A. Latar Belakang Masalah ... 1

B. Rumusan Masalah ... 6 C. Pembatasan Masalah ... 6 D. Tujuan Penulisan ... 7 E. Manfaat Penulisan ... 7 F. Metode Penulisan ... 7 G. Sistematika Penulisan ... 7

BAB II LANDASAN TEORI ... 10

A. Program Linear... 10

B. Program Linear Bilangan Bulat ... 11

C. Masalah Knapsack ... 16

D. Algoritma Particle Swarm Optimization (PSO) ... 29

BAB III MASALAH PEMOTONGAN PERSEDIAAN ... 54

A. Masalah Pemotongan Persediaan (Cutting Stock Problem) ... 54

B. Algoritma PSO Sebagai Pendekatan untuk Pencarian Solusi Optimal CSP 60 BAB IV PENERAPAN ALGORITMA PARTICLE SWARM OPTIMIZATION UNTUK MASALAH PEMOTONGAN ROL KERTAS ... 69

BAB V PENUTUP ... 76

A. Kesimpulan ... 76

B. Saran ... 77

(13)

xii

(14)

1

BAB I

PENDAHULUAN

A. Latar Belakang Masalah

Metode heuristik adalah suatu teknik aproksimasi atau pendekatan yang didesain untuk memecahkan masalah optimasi dengan cara mencoba secara iteratif sebagai upaya memperbaiki kandidat solusi dengan memperhatikan batasan kualitas solusi yang diinginkan dengan mengutamakan waktu komputasi dan biasanya menghasilkan solusi yang cukup baik, dalam arti optimal atau mendekati optimal. Metode ini dapat mencari solusi dalam ruang pencarian (search space) yang besar dengan cara memadukan interaksi antara prosedur pencarian lokal dan melakukan pencarian di ruang solusi untuk menemukan solusi global. Selain itu, ada prosedur yang memanfaatkan satu atau lebih titik-titik tetangga (neighborhood structures) sebagai acuan menuju solusi lain. Karena metode ini dapat menghasilkan solusi yang cukup baik dalam memecahkan permasalahan kombinatorial dengan skala yang cukup besar dan waktu komputasi yang relatif cepat, maka metode ini muncul sebagai alternatif yang dapat beradaptasi dengan baik untuk kasus-kasus sulit dalam konteks industri dan telah mencatatkan sejarah sukses.

Langkah-langkah dari metode ini menggunakan algoritma optimasi yang diadaptasi dari Swarm Intelligence. Algoritma optimasi yang termasuk ke dalam kelas Swarm Intelligence (SI) diantaranya adalah: Particle Swarm Optimization (PSO), Ant Colony Optimization (ACO), Artificial Bee Colony Algorithm (ABC),

(15)

Cat Swarm Optimization (CSO), dan lain-lain. Akan tetapi, yang akan dibahas disini adalah Algoritma Particle Swarm Optimization (PSO) sebagaimana diterapkan dalam penelitian ini dengan tujuan untuk mencapai solusi yang optimal bagi masalah pemotongan kertas.

Particle Swarm Optimization (PSO) diperkenalkan pertama kali oleh James Kennedy (seorang psikolog sosial) dan Russell Eberhart (seorang insinyur elektro) pada tahun 1995, PSO berasal dari simulasi perilaku kawanan burung. Meskipun sejumlah ilmuwan telah menciptakan simulasi komputer tentang berbagai penafsiran dari gerakan organisme pada kawanan burung atau gerombolan ikan, Kennedy dan Eberhart hanya tertarik pada model yang dikembangkan oleh Heppner (ahli zoologi). Dalam model Heppner ini, burung akan mulai dengan beterbangan di sekitar tanpa tujuan tertentu dan membentuk kawanan secara spontan sampai salah satu burung terbang di atas wilayah yang akan dijadikan tempat bersarang. Bagi Eberhart dan Kennedy, menemukan sebuah tempat bersarang analog dengan menemukan solusi yang baik pada bidang penyelesaian yang memungkinkan. Mereka juga merevisi metodologi Heppner sehingga partikel (individu) akan terbang di atas ruang solusi dan mencoba untuk menemukan solusi terbaik menurut penemuan mereka sendiri dan pengalaman masa lalu dari tetangga mereka. Kita bisa mengutip beberapa karya yang berhasil menggunakan metode ini seperti masalah pemotongan berdasarkan pola oleh Ghassen Ben Lagha dan Xianjun Shen dkk.

Dalam makalah ini, saya memberikan rumusan matematika untuk masalah pemotongan persediaan yang berperan dalam mengambil pertimbangan pada saat

(16)

hendak melakukan proses pemotongan kertas dalam rangka untuk memenuhi semua pesanan dari konsumen.

Berikut diagram alir dari pencarian solusi masalah pemotongan rol kertas dengan algoritma PSO.

Gambar 1.1: Diagram alir pencarian solusi masalah pemotongan rol kertas dengan algoritma PSO

Pada makalah ini masalah pemotongan rol kertas dibatasi hanya pada pemotongan dari rol ke rol yang berarti hanya untuk pemotongan dari rol jumbo menjadi rol-rol kecil dan dengan pola pemotongan satu dimensi.

Selebihnya makalah ini mengandung bagian-bagian sebagai berikut: Bagian pertama menyatakan formulasi matematis dan menjelaskan bagaimana mengatasi masalahnya. Bagian kedua yaitu pendekatan dengan algoritma PSO dan fitur-fiturnya. Bagian ketiga akan melaporkan penyelidikan eksperimental. Bagian keempat menyajikan penerapan algoritma PSO yang dapat digunakan secara

1. Mengurutkan lebar roll kecil dari terbesar sampai terkecil. (data)

2. Menentukan pola pemotongan

kertas. (kendala)

3. Mengoperasikan algoritma PSO sesuai dengan data dan kendala agar nilai optimal dari fungsi objektif tercapai.

(17)

langsung untuk menyelesaikan masalah pemotongan kertas satu dimensi (dari rol ke rol) menggunakan GUI yang dibuat dengan menggunakan MATLAB. Dan bagian terakhir berisi kesimpulan dan saran.

Seperti yang sudah disinggung sebelumnya, akan dibahas algoritma PSO sebagai salah satu metode heuristik yang dapat memecahkan permasalahan kombinatorial dengan skala yang cukup besar. Salah satu masalah kombinatorial yang dihadapi sejak masa revolusi industri yang berjaya pada abad terakhir, adalah masalah pemotongan persediaan atau Cutting Stock Problem (CSP) maupun masalah pengurangan sisa atau Trim Loss Problem (TLP). Masalah pemotongan persediaan atau Cutting Stock Problem (CSP) biasanya berkaitan dengan meminimumkan biaya produksi untuk mencapai pemakaian bahan baku yang optimal. Salah satu cara yang ditempuh untuk dapat meminimumkan biaya produksi adalah dengan memproduksi jumlah rol yang sesuai dengan pesanan.

Sedangkan untuk masalah pengurangan sisa atau Trim Loss Problem (TLP) biasanya terjadi karena pola pemotongan yang digunakan kurang tepat sehingga mengakibatkan ketidakefisienan pemakaian bahan baku. Oleh karena itu, memproduksi jumlah rol yang optimal dan pola pemotongan yang tepat akan memberi pengaruh yang signifikan dalam hal meminimumkan biaya produksi meskipun sisa pemotongan kertas dapat didaur ulang, diproduksi menjadi produk lain, dan dimasukkan ke dalam penyimpanan. Efisiensi akan meningkat jika produksi jumlah rol semakin sedikit dan sesuai dengan kebutuhan serta pola pemotongan yang dihasilkan semakin baik dan akurat.

(18)

Sebelum rol jumbo dipotong menjadi potongan kertas atau rol kecil, maka harus diperhitungan berbagai macam kemungkinan pola pemotongan dari rol jumbo tersebut yang kemudian akan dipilih yang paling optimal. Pola tersebut berupa gabungan dari beberapa ukuran kertas atau rol yang diinginkan konsumen. Pembentukan pola tersebut juga harus memperhatikan beberapa kendala agar didapat hasil yang optimal. Dalam 1 rol jumbo yang akan dipotong menjadi rol-rol kecil haruslah memuat pesanan dengan diameter rol, panjang rol, jenis kertas, warna kertas, dan berat yang sama.

Terdapat banyak metode untuk menyelesaikan masalah tersebut salah satunya dengan program linear. Secara umum, masalah program linear dapat dirumuskan sebagai berikut:

Maksimumkan atau minimumkan 𝒛 = 𝒄𝒙 Dengan kendala 𝑨𝒙 { ≤ = ≥ } 𝒃 𝒙 ≥ 𝟎 dengan 𝒙 = (𝑥1, 𝑥2, … , 𝑥𝑛+𝑚)𝑇 , 𝒄 = (𝑐 1, 𝑐2, … , 𝑐𝑛+𝑚), 𝑨 = [ 𝑎11 ⋯ 𝑎1,𝑛+𝑚 ⋮ ⋱ ⋮ 𝑎𝑚1 ⋯ 𝑎𝑚,𝑛+𝑚 ], dan 𝒃 = [ 𝑏1 ⋮ 𝑏𝑚 ].

(19)

Dalam mencari penyelesaian program linear, metode yang sering digunakan adalah metode simpleks. Ketika masalah tersebut diaplikasikan dalam dunia industri, dapat dipastikan bahwa akan dilibatkan data dalam jumlah besar sebagai masukan. Semakin besar masalah ukuran ini, semakin banyak penyelesaian dan proses mengoptimumkan menjadi lebih sulit. Oleh karena itu, selain metode simpleks, terdapat metode yang juga dapat digunakan untuk menyelesaikan masalah di atas yaitu metode heuristik.

B. Rumusan Masalah

Berdasarkan latar belakang tersebut, secara garis besar uraian rumusan masalah yang dibahas dalam makalah ini adalah:

a. Bagaimana memodelkan masalah pemotongan kertas agar didapat solusi yang optimal?

b. Bagaimana menyelesaikan masalah pemotongan kertas dengan

menggunakan algoritma PSO?

c. Bagaimana menyelesaikan masalah pemotongan kertas dengan

menggunakan MATLAB?

C. Pembatasan Masalah

Agar penulisan dan pembahasan isi menjadi lebih terarah dan tidak menyimpang dari masalah yang dibahas maka dalam penulisan makalah ini dibatasi, yaitu pemotongan kertas dari rol jumbo menjadi pesanan rol kecil dengan pola pemotongan satu dimensi.

(20)

D. Tujuan Penulisan

Tujuan yang ingin dicapai penulis dalam penulisan makalah ini selain untuk memenuhi syarat makalah dalam program studi Matematika Universitas Sanata Dharma, yaitu sebagai berikut.

a. Memodelkan masalah pemotongan kertas.

b. Menyelesaikan masalah pemotongan kertas dengan algoritma PSO. c. Menyelesaikan masalah pemotongan kertas dengan aplikasi MATLAB.

E. Manfaat Penulisan

Manfaat penulisan dari makalah ini adalah:

a. Dapat memodelkan dan mengaplikasikan program linear dalam masalah pemotongan kertas.

b. Dapat membantu berbagai pihak untuk menentukan pola pemotongan kertas yang optimal.

F. Metode Penulisan

Metode yang digunakan penulis dalam penyusunan makalah yaitu studi pustaka, yaitu dengan mempelajari buku atau jurnal yang berkaitan dengan masalah pemotongan persediaan (cutting stock problem).

G. Sistematika Penulisan BAB I. PENDAHULUAN

(21)

B. Perumusan Masalah C. Pembatasan Masalah D. Tujuan Penulisan E. Manfaat Penulisan F. Metode Penulisan G. Sistematika Penulisan

BAB II. PROGRAM LINEAR DAN METODE HEURISTIK A. Program Linear

B. Program Linear Bilangan Bulat C. Masalah Knapsack

D. Algoritma Particle Swarm Optimization (PSO)

BAB III. MASALAH PEMOTONGAN PERSEDIAAN

A. Masalah Pemotongan Persediaan (Cutting Stock Problem) B. Pencarian Solusi Optimal dengan Algoritma PSO

BAB IV. PENERAPAN ALGORITMA PSO UNTUK MENYELESAIKAN MASALAH PEMOTONGAN ROL KERTAS

BAB V. PENUTUP A. Kesimpulan B. Saran

(22)

DAFTAR PUSTAKA LAMPIRAN

(23)

10 BAB II

LANDASAN TEORI

A. Program Linear

Program linear adalah sebuah metode matematis yang berkarakteristik linear untuk menemukan suatu penyelesaian optimal dengan cara memaksimumkan atau meminimumkan fungsi obyektif atau tujuan terhadap suatu susunan kendala. Istilah program linear secara eksplisit telah menunjukkan karakteristiknya. Model matematika harus berupa fungsi linear dan penyelesaian optimal diturunkan melalui teknik optimasi linear.

Bentuk baku model matematis program linear dapat dilihat: Fungsi obyektif/tujuan:

Maksimumkan/minimumkan 𝑧 = ∑𝑛𝑗=1𝑐𝑗𝑥𝑗 Terhadap fungsi kendala-kendala

∑ 𝑎𝑖𝑗𝑥𝑗{ ≤ = ≥ } 𝑏𝑖 𝑛 𝑗=1 (2.1) 𝑥𝑗 ≥ 0

dengan 𝑥𝑗 : Variabel keputusan ke-j 𝑐𝑗 : Parameter fungsi tujuan ke-j 𝑏𝑖 : Kapasitas kendala ke-i

𝑎𝑖𝑗 : Parameter fungsi tujuan ke-i untuk variabel keputusan ke-j 𝑖 ∶ 1, 2, … , 𝑚

(24)

dengan setiap pertidaksamaan yang memiliki simbol, ≤, ≥, =, hanya dipilih salah satu. Fungsi obyektif atau fungsi tujuan disebut juga fungsi linear. Dengan 𝑎𝑖𝑗 disebut koefisien teknis, 𝑐𝑗 disebut koefisien ongkos, dan 𝑏𝑖 disebut suku tetap di

ruas kanan disingkat “suku tetap” atau “ruas kanan”. Jika 𝑥𝑗, 𝑗 = 1, … , 𝑛 memenuhi semua kendala, maka disebut penyelesaian layak. Penyelesaian layak yang juga mengoptimumkan 𝑧 disebut penyelesaian optimum.

Setiap masalah minimum dapat dilihat seperti masalah maksimum dan sebaliknya. Ini dapat terlihat dari pengamatan berikut

𝑚𝑖𝑛 ∑ 𝑐𝑗𝑥𝑗 𝑛 𝑗=1 = −𝑚𝑎𝑥⁡(− ∑ 𝑐𝑗𝑥𝑗 𝑛 𝑗=1 ) (2.2)

Itu berarti untuk meminimumkan fungsi tujuan kita dapat memaksimumkan negatif dari fungsi tujuannya kemudian menegatifkan lagi hasil maksimumnya.

Solusi yang digunakan untuk menyelesaikan masalah program linear yaitu dengan metode grafik dan metode simpleks. Metode grafik digunakan untuk memecahkan persoalan model program linear dua variabel. Lalu pada tahun 1947 G. Dantzig mengembangkan metode yang dapat memecahkan persoalan model program linear dengan lebih dari dua variabel yang disebut metode simpleks. Namun kedua metode tersebut tidak akan dibahas di sini.

B. Program Linear Bilangan Bulat

Penyelesaian kasus masalah program linear dapat menghasilkan nilai optimal berupa bilangan pecahan. Padahal dalam kasus di dunia nyata penyelesaian masalah harus berupa bilangan bulat terutama apabila variabel-variabel keputusannya

(25)

mewakili item yang utuh dan tidak dapat dipecah seperti pada: masalah Knapsack dan masalah pemotongan persediaan. Program linear bilangan bulat adalah sebuah model penyelesaian matematis yang memungkinkan solusi masalah program linear yang berupa bilangan pecahan diubah menjadi bilangan bulat tanpa meninggalkan optimalitas penyelesaian. Program linear bilangan bulat secara umum terbagi menjadi 3 jenis yaitu program linear bilangan bulat murni (pure), program linear bilangan bulat campuran (mixed), dan program linear bilangan bulat 0-1 (binary). Program linear bilangan bulat murni terjadi apabila semua variabel dalam solusi optimal merupakan bilangan bulat. Sedangkan program linear bilangan bulat campuran terjadi apabila variabelnya ada yang bukan bilangan bulat. Selanjutnya untuk program linear bilangan bulat 0-1 (biner) secara khusus mensyaratkan agar semua variabel dalam solusi optimal harus merupakan bilangan bulat bernilai 0 atau 1.

Untuk masalah program linear bilangan bulat yang kasusnya besar, metode yang biasa digunakan yaitu metode pemotongan bidang (Cutting Plane), dan metode cabang dan batas (Branch and Bound). Namun disini hanya akan dibahas metode cabang dan batas untuk penyelesaian masalah program linear bilangan bulat.

Metode Pencabangan dan Pembatasan (Branch and Bound Method)

Metode cabang dan batas adalah suatu metode yang sangat sederhana namun sering digunakan untuk menyelesaikan masalah program linear bilangan bulat

(26)

(integer). Metode ini diusulkan pertama kali oleh A. H. Land dan A. G. Doig pada tahun 1960.

Metode ini secara umum dimulai dengan mencari solusi masalah program linear tanpa menambahkan syarat bahwa penyelesaian optimalnya harus berupa bilangan bulat.

1. Jika secara kebetulan penyelesaian optimal yang didapat berupa bilangan bulat, maka penyelesaian ini juga merupakan penyelesaian masalah program linear bulatnya.

2. Jika penyelesaian yang didapat bukan bilangan bulat, maka selanjutnya kendala baru yang membatasi nilai salah satu variabel yang tidak bulat ditambahkan.

3. Penambahan ini mengakibatkan terbaginya daerah layak menjadi 2 bagian sehingga terbentuklah 2 sub-masalah baru yang kemudian harus diselesaikan. Dengan kata lain, terjadi pencabangan dari masalah aslinya menjadi 2 sub-masalah baru.

4. Batas untuk nilai fungsi obyektif atau fungsi tujuan kemudian dapat ditentukan. Batas ini dapat digunakan untuk mengeliminasi sub-masalah yang tidak diperlukan dan menentukan apakah penyelesaian optimalnya sudah tercapai.

5. Jika penyelesaian yang didapat belum optimal, maka sub-masalah baru dipilih dan proses pencabangan berlanjut.

Untuk lebih jelasnya, metode ini bekerja sebagai berikut. Metode ini diawali dengan mencari penyelesaian optimal bagi masalah program linear biasa. Jadi

(27)

syarat bahwa nilai dari variabel-variabelnya harus berupa bilangan bulat diabaikan untuk sementara. Apabila dalam penyelesaian ini diperoleh variabel-variabel yang tidak bulat, katakanlah 𝑥𝑖 maka pasti dapat ditemukan dua bilangan bulat tak negatif

𝑛 dan 𝑛 + 1 sehingga 𝑛⁡ < ⁡ 𝑥𝑖 < ⁡𝑛 + 1. Selanjutnya, masalah program linear bulat

di atas dicabangkan menjadi dua masalah program linear bulat baru dengan menambahkan kendala 𝑥𝑖

⁡𝑛 dan 𝑥𝑖

⁡𝑛 + 1.

Proses pencabangan ini bertujuan untuk mempersempit daerah layak sehingga dapat dilakukan eliminasi terhadap penyelesaian yang tak bulat bagi 𝑥𝑖 dari tinjauan selanjutnya, tetapi masih tetap mempertahankan semua penyelesaian bilangan bulat yang mungkin terhadap masalah semula. Kemudian, proses pencabangan ini terus dilakukan hingga diperoleh suatu penyelesaian bilangan bulat yang pertama. Contoh 2.1 Minimumkan 𝑧 = 𝑥1+ 𝑥2 Dengan kendala { 4𝑥1+ 4𝑥2 ≥ 10 24𝑥1+ 10𝑥2 ≥ 60 𝑥1, 𝑥2 ≥ 0⁡dan⁡bilangan⁡bulat Penyelesaian:

Menyelesaikan masalah program linear tersebut sehingga mendapatkan solusi optimal 𝑥1 = 2,5, 𝑥2 = 0, dan 𝑧 = 2,5. Penyelesaian tidak berbentuk bilangan bulat maka lanjut ke langkah 2.

(28)

Selanjutnya, masalah program linear bulat di atas dicabangkan menjadi dua masalah program linear bulat baru dengan menambahkan kendala 𝑥1

⁡2 dan 𝑥1

3. Sehingga didapatkan dua sub-masalah baru yang harus diselesaikan sebagai berikut. Sub-masalah 1: Minimumkan 𝑧 = 𝑥1+ 𝑥2 Dengan kendala { 4𝑥1+ 4𝑥2 ≥ 10 24𝑥1+ 10𝑥2 ≥ 60 𝑥1

⁡2 𝑥1, 𝑥2 ≥ 0⁡dan⁡bilangan⁡bulat dan Sub-masalah 2: Minimumkan 𝑧 = 𝑥1+ 𝑥2 Dengan kendala { 4𝑥1+ 4𝑥2 ≥ 10 24𝑥1+ 10𝑥2 ≥ 60 𝑥1

3 𝑥1, 𝑥2 ≥ 0⁡dan⁡bilangan⁡bulat

Batas untuk nilai tujuan belum dapat ditentukan karena belum mendapatkan penyelesaian bilangan bulat.

Dari submasalah 1 diperoleh penyelesaian 𝑥1 = 2, 𝑥2 = 1,2, dan 𝑧 = 3,2. Penyelesaian tidak berbentuk bilangan bulat maka lanjut ke langkah 2.

Langkah 2: Sub-masalah program linear dicabangkan menjadi dua masalah program linear bulat baru dengan menambahkan kendala 𝑥2

1 dan 𝑥2

2.

Karena 𝑥2

1 tidak berada dalam daerah layak maka kita memilih 𝑥2

2. Jadi,

(29)

Dari sub-masalah 2 diperoleh penyelesaian 𝑥1 = 3, 𝑥2 = −0,5, dan 𝑧 = 2,5. Penyelesaian tidak berbentuk bilangan bulat maka lanjut ke langkah 2.

Langkah 2: Sub-masalah program linear dicabangkan menjadi dua masalah program linear bulat baru dengan menambahkan kendala 𝑥2

0 dan 𝑥2

1.

Karena 𝑥2

0 tidak berada dalam daerah layak maka kita memilih 𝑥2

1 sehingga 𝑧 = 4. Jadi, diperoleh solusi optimal yaitu 𝑥1 = 2, 𝑥2 = 1, dan 𝑧 = 3.

C. Masalah Knapsack

Masalah Knapsack adalah masalah program linear bilangan bulat yang hanya memiliki satu kendala dan penyelesaian berupa bilangan bulat. Masalah Knapsack biasanya digunakan untuk menyusun barang ke dalam karung yang besar yang tidak dapat memuat semua barang. Permasalahan Knapsack ini mencari solusi terbaik dari semua kemungkinan susunan barang yang akan dimasukkan ke dalam karung. Masalah Knapsack dapat dituliskan sebagai berikut.

Maksimumkan 𝑧 = ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 dengan kendala ∑ 𝑤𝑖𝑎𝑖 𝑚 𝑖=1 ≤ 𝑟 (2.3)

dengan 𝑎𝑖 adalah bilangan bulat tak negatif (𝑖 = 1,2, . . . , 𝑚) dan merupakan

banyaknya barang ke-i yang dimasukan ke dalam karung, 𝑤𝑖 adalah ukuran barang ke-i yang bernilai positif dan 𝑟 adalah ukuran atau karung yang juga bernilai positif. Diasumsikan 𝑦𝑖 adalah nilai barang ke-i yang bernilai positif (variabel 𝑎𝑖 dengan

(30)

𝑦𝑖 ≤ 0 dapat segera dihapus). Perbandingan 𝑦𝑖⁄𝑤𝑖 merupakan nilai per satuan ukuran dari barang ke-i atau sebagai efisiensi variabel 𝑎𝑖. Kita asumsikan lagi efisiensi variabel 𝑎𝑖 diurutkan secara menurun menurut nilai yang dikandungnya:

𝑦1⁄𝑤1 ≥ 𝑦2⁄𝑤2 ≥ ⋯ ≥ 𝑦𝑚⁄𝑤𝑚 (2.4)

Untuk setiap solusi optimal dari masalah Knapsack memenuhi:

𝑟 − ∑ 𝑤𝑖𝑎𝑖

𝑚 𝑖=1

< 𝑤𝑚

(2.5)

Pertidaksamaan (2.5) artinya sisa ukuran dari karung haruslah kurang dari barang ke-m.

Masalah Knapsack memiliki dua jenis berdasarkan penyelesaiannya yaitu Knapsack (0-1) dan Knapsack bilangan bulat. Pada makalah ini akan menggunakan Knapsack bilangan bulat yang akan diselesaikan menggunakan metode cabang dan batas.

Berikut adalah tahapan untuk menyelesaikan masalah Knapsack dengan metode cabang dan batas.

1. Menentukan nilai awal yaitu 𝑀 = 0 dan 𝑘 = 0.

2. Menemukan perpanjangan cabang. Untuk 𝑗 = 𝑘 + 1, 𝑘 + 2, . . . , 𝑚 maka 𝑎𝑗 =

⌊(𝑟 − ∑𝑗−1𝑖=1𝑤𝑖𝑎𝑖) 𝑤⁄ 𝑗⌋. Biasanya untuk 𝑎1 = ⌊𝑟 𝑤⁄ 1⌋. Maka didapat solusi

terbaik 𝑎1∗, 𝑎2∗, … , 𝑎𝑚∗ .

3. Memperbaiki solusi. Jika ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 > 𝑀, maka mengganti M dengan ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 dan mengganti 𝑎1∗, 𝑎2∗, … , 𝑎𝑚∗ dengan 𝑎1, 𝑎2, … , 𝑎𝑚.

(31)

4. Menemukan cabang selanjutnya.

Menemukan k terbesar sedemikian hingga 𝑘 ≤ 𝑚 − 1 dimana 𝑎𝑘 > 0. Kita dapat tuliskan 𝑎̅𝑖 = 𝑎𝑖 untuk 𝑖 = 1, 2, . . . , 𝑘 − 1.

a. Jika k=1 maka berhenti; selain itu ganti k dengan k-1.

b. Jika 𝑎𝑘 = 0, maka kembali ke 4a, selain itu ganti 𝑎𝑘 dengan 𝑎𝑘 = 𝑎𝑘− 1. c. Pencarian cabang yang lebih baik.

Jika ∑𝑘𝑖=1𝑦𝑖𝑎̅𝑖+ 𝑦𝑘+1

𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖

𝑘

𝑖=1 ) ≤ 𝑀 (untuk koefisien 𝑦𝑖 bukan

bilang-an bulat positif) atau ∑𝑘𝑖=1𝑦𝑖𝑎̅𝑖 + 𝑦𝑘+1

𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖

𝑘

𝑖=1 ) ≤ 𝑀 + 1 (untuk

koe-fisien 𝑦𝑖 bilangan bulat positif) maka 𝑎̅1, 𝑎̅2, … , 𝑎̅𝑘 tidak layak diperiksa. Oleh

(32)

Start

END

Apakah ∑ 𝑦𝑚𝑖=1 𝑖𝑎𝑖∗> 𝑀

Ya

Mengganti solusi sebelumnya (𝑎1∗, 𝑎2∗, … , 𝑎𝑚∗) dengan 𝑎1, 𝑎2, … , 𝑎𝑚. Tidak M Tidak berubah Apakah terdapat 𝑎𝑘= 0 dan 𝑘 = 1?

Mereduksi k sampai diperoleh 𝑎𝑘> 0 lalu mengganti 𝑎𝑘 dengan 𝑎̅𝑘= 𝑎𝑘− 1, dimana 𝑎̅𝑖= 𝑎𝑖 untuk 𝑖 = 1, 2, . . . , 𝑘 − 1.

Tidak Apakah koefisien 𝑦𝑖

bilangan bulat positif? Menentukan perpanjangan cabang.

Untuk 𝑗 = 𝑘 + 1, 𝑘 + 2, . . . , 𝑚 maka 𝑎𝑗= ⌊(𝑟 − ∑𝑗−1𝑖=1𝑦𝑖𝑎𝑖) 𝑤⁄ ⌋ 𝑗 dan didapat solusi terbaik 𝑎1∗, 𝑎2∗, … , 𝑎𝑚∗.

Apakah ∑𝑘𝑖=1𝑦𝑖𝑎̅𝑖+ 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ? Apakah ∑𝑘𝑖=1𝑦𝑖𝑎̅𝑖+ 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 + 1 ? Ya Menentukan nilai awal yaitu 𝑀 = 0 dan 𝑘 = 0. Vektor a Tidak Tidak Mengganti M dengan ∑𝑚𝑖=1𝑦𝑖𝑎𝑖∗ Ya Ya Tidak

(33)

Contoh 2.2 Maksimumkan 7 24𝑎1+ 1 4𝑎2+ 5 24𝑎3+ 1 6𝑎4 dengan kendala 25,5𝑎1+ 22,5𝑎2+ 20𝑎3+ 15𝑎4 ≤ 91 Jawab:

1. Menentukan nilai awal yaitu 𝑀 = 0 dan 𝑘 = 0.

2. Menemukan cabang. Untuk 𝑗 = 𝑘 + 1, 𝑘 + 2, . . . , 𝑚 maka 𝑎1 = ⌊91 25,5⁄ ⌋ = 3 𝑎2 = ⌊(91 − ∑ 𝑤𝑖𝑎𝑖 2−1 𝑖=1 ) 𝑤⁄ 2⌋ = ⌊(91 − (25,5.3)) 22,5⁄ ⌋ = 0 𝑎3 = ⌊(91 − ∑ 𝑤𝑖𝑎𝑖 3−1 𝑖=1 ) 𝑤⁄ 3⌋ = ⌊(91 − (25,5.3 + 22,5.0)) 20⁄ ⌋ = 0 𝑎4 = ⌊(91 − ∑ 𝑤𝑖𝑎𝑖 4−1 𝑖=1 ) 𝑤⁄ 4⌋ = ⌊(91 − (25,5.3 + 22,5.0 + 20.0)) 15⁄ ⌋ = 0

Maka didapat solusi terbaik 𝑎1∗ = 3, 𝑎2∗ = 𝑎3∗ = 𝑎4∗ = 0. 3. Menentukan apakah solusi yang diperoleh meningkat?

Karena ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 = 0,875 > 𝑀 = 0, maka 𝑀 = 0,875 dan 𝑎1∗ = 3, 𝑎2∗ = 𝑎3∗ = 𝑎4∗ = 0 diganti menjadi 𝑎1 = 3, 𝑎2 = 𝑎3 = 𝑎4 = 0.

4. Didapatkan k=3 (𝑎3 = 0) lalu dikurangkan sampai diperoleh k=1 dimana 𝑎𝑘 >

0. Maka kita ganti 𝑎1 = 3 menjadi 𝑎̅1 = 2. 5. Apakah cabang layak untuk dieksplor?

(34)

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=1 dan 𝑎̅1 = 2.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 1 𝑖=1 + 𝑦1+1 𝑤1+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 1 𝑖=1 ) ≤ 0,875 7 24. 2 + 1/4 22,5(91 − 25,5.2) ≤ 0,875 7 12+ 1 90(40) = 1,0278 > 0,875

Karena pertidaksamaan tersebut tidak terpenuhi maka cabang layak untuk dieksplor. Kembali ke langkah 2.

2. Diketahui k=1 dan 𝑎1= 𝑎̅1 = 2, maka diperoleh

𝑎2 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 2−1 𝑖=1 ) 𝑤⁄ 2⌋ = ⌊(91 − (25,5.2)) 22,5⁄ ⌋ = 1 𝑎3 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 3−1 𝑖=1 ) 𝑤⁄ 3⌋ = ⌊(91 − (25,5.2 + 22,5.1)) 20⁄ ⌋ = 0 𝑎4 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 4−1 𝑖=1 ) 𝑤⁄ 4⌋ = ⌊(91 − (25,5.2 + 22,5.1 + 20.0)) 15⁄ ⌋ = 1⁡

3. Karena ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 = 1 > 𝑀 = 0,875, maka 𝑀 = 1 dan 𝑎1∗ = 3, 𝑎2∗ = 𝑎3∗ = 𝑎4∗ = 0 diganti menjadi 𝑎1 = 2, 𝑎2 = 1, 𝑎3 = 0, 𝑎4 = 1.

4. Didapatkan k=3 (𝑎3 = 0) lalu dikurangkan sampai diperoleh k=2 dimana 𝑎𝑘 > 0. Maka kita ganti 𝑎2 = 1 dengan 𝑎̅2 = 0..

(35)

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 2, 𝑎̅2 = 0.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 2 + 1 4. 0) + 5/24 20 (91 − (25,5.2 + 22,5.0)) ≤ 1 7 12+ 5 480(40) = 1 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

4. Didapatkan k=2 (𝑎2 = 0) lalu dikurangkan sampai diperoleh k=1 dimana 𝑎𝑘 > 0 dan kita ganti 𝑎1 = 2 dengan 𝑎̅1 = 1.

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan

berikut dengan k=1 dan 𝑎̅1 = 1.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 1 𝑖=1 + 𝑦1+1 𝑤1+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 1 𝑖=1 ) ≤ 1 (7 24. 1) + 1/4 22,5(91 − (25,5.1)) ≤ 1

(36)

7

24+

1

90(65,5) = 1,0194 > 1

Karena pertidaksamaan tersebut tidak terpenuhi maka cabang layak untuk dieksplor. Kembali ke langkah 2.

2. Diketahui k=1 dan 𝑎1= 𝑎̅1 = 1, maka diperoleh

𝑎2 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 2−1 𝑖=1 ) 𝑤⁄ 2⌋ = ⌊(91 − (25,5.1)) 22,5⁄ ⌋ = 2 𝑎3 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 3−1 𝑖=1 ) 𝑤⁄ 3⌋ = ⌊(91 − (25,5.1 + 22,5.2)) 20⁄ ⌋ = 1 𝑎4 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 4−1 𝑖=1 ) 𝑤⁄ 4⌋ = ⌊(91 − (25,5.1 + 22,5.2 + 20.1)) 15⁄ ⌋ = 0⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡

3. Karena ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 = 1 = 𝑀 = 1, maka 𝑀 = 1 dan 𝑎1∗ = 2, 𝑎2∗ = 0 diganti

menjadi 𝑎1 = 1, 𝑎2 = 2, 𝑎3 = 1, 𝑎4 = 0.

4. Didapatkan k=3 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎3 = 1 dengan 𝑎̅3 = 0. 5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=1 dan 𝑎̅1 = 1, 𝑎̅2 = 2, 𝑎̅3 = 0.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 1 𝑖=1 + 𝑦3+1 𝑤3+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 3 𝑖=1 ) ≤ 1 (7 24. 1 + 1 4. 2 + 0) + 1/6 15 (91 − (25,5.1 + 22,5.2 + 0)) ≤ 1

(37)

19

24+

1

90(20,5) = 1,0194 > 1

Karena pertidaksamaan tersebut tidak terpenuhi maka cabang layak untuk dieksplor. Kembali ke langkah 2.

2. Diketahui k=3, 𝑎1 = 𝑎̅1 = 1, 𝑎2 = 𝑎̅2 = 2, dan 𝑎3 = 𝑎̅3 = 0, maka diperoleh

𝑎4 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖

4−1 𝑖=1

) 𝑤⁄ 4⌋ = ⌊(91 − (25,5.1 + 22,5.2 + 20.0)) 15⁄ ⌋

= 1⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡

3. Karena ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 = 0,9583 ≤ 𝑀 = 1, maka 𝑀 = 1 dan 𝑎1∗ = 2, 𝑎2∗ = 0

diganti menjadi 𝑎1 = 1, 𝑎2 = 2, 𝑎3 = 0, 𝑎4 = 1.

4. Didapatkan k=3 (𝑎3 = 0) lalu dikurangkan sampai diperoleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 2 dengan 𝑎̅2 = 1.

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 1, 𝑎̅2 = 1.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 1 + 1 4. 1) + 5/24 20 (91 − (25,5.1 + 22,5.1)) ≤ 1 13 24+ 5 480(43) = 0,9896 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

(38)

4. Kita peroleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 1 dengan 𝑎̅2 = 0. 5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 1, 𝑎̅2 = 0.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 1 + 1 4. 0) + 5/24 20 (91 − (25,5.1 + 22,5.0)) ≤ 1 7 24+ 5 480(65.5) = 0,974 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

4. Didapatkan k=2 (𝑎2 = 0) lalu dikurangkan sampai diperoleh k=1 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎1 = 1 dengan 𝑎̅1 = 0.

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=1 dan 𝑎̅1 = 0.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 1 𝑖=1 + 𝑦1+1 𝑤1+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 1 𝑖=1 ) ≤ 1 (7 24. 0) + 1/4 22,5(91 − (25,5.0)) ≤ 1

(39)

1

90(91) = 1,011 > 1

Karena pertidaksamaan tersebut tidak terpenuhi maka cabang layak untuk dieksplor. Kembali ke langkah 2.

2. Diketahui k=1 dan 𝑎1= 𝑎̅1 = 0, maka diperoleh

𝑎2 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 2−1 𝑖=1 ) 𝑤⁄ 2⌋ = ⌊(91 − (25,5.0)) 22,5⁄ ⌋ = 4 𝑎3 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 3−1 𝑖=1 ) 𝑤⁄ 3⌋ = ⌊(91 − (25,5.0 + 22,5.4)) 20⁄ ⌋ = 0 𝑎4 = ⌊(91 − ∑ 𝑤𝑖𝑎̅𝑖 4−1 𝑖=1 ) 𝑤⁄ 4⌋ = ⌊(91 − (25,5.0 + 22,5.4 + 20.0)) 15⁄ ⌋ = 0⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡

3. Karena ∑𝑚𝑖=1𝑦𝑖𝑎𝑖 = 1 ≤ 𝑀 = 1, maka 𝑀 = 1 dan 𝑎1∗ = 1, 𝑎2∗ = 0 diganti

menjadi 𝑎1 = 0, 𝑎2 = 4, 𝑎3 = 0, 𝑎4 = 0.

4. Didapatkan k=3 (𝑎3 = 0) lalu dikurangkan sampai diperoleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 4 dengan 𝑎̅2 = 3.

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 0, 𝑎̅2 = 3.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1

(40)

(7 24. 0 + 1 4. 3) + 5/24 20 (91 − (25,5.0 + 22,5.3)) ≤ 1 3 4+ 5 480(23,5) = 0,9948 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

4. Kita peroleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 3 dengan 𝑎̅2 = 2. 5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 0, 𝑎̅2 = 2.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 0 + 1 4. 2) + 5/24 20 (91 − (25,5.0 + 22,5.2)) ≤ 1 1 2+ 5 480(46) = 0,9792 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

4. Kita peroleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 2 dengan 𝑎̅2 = 1.

5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan berikut dengan k=2 dan 𝑎̅1 = 0, 𝑎̅2 = 1.

(41)

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1 (𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 0 + 1 4. 1) + 5/24 20 (91 − (25,5.0 + 22,5.1)) ≤ 1 1 4+ 5 480(68,5) = 0,9635 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

4. Kita peroleh k=2 dimana 𝑎𝑘 < 0, maka kita ganti 𝑎2 = 1 dengan 𝑎̅2 = 0. 5. Apakah cabang layak untuk dieksplor?

Karena koefisien 𝑦𝑖 bukan bilangan bulat positif, maka kita uji pertidaksamaan

berikut dengan k=2 dan 𝑎̅1 = 0, 𝑎̅2 = 0.

∑ 𝑦𝑖𝑎̅𝑖 𝑘 𝑖=1 + 𝑦𝑘+1 𝑤𝑘+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 𝑘 𝑖=1 ) ≤ 𝑀 ∑ 𝑦𝑖𝑎̅𝑖 2 𝑖=1 + 𝑦2+1 𝑤2+1(𝑟 − ∑ 𝑤𝑖𝑎̅𝑖 2 𝑖=1 ) ≤ 1 (7 24. 0 + 1 4. 0) + 5/24 20 (91 − (25,5.0 + 22,5.0)) ≤ 1 5 480(91) = 0,9479 ≤ 1

Karena pertidaksamaan tersebut terpenuhi maka cabang tidak layak untuk dieksplor. Kembali ke langkah 4.

(42)

Jadi didapatkan solusi yaitu 𝑎1∗ = 2, 𝑎2∗ = 1, 𝑎3∗ = 0, 𝑎4∗ = 1 dengan 𝑍 = 1, 𝑎1∗ = 1, 𝑎2∗ = 2, 𝑎3∗ = 1, 𝑎4∗ = 0 dengan 𝑍 = 1, dan 𝑎1∗ = 0, 𝑎2∗ = 4, 𝑎3∗ = 0, 𝑎4∗ = 0 dengan 𝑍 = 1. Berikut pohon enumerasi dari solusi-solusi yang sudah didapat diatas.

Gambar 2.3: Pohon enumerasi yang dihasilkan dari contoh 2.2

D. Algoritma Particle Swarm Optimization (PSO)

Algoritma Particle Swarm Optimization (PSO) meniru perilaku sosial organisme (burung atau ikan), dimana perilaku sosial terdiri dari tindakan individu dan pengaruh dari individu-individu lain dalam suatu kelompok. Tiap-tiap makhluk

𝑎1= 3 𝑎2= 0 𝑎3= 0 𝑎4= 0 𝑎1= 2 𝑎2= 1 𝑎3= 0 𝑎4= 1 𝑎2= 0 dipotong 𝑎1= 1 𝑎2= 2 𝑎3= 1 𝑎4= 0 𝑎3= 0 𝑎4= 1 𝑎2= 1 dipotong 𝑎2= 0 dipotong 𝑎1= 0 𝑎2= 4 𝑎3= 0 𝑎4= 0 𝑎2= 3 dipotong 𝑎2= 2 dipotong 𝑎2= 1 dipotong 𝑎2= 0 dipotong 𝑎1= 0 dipotong

(43)

hidup (selanjutnya disebut partikel) akan disebar di ruang pencarian solusi (search space) yang seragam secara acak. Kemudian setiap partikel akan berusaha berpindah posisi untuk mencari posisi lain yang dapat menghasilkan fungsi obyektif atau tujuan yang lebih baik. Setiap pergerakan partikel akan dipandu oleh dua hal, posisi terbaik yang pernah ditempati partikel tersebut dan posisi terbaik yang pernah ditemui oleh seluruh partikel. Sehingga, partikel-partikel tersebut akan bekerja sama dalam mencari solusi optimal.

Kata partikel menunjukkan, misalnya, seekor burung dalam kawanan burung. Setiap individu atau partikel berperilaku secara terdistribusi dengan cara menggunakan kecerdasannya (intelligence) sendiri dan juga dipengaruhi perilaku kelompok kolektifnya. Dengan demikian, jika satu partikel atau seekor burung menemukan jalan yang tepat atau pendek menuju ke sumber makanan, sisa kelompok yang lain juga akan dapat segera mengikuti jalan tersebut meskipun lokasi mereka jauh di kelompok tersebut.

Dalam algoritma PSO, kawanan diasumsikan mempunyai ukuran tertentu dengan setiap partikel posisi awalnya terletak di suatu lokasi yang acak dalam ruang multidimensi. Setiap partikel diasumsikan memiliki dua karakteristik: posisi dan kecepatan. Setiap partikel bergerak dalam ruang berdasarkan informasi yang diterima mengenai posisi yang baik tersebut. Sebagai contoh, misalnya perilaku burung-burung dalam kawanan burung. Meskipun setiap burung mempunyai keterbatasan dalam hal kecerdasan, biasanya ia akan mengikuti kebiasaan (rule) seperti berikut:

(44)

2. Burung tersebut akan mengarahkan terbangnya ke arah rata-rata keseluruhan burung.

3. Burung akan memposisikan diri dengan rata-rata posisi burung yang lain dengan menjaga jarak sehingga jarak antar burung dalam kawanan itu tidak terlalu jauh.

Dengan demikian, perilaku kawanan burung akan didasarkan pada kombinasi dari 3 faktor simpel berikut:

1. Kohesi – terbang bersama 2. Separasi – jangan terlalu dekat

3. Penyesuaian (alignment) – mengikuti arah bersama Jadi PSO dikembangkan dengan berdasarkan pada model berikut :

1. Ketika seekor burung mendekati target atau makanan (atau bisa minimum atau maksimum dari nilai suatu fungsi tujuan) secara cepat mengirim informasi kepada burung-burung yang lain dalam kawanan tersebut.

2. Burung yang lain akan mengikuti arah menuju ke makanan tetapi tidak secara langsung.

3. Ada komponen yang tergantung pada pikiran setiap burung, yaitu memorinya tentang apa yang sudah dilewati pada waktu sebelumnya.

Pada algoritma PSO, pencarian solusi dilakukan oleh suatu populasi yang terdiri dari beberapa partikel. Populasi dibangkitkan secara acak (random) dengan batasan nilai terkecil dan terbesar. Setiap partikel merepresentasikan posisi atau

(45)

solusi dari permasalahan yang dihadapi. Setiap partikel melakukan pencarian solusi yang optimal dengan melintasi ruang pencarian (search space). Hal ini dilakukan dengan cara setiap partikel melakukan penyesuaian terhadap posisi partikel terbaik dari partikel tersebut (local best) dan penyesuaian terhadap posisi partikel terbaik dari seluruh kawanan (global best) selama melintasi ruang pencarian. Jadi, penyebaran pengalaman atau informasi terjadi di dalam partikel itu sendiri dan antara suatu partikel dengan partikel terbaik dari seluruh kawanan selama proses pencarian solusi. Setelah itu, dilakukan proses pencarian untuk mencari posisi terbaik setiap partikel dalam sejumlah iterasi tertentu sampai didapatkan posisi yang relatif tetap (steady) dengan kata lain nilai fungsi mulai konvergen atau iterasi telah mencapai batas yang telah ditetapkan. Pada setiap iterasi, setiap solusi yang direpresentasikan oleh posisi partikel dievaluasi performanya dengan cara memasukkan solusi tersebut ke dalam fungsi kesesuaian (fitness function).

Setiap partikel diperlakukan seperti sebuah titik pada suatu dimensi ruang tertentu. Kemudian terdapat dua faktor yang memberikan karakter terhadap status partikel pada ruang pencarian, yaitu posisi partikel dan kecepatan partikel. Berikut ini merupakan formulasi matematis yang menggambarkan posisi dan kecepatan partikel pada suatu dimensi ruang tertentu:

𝑋𝑖(𝑡) = 𝑥

1𝑖(𝑡), 𝑥2𝑖(𝑡), ..., 𝑥𝑁𝑖 (𝑡) (2.6)

𝑉𝑖(𝑡) = 𝑣1𝑖(𝑡), 𝑣

2𝑖(𝑡), ..., 𝑣𝑁𝑖 (𝑡) (2.7)

dengan X = posisi partikel, V = kecepatan partikel, i = indeks partikel, t = iterasi ke-t, dan N = ukuran dimensi ruang. Adapun model matematika yang

(46)

menggambarkan mekanisme pembaruan status partikel kecepatan maupun posisi (updating velocity and position), adalah sebagai berikut:

𝑉𝑖(𝑡) = 𝑉𝑖(𝑡 − 1) + 𝑐1. 𝑟1. (𝑋

𝐿𝑖 − 𝑋𝑖(𝑡 − 1)) + 𝑐2. 𝑟2. (𝑋𝐺− 𝑋𝑖(𝑡 − 1)) (2.8)

𝑋𝑖(𝑡) = 𝑉𝑖(𝑡) + 𝑋𝑖(𝑡 − 1) (2.9)

dengan 𝑋𝐿𝑖 = 𝑥𝐿1𝑖 , 𝑥𝐿2𝑖 , ..., 𝑥𝐿𝑁𝑖 merepresentasikan local best dari partikel ke-i (yang selanjutnya akan dke-isebut sebagake-i partke-icle best). Sedangkan 𝑋𝐺 = 𝑥𝐺1, 𝑥𝐺2,

..., 𝑥𝐺𝑁 merepresentasikan global best dari seluruh kawanan. Sedangkan 𝑐1 dan 𝑐2 adalah suatu konstanta yang bernilai positif yang biasanya disebut faktor pembelajaran (learning factor) atau faktor percepatan (acceleration factor). Kemudian 𝑟1 dan 𝑟2 adalah suatu bilangan acak (random) yang bernilai antara 0 sampai 1. Persamaan (2.8) digunakan untuk menghitung kecepatan partikel yang baru berdasarkan kecepatan sebelumnya, jarak antara posisi saat ini dengan posisi terbaik partikel (particle best), dan jarak antara posisi saat ini dengan posisi terbaik kawanan (global best). Kemudian partikel terbang menuju posisi yang baru berdasarkan persamaan (2.9). Setelah algoritma PSO ini dijalankan dengan sejumlah iterasi tertentu hingga mencapai kriteria pemberhentian, maka akan didapatkan solusi yang terletak pada posisi terbaik kawanan (global best).

Model ini akan disimulasikan dalam ruang dengan dimensi tertentu dengan sejumlah iterasi sehingga di setiap iterasi, posisi partikel akan semakin mengarah ke target yang dituju (minimasi atau maksimasi fungsi). Ini dilakukan hingga maksimum iterasi dicapai atau bisa juga digunakan kriteria penghentian yang lain yaitu nilai fungsi obyektif atau tujuan sudah konvergen ke nilai optimum.

(47)

Proses untuk mencari nilai minimum menggunakan algoritma PSO yaitu sebagai berikut :

1. Inisialisasi sekumpulan partikel secara acak atau random (setiap partikel merepresentasikan solusi yang mungkin untuk masalah optimasi). 2. Inisialisasi posisi dari setiap partikel (𝑋𝑖) dan kecepatan dari setiap

partikel (𝑉𝑖).

3. Hitung nilai kesesuaian dari setiap partikel 𝐹𝑖 berdasarkan formula dan model yang telah ditentukan sesuai dengan masalah optimasinya. 4. Untuk setiap partikel, bandingkan nilai kesesuaian 𝐹𝑖 dengan nilai

terbaiknya yang telah dicapai 𝑋𝐿𝑖 (particle best), jika 𝐹𝑖< 𝑋𝐿𝑖, maka 𝑋𝐿𝑖 diganti dengan 𝐹𝑖.

5. Untuk setiap partikel, bandingkan nilai kesesuaian 𝐹𝑖 dengan nilai

terbaik yang dicapai dalam populasi 𝑋𝐺 (global best), jika 𝐹𝑖< 𝑋

𝐺, maka

𝑋𝐺 diganti dengan 𝐹𝑖.

6. Berdasarkan bagian 4 dan 5, kecepatan (𝑉𝑖) dan posisi dari partikel (𝑋𝑖) diubah.

Rumus pembaruan kecepatan (𝑉𝑖) :

𝑉𝑖(𝑡) = 𝑉𝑖(𝑡 − 1) + 𝑐1. 𝑟1. (𝑋

𝐿𝑖 − 𝑋𝑖(𝑡 − 1)) + 𝑐2. 𝑟2. (𝑋𝐺 − 𝑋𝑖(𝑡 − 1))

Adapun rumus pembaruan posisi (𝑋𝑖) adalah 𝑋𝑖(𝑡) = 𝑋𝑖(𝑡 − 1) + 𝑉𝑖(𝑡).

7. Jika telah mencapai kondisi akhir (mencapai nilai iterasi optimum atau perulangan telah mencapai nilai yang konvergen ke nilai fungsi

(48)

minimum) maka perulangan berhenti dan nilai optimumnya didapatkan namun jika belum maka diulangi pada nomor 3.

Berikut Pseudo code dari algoritma PSO : For setiap partikel

Inisialisasi partikel End

Repeat

For setiap partikel

Hitung nilai kesesuaian

If nilai kesesuaian baru lebih baik daripada nilai kesesuian lama Perbarui nilai kesesuian dari partikel tersebut

End End

Pilih partikel dengan nilai kesesuaian terbaik diantara semua partikel tetangganya dan simpan nilai kesesuaian terbaik tersebut

For setiap partikel

Hitung kecepatan partikel menggunakan rumus pertama di atas Perbarui posisi pertikel menggunakan rumus kedua di atas End

(49)

Berikut ini adalah diagram alir dari algoritma PSO:

Tidak

Ya

Mulai

Bangkitkan parameter dari PSO

Inisialisasi posisi, kecepatan, dan ruang setiap partikel

Evaluasi nilai kesesuian terbaik dari tiap partikel, dan pilih Pbest dan Gbest

Hitung kembali nilai kesesuaian tiap partikel dan perbarui Pbest dan Gbest

Apakah kriteria terpenuhi?

Cetak nilai optimal dari variabel Bangkitkan iterasi dari t = 1

(50)

Cara Kerja Algoritma Particle Swarm Optimization Misalkan kita mempunyai fungsi berikut:

min f(x)

dimana 𝑥(𝐵)≤ 𝑥 ≤ 𝑥(𝐴)

Prosedur PSO dapat dijabarkan dengan langkah-langkah sebagai berikut: 1. Asumsikan bahwa ukuran kelompok atau kawanan (jumlah partikel)

adalah N. Untuk mengurangi jumlah evaluasi fungsi yang diperlukan untuk menemukan solusi, sebaiknya ukuran N tidak terlalu besar, tetapi juga tidak terlalu kecil, agar ada banyak kemungkinan posisi menuju solusi terbaik atau optimal. Jika terlalu kecil, sedikit kemungkinan menemukan posisi partikel yang baik. Terlalu besar juga akan membuat perhitungan jadi panjang. Biasanya digunakan ukuran kawanan adalah 20 sampai 30 partikel.

2. Bangkitkan populasi awal 𝑥 dengan rentang 𝑥(𝐵) dan 𝑥(𝐴) secara random sehingga didapat 𝑥1, 𝑥2, . . . , 𝑥𝑁. Setelah itu, untuk mudahnya, posisi partikel j dan kecepatannya pada iterasi i dinotasikan sebagai 𝑥𝑗𝑖 dan 𝑣𝑗𝑖. Sehingga partikel-partikel awal ini dinotasikan 𝑥10, 𝑥20, ..., 𝑥𝑁0 dan kecepatan-kecepatan awal ini dinotasikan 𝑣10, 𝑣20, ..., 𝑣𝑁0. Vektor 𝑥𝑗0, (𝑗 = 1,2, … , 𝑁) disebut vektor koordinat dari partikel dan vektor 𝑣𝑗0, (𝑗 = 1,2, … , 𝑁) disebut vektor koordinat dari kecepatan. Evaluasi nilai fungsi tujuan untuk setiap partikel dan nyatakan dengan f[𝑥10], f[𝑥20], ..., f[𝑥𝑁0].

(51)

3. Hitung kecepatan dari semua partikel. Semua partikel bergerak menuju titik optimal dengan suatu kecepatan. Awalnya semua kecepatan dari partikel diasumsikan sama dengan nol. Set iterasi 𝑖 = 1.

4. Pada iterasi ke-i, temukan 2 parameter penting untuk setiap partikel j, yaitu:

a. Nilai terbaik sejauh ini dari 𝑥𝑗𝑖 (koordinat partikel j pada iterasi i) dan untuk memudahkan penulisan, nyatakan saja sebagai Pbest,j,

dengan nilai fungsi obyektif paling rendah (kasus minimasi), f[𝑥𝑗𝑖], yang ditemui sebuah partikel j pada semua iterasi sebelumnya. Nilai terbaik untuk semua partikel 𝑥𝑗𝑖 yang ditemukan sampai iterasi ke-i, kita tuliskan saja sebagai Gbest, dengan nilai fungsi tujuan paling

kecil atau minimum diantara semua partikel untuk semua iterasi sebelumnya, f[𝑥𝑗𝑖].

b. Hitung kecepatan partikel j pada iterasi ke-i dengan rumus sebagai berikut:

𝑣𝑗𝑖 = 𝑣𝑗𝑖−1+ 𝑐1. 𝑟1. (Pbest,j⁡–⁡𝑥𝑗𝑖−1) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥𝑗𝑖−1),⁡dengan

𝑗 = 1,2, … , 𝑁

dimana 𝑐1 dan 𝑐2 masing-masing adalah learning rates untuk kemampuan individu (cognitive) dan pengaruh sosial (group), dan 𝑟1 dan 𝑟2 bilangan acak (random) yang berdistribusi seragam

(uniform) dalam interval 0 dan 1. Jadi parameter 𝑐1 dan 𝑐2 menunjukkan bobot dari memori (position) sebuah partikel terhadap memori (position) dari kelompok (swarm). Nilai dari 𝑐1 dan 𝑐2

(52)

adalah 2 sehingga partikel-partikel akan mendekati target sekitar setengah selisihnya.

c. Hitung posisi atau koordinat partikel j pada iterasi ke-i dengan cara 𝑥𝑗𝑖 = 𝑥𝑗𝑖−1 + 𝑣𝑗𝑖; j = 1, 2, ..., N

Evaluasi nilai fungsi tujuan untuk setiap partikel dan nyatakan sebagai f[𝑥1𝑖], f[𝑥2𝑖], ..., f[𝑥𝑁𝑖 ].

5. Cek apakah solusi yang sekarang sudah konvergen. Jika posisi semua partikel menuju ke satu nilai yang sama, maka ini disebut konvergen. Jika belum konvergen maka langkah 4 diulang dengan memperbarui iterasi 𝑖⁡ = ⁡𝑖⁡ + ⁡1, dengan cara menghitung nilai baru dari Pbest,j dan Gbest. Proses iterasi ini dilanjutkan sampai semua partikel menuju ke satu

titik solusi yang sama. Biasanya akan ditentukan dengan kriteria penghentian (stopping criteria), misalnya jumlah selisih solusi sekarang dengan solusi sebelumnya sudah sangat kecil.

Contoh 2.3

Kerjakan soal berikut:

min 𝑓(𝑥) = (100⁡– ⁡𝑥)2 dengan

60 ≤ x ≤ 120

Sebelum masuk ke dalam langkah-langkah pembahasan algoritma, ada beberapa konstanta atau parameter yang harus diketahui, yaitu: Tentukan dimensi permasalahan. Diasumsikan dalam kasus ini, dimensi bernilai 1 karena ada 1

(53)

variabel yang akan dicari nilainya. Kemudian tentukan jumlah partikel yang digunakan dalam perhitungan. Diasumsikan dalam kasus ini, jumlah partikel yang digunakan adalah 4 partikel. Tentukan jumlah iterasi yang digunakan oleh setiap partikel untuk melakukan proses. Diasumsikan dalam kasus ini, jumlah iterasi yang digunakan adalah 3 kali. Tentukan total posisi yang harus dicapai. Semua solusi yang ditemukan oleh masing-masing individu harus berjumlah sebanyak variabel ini. Diasumsikan dalam kasus ini, total nilai yang harus dicapai adalah sesuai fungsi obyektif atau fungsi tujuan dan memenuhi batasan nilai yang diberikan yaitu bernilai antara 60 dan 120. Tentukan kecepatan awal untuk perpindahan posisi partikel dalam setiap proses. Diasumsikan dalam kasus ini nilai kecepatan awal adalah 0. Kemudian bobot sosial dalam contoh soal ini diasumsikan 𝑐1 = 𝑐2 = 1.

Langkah-langkah penggunaan algoritma ini adalah

1. Inisialisasi data, dengan jumlah partikel 𝑁 = 4 seperti yang sudah ditentukan sebelumnya, didapat populasi awal secara acak (random) misalkan:

𝑥10 = 80, 𝑥20 = 90, 𝑥30 = 110, 𝑥40 = 75.

2. Hitung nilai fungsi untuk setiap partikel ⁡𝑥𝑗0 untuk 𝑗 = 1, 2, 3, 4 dan nyatakan dengan:

(54)

𝑓(𝑥20) = 𝑓(90) = 100, 𝑓(𝑥30) = 𝑓(110) = 100, 𝑓(𝑥40) = 𝑓(75) = 625.

3. Seperti yang sudah dipaparkan di atas, ditentukan kecepatan awal 𝑣10 = ⁡𝑣20 = 𝑣30 = 𝑣40 = 0 dan tetapkan iterasi pertama yaitu 𝑖 = 1.

4. Selanjutnya ditemukan nilai terbaik lokal sejauh ini yang merupakan posisi partikel terbaik dari partikel tersebut alias 𝑃𝑏𝑒𝑠𝑡,𝑗 serta nilai terbaik global yang merupakan posisi partikel terbaik dari seluruh kawanan (𝐺𝑏𝑒𝑠𝑡). 𝑃𝑏𝑒𝑠𝑡,1 = 80,

𝑃𝑏𝑒𝑠𝑡,2 = 90, 𝑃𝑏𝑒𝑠𝑡,3 = 110,

𝑃𝑏𝑒𝑠𝑡,4 = 75, 𝐺𝑏𝑒𝑠𝑡 = 90.

5. Hitung 𝑣𝑗𝑖 dengan 𝑐1 = 𝑐2 = 1 dan misalkan nilai bilangan acak (random)

yang didapat 𝑟1 = 0.4 dan 𝑟2 = 0.5 dengan rumus:

𝑣𝑗𝑖 = 𝑣𝑗𝑖−1+ 𝑐1. 𝑟1. (Pbest,j⁡–⁡𝑥𝑗𝑖−1) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥𝑗𝑖−1) diperoleh: 𝑣11 = 𝑣10+ 𝑐1. 𝑟1. (Pbest,1⁡–⁡𝑥10) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥10) = 0 + 0.4(80 − 80) + 0.5(90 − 80) = 5 𝑣21 = 𝑣20+ 𝑐1. 𝑟1. (Pbest,2⁡–⁡𝑥20) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥20) = 0 + 0.4(90 − 90) + 0.5(90 − 90) = 0

(55)

𝑣31 = 𝑣

30+ 𝑐1. 𝑟1. (Pbest,3⁡–⁡𝑥30) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥30) = 0 + 0.4(110 −

110) + 0.5(90 − 110) = −10

𝑣41 = 𝑣40+ 𝑐1. 𝑟1. (Pbest,4⁡–⁡𝑥40) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥40) = 0 + 0.4(75 − 75) +

0.5(90 − 75) = 7.5

Sehingga nilai 𝑥𝑗𝑖 sebagai posisi partikel yang baru adalah: 𝑥11 = 80 + 5 = 85,

𝑥21 = 90 + 0 = 90,

𝑥31 = 110 − 10 = 100, 𝑥41 = 75 + 7.5 = 82.5

6. Hitung nilai fungsi sekarang pada partikel ⁡𝑥𝑗1 untuk 𝑗 = 1, 2, 3, 4 𝑓(𝑥11) = 𝑓(85) = 225,

𝑓(𝑥21) = 𝑓(90) = 100, 𝑓(𝑥31) = 𝑓(100) = 0, 𝑓(𝑥41) = 𝑓(82.5) = 306.25

Sedangkan pada iterasi sebelumnya kita dapatkan 𝑓(𝑥10) = 𝑓(80) = 400,

𝑓(𝑥20) = 𝑓(90) = 100, 𝑓(𝑥30) = 𝑓(1110) = 100, 𝑓(𝑥40) = 𝑓(75) = 625

7. Nilai 𝑓(𝑥𝑗𝑖) dari iterasi sebelumnya tidak ada yang lebih baik sehingga 𝑃𝑏𝑒𝑠𝑡,𝑗 baru untuk masing-masing partikel sama dengan nilai 𝑥𝑗1nya.

(56)

𝑃𝑏𝑒𝑠𝑡,2 = 90, 𝑃𝑏𝑒𝑠𝑡,3 = 100,

𝑃𝑏𝑒𝑠𝑡,4 = 82.5, 𝐺𝑏𝑒𝑠𝑡 = 100.

Apakah solusi 𝑥𝑗1 sudah konvergen, dimana nilai dari masing-masing 𝑥𝑗1nya sudah dekat? Belum. Maka, lanjutkan ke iterasi berikutnya yaitu 𝑖 = 2. 8. Hitung kecepatan baru dan misalkan nilai bilangan acak (random)

selanjutnya yang didapat adalah 𝑟1 = 0.3 dan 𝑟2 = 0.6 maka diperoleh: 𝑣12 = 𝑣11+ 𝑐1. 𝑟1. (Pbest,1⁡–⁡𝑥11) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥11) = 5 + 0.3(85 − 85) + 0.6(100 − 85) = 14 𝑣22 = 𝑣21+ 𝑐1. 𝑟1. (Pbest,2⁡–⁡𝑥21) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥21) = 0 + 0.3(90 − 90) + 0.6(100 − 90) = 6 𝑣32 = 𝑣 31+ 𝑐1. 𝑟1. (Pbest,3⁡–⁡𝑥31) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥31) = −10 + 0.3(100 − 100) + 0.6(100 − 100) = −10 𝑣42 = 𝑣41+ 𝑐1. 𝑟1. (Pbest,4⁡–⁡𝑥41) + 𝑐2. 𝑟2. (Gbest⁡–⁡𝑥41) = 7.5 + 0.3(82.5 − 82.5) + 0.6(100 − 82.5) = 18

Sehingga nilai 𝑥𝑗𝑖 sebagai posisi partikel yang baru adalah: 𝑥12 = 85 + 14 = 99,

𝑥22 = 90 + 6 = 96, 𝑥32 = 100 − 10 = 90, 𝑥42 = 82.5 + 18 = 100.5

(57)

𝑓(𝑥12) = 𝑓(99) = 1,

𝑓(𝑥22) = 𝑓(96) = 16, 𝑓(𝑥32) = 𝑓(90) = 100, 𝑓(𝑥42) = 𝑓(100.5) = 0.25

10. Jika dibandingkan dengan nilai 𝑓(𝑥𝑗𝑖) dari iterasi sebelumnya, ada nilai yang lebih baik dari nilai 𝑓(𝑥𝑗𝑖) sekarang yaitu 𝑓(𝑥31) = 0, sehingga 𝑃𝑏𝑒𝑠𝑡,3 = 100, dan 𝐺𝑏𝑒𝑠𝑡 akan dicari dari 𝑚𝑖𝑛⁡{1,16,0,0.25} = 0 yang

dicapai pada 𝑥31 = 100. Sehingga untuk iterasi berikutnya, 𝑃 𝑏𝑒𝑠𝑡 =

{99,96,100,100.5} dan 𝐺𝑏𝑒𝑠𝑡 = 100.

Cek kembali, apakah solusi sudah konvergen? Jika belum konvergen, set 𝑖 = 3, masuk ke iterasi berikutnya.lanjutkan ke langkah berikutnya dengan menghitung kecepatan 𝑣𝑗𝑖 baru dimana 𝑖 = 3⁡; ⁡𝑗 = 1,2,3,4 dan ulangi langkah-langkah selanjutnya sampai mencapai suatu nilai yang konvergen.

Hasil dari langkah-langkah di atas dapat disajikan dalam bentuk tabel:

𝑖 𝑥𝑗𝑖 𝑣𝑗𝑖 𝑓(𝑥𝑗𝑖) 𝑃𝑏𝑒𝑠𝑡,𝑗 𝐺𝑏𝑒𝑠𝑡 0 𝑥10 = 80 𝑥20 = 90 𝑥30 = 110 𝑥40 = 75 𝑣10 = 0 𝑣20 = 0 𝑣30 = 0 𝑣40 = 0 𝑓(𝑥10) = 𝑓(80) = 400 𝑓(𝑥20) = 𝑓(90) = 100 𝑓(𝑥30) = 𝑓(110) = 100 𝑓(𝑥40) = 𝑓(75) = 625 𝑃𝑏𝑒𝑠𝑡,1 = 80 𝑃𝑏𝑒𝑠𝑡,2 = 90 𝑃𝑏𝑒𝑠𝑡,3 = 110⁡ 𝑃𝑏𝑒𝑠𝑡,4 = 75 90 1 𝑥11 = 85 𝑥21 = 90 𝑣11 = 5 𝑣21 = 0 𝑓(𝑥11) = 𝑓(85) = 225 𝑓(𝑥21) = 𝑓(90) = 100 𝑃𝑏𝑒𝑠𝑡,1= 85 𝑃𝑏𝑒𝑠𝑡,2= 90

(58)

𝑥31 = 100 𝑥41 = 82.5 𝑣31 = −10 𝑣41 = 7.5 𝑓(𝑥31) = 𝑓(100) = 0 𝑓(𝑥41) = 𝑓(82.5) = 306.25 𝑃𝑏𝑒𝑠𝑡,3= 100⁡ 𝑃𝑏𝑒𝑠𝑡,4= 82.5 100 2 𝑥12 = 99 𝑥22 = 96 𝑥32 = 90 𝑥42 = 100.5 𝑣12 = 14 𝑣22 = 6 𝑣32 = −10 𝑣42 = 18 𝑓(𝑥12) = 𝑓(99) = 1 𝑓(𝑥22) = 𝑓(96) = 16 𝑓(𝑥32) = 𝑓(90) = 100 𝑓(𝑥42) = 𝑓(100.5) = 0.25 𝑃𝑏𝑒𝑠𝑡,1= 99 𝑃𝑏𝑒𝑠𝑡,2= 96 𝑃𝑏𝑒𝑠𝑡,3= 100⁡ 𝑃𝑏𝑒𝑠𝑡,4= 100.5 100

Tabel 2.1: Tabel hasil perhitungan PSO secara manual untuk contoh 2.3

Dan berikut adalah hasil perhitungan yang diproses dengan menggunakan MATLAB:

run =

1

Iteration Best particle Objective fun

1 4 12.4323 2 4 12.4323 3 4 12.4323 4 1 6.3561 --- run = 2

(59)

Iteration Best particle Objective fun 1 4 0.0000 2 4 0.0000 3 4 0.0000 4 4 0.0000 --- ********************************************************* Final Results--- bestfun = 0 bestrun = 2 best_variables = 100 *********************************************************

(60)

Berikut adalah grafik konvergensi yang ditampilkan dari best run:

Gambar 2.3: Gambar grafik konvergensi PSO pada run ke 2

Dalam implementasinya, ditemukan bahwa kecepatan partikel dalam PSO standar diperbarui (update) terlalu cepat dan nilai minimum fungsi tujuan yang dicari sering terlewati. Oleh karena itu, kemudian dilakukan modifikasi atau perbaikan terhadap algoritma PSO standar. Perbaikan itu berupa penambahan suatu bobot inersia 𝑤 untuk mengurangi kecepatan pada formula pembaruan (update) kecepatan seperti yang telah disinggung sebelumnya.

Bobot inersia ini diusulkan oleh Yuhui Shi dan Erberhart pada tahun 1998 untuk meredam kecepatan selama iterasi, yang memungkinkan kawanan burung konvergen dalam artian menuju titik target secara lebih akuratdan efisien dibanding

Gambar

Gambar 1.1: Diagram alir pencarian solusi masalah pemotongan rol kertas  dengan algoritma PSO
Gambar 2.1: Diagram alir masalah Knapsack
Gambar 2.3: Pohon enumerasi yang dihasilkan dari contoh 2.2
Tabel 2.1: Tabel hasil perhitungan PSO secara manual untuk contoh 2.3
+7

Referensi

Dokumen terkait

However, if you want more control over the title or if you simply want to display an image or any other view up on the navigation bar, you can use the titleView property of the

Berdasarkan tabel 2 dapat dilihat bahwa kategori pengetahuan responden sebelum dilakukan intervensi (4,3%) termasuk kategori sangat tidak baik, setelah intervensi tidak

Melakukan kerja sama yang baik antar guru satu dengan guru lainnya baik staf, kepala sekolah dan pegawai lainnya dalam menyelesaikan masalah yang sedang dihadapi

Pengaruh pemberian kombinasi konsentrasi ekstrak daun kelor ( Moringa oleifera ) dengan pupuk walne dalam media kultur terhadap laju pertumbuhan dan kandungan karotenoid

JPPI (Jaringan Pemantau Pendidikan Indonesia mencatat setidaknya ada tujuh masalah pendidikan yang harus diselesaikan pemerintah untuk mewujudkan Nawacita di

Corporate social responsibility (CSR) merupakan komitmen bisnis untuk berkontribusi dalam perkembangan ekonomi yang berkelanjutan dengan memperhatikan tanggung jawab

Persentase Penurunan Jumlah Siswa yang Miskonsepsi Tiap Konsep Untuk mengetahui persentase penurunan jumlah miskonsepsi siswa tiap konsep setelah dilakukan remediasi menggunakan

Guru memperoleh kesempatan untuk merefleksikan pengembangan kegiatan asesmen untuk proses belajar mengajar (PBM) matematika di sekolah melalui berbagai macam metode