0% menganggap dokumen ini bermanfaat (0 suara)
238 tayangan31 halaman

Metaheuristik untuk TSP dan VRP dengan MATLAB

Dokumen tersebut membahas tentang permasalahan optimasi yang terkait dengan Travelling Salesman Problem (TSP), Vehicle Routing Problem (VRP), dan Resource-Constrained Project Scheduling Problem (RCPSP). Dokumen juga menjelaskan beberapa metaheuristik seperti simulated annealing, particle swarm optimization, dan heuristik lainnya untuk memecahkan permasalahan optimasi tersebut.

Diunggah oleh

Wemar Adhie
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
238 tayangan31 halaman

Metaheuristik untuk TSP dan VRP dengan MATLAB

Dokumen tersebut membahas tentang permasalahan optimasi yang terkait dengan Travelling Salesman Problem (TSP), Vehicle Routing Problem (VRP), dan Resource-Constrained Project Scheduling Problem (RCPSP). Dokumen juga menjelaskan beberapa metaheuristik seperti simulated annealing, particle swarm optimization, dan heuristik lainnya untuk memecahkan permasalahan optimasi tersebut.

Diunggah oleh

Wemar Adhie
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

BKTI-PII

Metaheuristik, Implementasi dengan


Matlab
Budi Santosa
Industrial Engineering Department
Institut Teknologi Sepuluh Nopember
(ITS) Surabaya- Indonesia
Travelling Salesman Problem (TSP)

TSP PROBLEM : diberikan N kota, dan matriks jarak antar kota,


temukan sebuah rute yang:
1. Mengunjungi setiap kota sekali dan hanya sekali
2. Meminimasi jarak total

• Problem is NP-hard

• Problem optimasi klasik


Permasalahan ini mempunyai tujuan untuk
Vehicle Routing Problem menentukan rute perjalanan dari masing-masing
kendaraan, dengan ketentuan:
(1) setiap rute berangkat dari depo dan kembali ke
depo,
(2) setiap pelanggan dikunjungi tepat satu kali oleh
hanya satu kendaraan,
(3) total barang yang dikirim ke pelanggan untuk
setiap rute tidak melebihi dari kapasitas angkut
kendaraan,
(4) total waktu operasi masing-masing kendaraan,
sudah termasuk waktu transportasi dan waktu
pelayanan, tidak melebihi waktu operasi yang
diijinkan, dan
(5) total ongkos keseluruhan rute diminimumkan.
Penjadwalan proyek dengan sumberdaya terbatas atau
Resource-Constrained Project Scheduling Problem (RCPSP)
Klasifikasi Problem optimasi
Heuristik

Heuristik (heuristics) atau aproksimasi adalah suatu cara


yang dirancang untuk memecahkan suatu masalah tertentu
dengan langkah-langkah yang disusun tanpa didasari
teori-teori optimasi atau pembuktian analitik,
biasanya menghasilkan solusi yang bagus, dalam arti
optimal atau mendekati optimal dengan waktu komputasi
yang reasonable.

6
Metaheuristik

A metaheuristic adalah metoda pendekatan untuk menyelesaikan


problem optimasi (optimization problems) secara general (bukan
untuk problem spesifik), dimana biasanya ada mekanisme untuk keluar
dari jebakan local optimum dengan tanpa didasari oleh teori optimasi
atau pembuktian analitik
Heuristic/steepest descent

8/28
Random Search

9/28
Simulated Annealing

Phase 1: Hot (Random)


Phase 2: Warm (Bias down)
Phase 3: Cold (Descent)
(Descend)

10/28
2D packing – an example
2D packing – an example

1 2 3 4 5

Sequence = 1,2,3,4,5

X
2D packing – an example

4 3 5
1 2

Sequence = 1, 4, 3, 2, 5


That was easy!

• For 5 pieces there are 5 x 4 x 3 x 2 x 1 different orderings for the


placement

• = 120 combinations

• Piece of cake for a computer to try each combination in (nearly) no


time at all
That’s not so easy…
• 50 pieces means 50 x 49 x…..2 x 1 different
orderings
•=
30414093201713378043612608166064768844377
641568960512000000000000
• That’s quite a lot really. If a computer could
evaluate 1000 orderings per second it’d still take
approximately:
• 96442456880115988215412887386050129516671
8720476931506 years! (and that’s without being
allowed to rotate the pieces)
Particel Swarm Optimization

• Particle swarm optimization (PSO) is a population-based


optimization stochastic technique inspired by the
behavior of swarm of bird flocks or fish scooling.
• elemen
Particle mewakili individu/solusi
swarm berarti grup/kawanan
optimization
PSO

• Individual – particle

• Atribute of individu
• Position
• Velocity

• Each particle has its own best position (cognitive aspect)

• Swarm has best position (global best/social aspect), which best of


individuals’s best position
PSO

• Each particle keeps track of its coordinates in the solution


space which are associated with the best solution (fitness) that
has achieved so far by that particle. This value is called
personal best , pbest.
• Another best value that is tracked by the PSO is the best value
obtained so far by any particle in the neighborhood of that
particle. This value is called gbest.
• The basic concept of PSO lies in accelerating each particle
toward its pbest and the gbest locations, with a random
weighted accelaration at each time step
Geometry of PSO
Position of Posiion of Global
Particle social Best

Initial particle
velocity

New particle velocity

Position of Personal
Best
General PSO Algorithm

Start

Initialize particles with random position


and velocity vectors.
particles exhaust

For each particle’s position (p)


Loop until all

evaluate fitness

Loop until max iter


If fitness(p) better than
fitness(pbest) then pbest= p

Set best of pBests as gBest

Update particles velocity (eq. 1) and


position (eq. 3)

Stop: giving gBest, optimal solution.


Initialization. Positions and velocities
• Setiap partikel mencoba untuk memodifikasi posisinya dengan informasi berikut :
 Posisi sekarang,
 velocities sekarang,
 jarak antara posisi sekarang dengan Pbest,
 jarak antara posisi sekarang dengan Gbest
• Modifikasi posisi partikel dilakukan secara matematis dengan persamaan berikut:

• Vik+1 = Vik +c1 rand1(…) x (pbesti-xik) + c2 rand2(…) x (gbest-xik)


dimana, vik : velocity suatu partikel i pada iterasi k,

• cj : faktor bobot,

• rand : uniformly distributed random number between 0 and 1,


xik : posisi sekarang partikel i pada iterasi k,
pbesti :best position dari artikel i,
gbest: best position dari group/swarm.

Update posisi: xik+1 = xik +vik+1


• Advantages
–Insensitive to scaling of design variables
–Simple implementation
–Very few algorithm parameters
–Very efficient global search algorithm

•Disadvantages
–too fast to convergence to local
Implementation
• Bangkitkan initial population yang ditandai dengan position dan velocity dari
setiap particle secara random.
• Evaluasi fitness dari setiap particle berdasar posisinya
• Temukan suatu particle dengan fitness dan tetapkan sebagai Gbest.
• Untuk setiap particle temukan Pbest, untuk Langkah awal Pbest sama
dengan posisi awal
• Ulang sampai stopping criteria dipenuhi
1. Dengan Pbest dan Gbest update velocity untuk setiap particle
2. Dengan new velocity, update posisi untuk setiap particle
3. Evaluasi fitness dari setiap particle
4. Temukan particle dengan best fitness, dan tetapkan sebagai as Gbest.
• Untuk setiap particle tentukan Pbest dengan membandingkan posisi sekarang
dengan posisi sebelumnya
5. Cek stopping criteria. Jika ya stop, sebaliknya ke Langkah 1
Contoh
Vi1 = Vi0 +1 rand1 x (pbesti-xi0) + 1 rand2 x (gbest-xi0)
• Min f(x)= (100-x)2
X1=x0+v1

• Initialization : c1,c2, N, X0, v0 misal N=5, c1=c2=1 rand1=0.1,


rand2=0.3
89 121 0 89 3.9 92.9

92 64 0 92 3 95

X0= 105 f(X)= 25 v0= 0 pbest= 105 v1= -0.9 x1= 104.1

95 25 0 95 2.1 97.1

102 4 0 102 0 102

Gbest=102
89 121 92.9 50.41 92.9

92 64 95 25 95

x0= 105 f(x0)= 25 x1= 104.1 f(x1)= 16.81 pbest= 104.1

95 25 97.1 8.41 97.1

102 4 102 4 102

89 121 50.41

92 64 25

pbest= 105 fbest= 25 fbest= 16.81

95 25 8.41

102 4 4

Iterasi
sebelumnya
Contoh; f(x)=(x12+x2-11)2+(x1+x22-7)2

𝑓 𝑥 = 𝑥1 2 ∓ 𝑥2 − 11 2 + (𝑥1 + 𝑥2 2 − 7)2
Example
• Generate random : x R2 in [-6,6] as many as N
• also generate v0:
• 0.1524 0.1067
• 0.8258 0.9619
• 0.5383 0.0046
• 0.9961 0.7749
• 0.0782 0.8173
• 0.4427 0.8687

Evaluate each of x →f(x )


i i
x1 x2 f(x)

• -2.2654 2.2706 29.8320

• 0.3424 2.9778 67.3714

• -4.0122 -0.5935 133.9244

• 1.2238 -4.9941 577.4553

• -2.8443 -3.2523 38.5072

• 1.8489 4.9600 385.2139


PSO untuk TSP
Misal N=5
• Generate random number :[ 0.4192 0.6852 0.2045 0.8781 0.0274]
• Gunakan urutannya sebagai rute
Urutan: 0.0274 0.2045 0.4192 0.6852 0.8781
Indeks: 5 3 1 2 4
• Lalu evaluasi masing-masing rute dengan matriks jarak yang kita punya
0 12 15 17 11
12 0 8 19 13
D= 15 8 0 16 18
17 19 16 0 10
11 13 18 10 0
• Gunakan bilangan random untuk menggantikan posisi(x) dengan v yang kita bangkitkan
X=3 5 4 1 2 3 0 12 15 17 11
F(x)=18+10+17+12+8=65 12 0 8 19 13
D= 15 8 0 16 18
17 19 16 0 10
11 13 18 10 0
VRP

Anda mungkin juga menyukai