Anda di halaman 1dari 9

TUGAS TEKNIK OPTIMISASI

Referensi Jurnal :
USING GENETIC ALGORITHMS FOR OPTIMIZATION OF TURNING
MACHINING PROCESS
Disusun oleh Dusan Petkovic dan Miroslav Radovanovic
1 University of Nis, Engineering Faculty, Dartement of Mechanical Engineering, 18000, SERBIA

Disusun Oleh :
Bella Widya Gunawan 02311540000050

DEPARTEMEN TEKNIK FISIKA


FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2018
I. PENDAHULUAN
Dalam jurnal acuan ini membahas terkait parameter optimisasi dalam masalah proses pemesinan.
Banyak masalah yang berhubungan dengan proses permesinan.parameter yang biasanya digunakan
adalah berdasarkan pengalaman atau dengan rekomendasi pemotongan dari produsen alat. Pengaruh
nya adalah terkait dengan maintenance alat, waktu, dan biaya manufakturnya. Meminimalisir biaya
mesin perbagian sering digunakan untuk penentuan parameter pemotongan yang optimal.
II. MODEL MATEMATIS

Model matematik dari optimisasi ini meliputi fungsi objektif dan constrain, seperti berikut,

III. Algoritma GA
Genetic Algorithm (GA) merupakan bagian terpenting dalam kelompok evolutionary computation
yang didasarkan pada proses genetika dan secara ilmiah digunakan untuk menemukan solusi optimal.
Elemen GA secara umum terdiri atas seleksi dan rekombinasi pada kromosom di dalam suatu populasi
yang banyak digunakan pada berbagai permasalahan diantaranya yaitu desain teknik, kecocokan
parameter, permasalahan transportasi, pengolahan citra, TSP, dan lain sebagainya.
GA termasuk pelopor dalam bidang konsep metaheuristik dikarenakan banyak algoritma komputasi
muncul dan menggunakan beberapa langkah GA. Yang membedakan GA dengan metode optimisasi
lainnya adalah prosedur pencarian dalam GA hanya didasarkan pada nilai fungsi tujuan tanpa ada
pemakaian gradient atau teknik kalkulus. Dengan prosedur inilah didapatkan solusi akhir dari
permasalahan optimisasi yang dihadapi.
Untuk dapat menyelesaikan permasalahan optimisasi, secara garis besar algoritma GA dapat
dijelaskan sebagai berikut, yaitu:
1. Inisialisasi populasi
2. Pengkodean kromosom
3. Fungsi fitness
4. Proses seleksi
5. Proses crossover
6. Proses mutasi
7. Proses elitisme
8. Pergantian populasi

IV. Using GA to Optimize Machining Cost of Turning Process


Dalam jurnal acuan ini model matematik yang sudah dijelaskan pada bab 2 digunakan untuk mencari
global minimum biaya manufaktur dari fungsi objektif .

V. Pembahasan
Untuk menilai validitas dari metode yang diajukan dan mempraktekkan prosedur optimisasi dan
hasil akhir, dengan mempertimbangkan fungsi constrain didapatkan biaya manufaktur yang paling
optimal dari grafik berikut.

Gambar 1. Konvergensi respon biaya manufaktur

Gambar 2. Konvergensi respon biaya manufaktur dari jurnal acuan


Namun dari hasil optimasi yang didapatkan tidak sesuai dengan jurnal terdapat selisih sedikit.
Dalam jurnal, biaya manufaktur yang dibutuhkan sebesar Є 0,33559 sedangkan dari hasil optimasi
penelitian untuk biaya manufaktur yang dibutuhkan sebesar Є 0,3816. Hal ini dikarenakan ada
parameter yang tidak diketahui di dalam jurnal sehingga peneliti menggunakan nilai yang
diasumsikan mengacu pada jurnal lain yang membahas topik yang sama.

VI. Koding MATLAB


1. Program Matlab

clear all
close all
%Pembangkitan Populasi dan Parameter
Npop = 100; %populasi
Maxit = 100; %iterasi
el = 0.05; %elatism
Pc = 0.8; %probabilitas crossover
Pm = 0.001; %probabilitas mutasi
Nvar = 2; %jumlah variabel desain yang dioptimasi
Nbit = 10; %jumlah bit
%Constrain

rb = [5.03 0.04]; %batas bawah


ra = [5.0265 0.09]; %batas atas

eBangkit = [];
Individu = [];
eIndividu = [];
david = [];
Dadatfit = [];
Datfit = [];
summary = [];
eDadatfit = [];
efitnessmax = [];
eIndividuMax = [];

Bangkit = round(rand(Npop,Nbit*Nvar));
popsize = size(Bangkit,1);

for i = 1:Nvar
batas(i) = ra(i)-rb(i);
end
for i =1:Npop
for j = 1:Nvar
Desimal(i,j) = bi2de(Bangkit(i,((j*Nbit)-(Nbit-1)):(j*Nbit)),'left-msb');
Individu(i,j) = (Desimal(i,j)*batas(:,j)-batas(:,j)+rb(:,j)*(2^Nbit-1))/(2^Nbit-1);
end
end

Datfit = [];
variabel = [];
for i = 1:size(Individu,1)
fitness = obj(Individu(i,:));
Datfit = [Datfit;fitness];
[fitemax,nmax]=max(Datfit);
end

Dadatfit = [];
for generasi=1:Maxit
disp('GA processing')
clear command windows
clear command history
clear memory

if generasi > 1
sort_fit = sortrows(sort,Nbit*Nvar+1);
Individu1 = sort_fit(round((1-el)*Npop+1):Npop,:);
remain = sort_fit(round(el*Npop)+1:Npop,:);

X = Individu1;
M = size(X,1);

sumfitness = sum(Datfit);
for i=1:M
Prob(i) = Datfit(i)/sumfitness;
end
for i=2:M
Prob(i) = Prob(i)+Prob(i-1);
end
for i=1:M
n=rand;
k=1;
for j=1:M-1
if (n>Prob(j))
k=j+1;
end
end
Xparents(i,:) = X(k,:);
end

%Crossover
[M,d] = size(Xparents);
Xcrossed = Xparents;
for i=1:2:M-1
c=rand;
if (c<=Pc)
p=ceil((d-1)*rand);
Xcrossed(i,:) = [Xparents(i,1:p) Xparents(i+1,p+1:d)];
Xcrossed(i+1,:) = [Xparents(i+1,1:p) Xparents(i,p+1:d)];
end
end
if (M/2~=floor(M/2))
c=rand;
if (c<=Pc)
p=ceil((d-1)*rand);
str=ceil((M-1)*rand);
Xcrossed(M,:) = [Xparents(M,1:p) Xparents(str,p+1:d)]; %the first child is chosen
end
end

%Mutasi
[M,d] = size(Xcrossed);
Xnew=Xcrossed;
for i=1:M
for j=1:d
p=rand;
if (p<=Pm)
Xnew(i,j)=1-Xcrossed(i,j);
end
end
end

disp('New fitness calculation');

Bangkit = [Xnew(:,1:Nbit*Nvar);remain(:,1:Nbit*Nvar)];
end
eBangkit = [eBangkit; Bangkit];

for i =1:Npop
for j = 1:Nvar;
Desimal(i,j) = bi2de(Bangkit(i,((j*Nbit)-(Nbit-1)):(j*Nbit)),'left-msb');
Individu(i,j) = (Desimal(i,j)*batas(:,j)-batas(:,j)+rb(:,j)*(2^Nbit-1))/(2^Nbit-1);
end
end

Datfit = [];
for i = 1:Npop
fitness = obj(Individu(i,:));
Datfit = [Datfit;fitness];
[fitemax,nmax] = max(Datfit);
end

Dadatfit = Datfit;
eDadatfit = [eDadatfit;Dadatfit];
eIndividu = [eIndividu;Individu];
[fitnessmax,nmax] = max(eDadatfit);
efitnessmax = [efitnessmax;fitnessmax];
BangkitMax = eBangkit(nmax,:);
IndividuMax = eIndividu(nmax,:);
eIndividuMax = [eIndividuMax;IndividuMax];
BangkitMaxlast = BangkitMax;
schedmax = BangkitMax;
sort = [Bangkit Dadatfit];
summary = [summary; sort];
david = [david; Dadatfit];
clc

min_variable_design=eIndividuMax(1,:)
min_objective_function=fitness(1,:)
figure(gcf)
title('Grafik Nilai Min GA','color','b')
xlabel('Jumlah Iterasi')
ylabel('Nilai Fungsi Obyektif')
hold on
plot(efitnessmax, 'DisplayName', 'efitnessmax', 'YDataSource', 'efitnessmax');
hold on
end
2. Program Objective Function
function y = obj(x)
y = 0.3+(4.6/x(1)*x(2))+1.72*(10^-11)*(x(1)^4.55)*(x(2)^0.67);
if x(1)*x(2)^0.30 <=91.57
end
if x(1)*x(2)^0.75 <=74.80
end
if x(2)^0.75 <=6.48
end
if x(2)^0.75 <=55.33
end
if x(1) >= 5.03
end
if x(1) <=502.65
end
if x(2) >=0.04
end
if x(2) <=9
end
end
DAFTAR PUSTAKA

Dusan Petkovic, M. R. (2013). Using Genetic Algorithms For Optimization of Turning Machining
Process. Engineering Studies and Research, 19, 47-55.