Anda di halaman 1dari 15

PEMOGRAMAN NON-LINEAR

DENGAN PENDEKATAN NUMERIK

1. DEFINISI
Problem Non-Linear Programming dapat didefinisikan sebagai upaya
mencari vektor variable disain x  x1 , x 2 ,, x n  yang merupakan solusi
T

untuk problem optimisasi (maximisasi atau minimisasi) sbb :


Opt z(x)
dengan fungsi-fungsi pembatas

g i (x)  0 i  1,2......, m

dimana fungsi tujuan z(x) dan fungsi pembatas g i (x) seluruhnya atau
sekurang-kurangnya salah satu diantaranya merupakan funsi Non-Linear.

Bergantung pada ada atau tidak adanyanya fungsi pembatas, problem non-
linear programming dapat dikelompokan sbb :

 Jika problem optimasi hanya berupa fungsi tujuan tanpa pembatas


disebut un-constrained non-liniear programming.
Min z(x1 , x 2 )  ( x1 - 1) 2  x 22  1  z(x) Non-Linier

 Jika problem optimasi terdiri fungsi tujuan dan fungsi-fungsi pembatas


disebut contrained non-linear programming.

Min z(x1 , x 2 )  x1 - x 2  z(x) Linier


dengan pembatas

x12 - x 22  1  gi(x) Non-Linier

Teknik Sipil ITB 0


NON-LINEAR PROGRAMMING

Jika solusi terletak pada fungsi pembatas maka fungsi pembatas dikatakan
aktif. Jika solusi tidak terletak pada pembatas, fungsi pembatas dikatakan
tidak aktif. Pada kasus demikian pembatas sebenarnya dapat dihilangkan.

Bergantung pada bentuk dari fungsi tujuan z(x) dan fungsi-fungsi pembatas
g i (x) , terdapat beberapa kombinasi problem non-linear programming yang
mungkin. Beberapa contoh ditunjukan pada Gambar-1.

a) Fungsi tujuan z(x) dan fungsi pembatas g i (x) keduanya merupakan


fungsi linear (Gambar-1.a). Kasus ini merupakan kasus khusus yaitu
problem linear programming.

b) Fungsi tujuan z(x) merupakan fungsi linear dan fungsi pembatas g i (x)
merupakan fungsi non-linear (Gambar-1.b). Pada contoh ini satu
pembatas bersifat non-liner aktif dan yang linear tidak aktif.

c) Fungsi tujuan z(x) fungsi non-linear dan fungsi pembatas g i (x)


merupakan fungsi linear (Gambar-1.c). Pada contoh ini kedua
pembatas non-linear tidak aktif.

d) Fungsi tujuan z(x) dan fungsi-fungsi pembatas g i (x) kedua-duanya


merupakan fungsi non-linear (Gambar-1.d). Pada contoh ini satu
pembatas bersifat aktif yang lain tidak aktif.

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 1


NON-LINEAR PROGRAMMING

Gambar-1: Pengaruh bentuk fungsi tujuan dan pembatas

2. CONTOH FORMULASI UNTUK APLIKASI PRAKTIS


Tinjau rangka batang yang terdiri dari tujuh batang seperti dintunjukan
pada Gambar-2. Pada struktur diatas penampang batang adalah A7 = A1,
A6 = A2 dan A5 = A3. Tegangan ijin tarik Syt dan tekan Syc masing = 500
Mpa dan Modulus elastisitas E=200 GPa. Hasil analisa gaya batang
ditunjukan pada Tabel-2.

Gambar-2 : Problem Definisi Optimisasi Rangka Batang

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 2


NON-LINEAR PROGRAMMING

Tabel-1 : Hasil Perhitungan Gaya Batang

Batang Gaya Batang Gaya


AB P BC P
 csc   csc 
2 2
AC P BD P
 cot   (cot   cot )
2 2
Batasan Tegangan pada masing-masing batang adalah sbb :

P csc  P cot 
 S yc ,  S yt ,
2A1 2A 2

P csc  P
 S yt , (cot   cot )  S yc ,
2A 3 2A 4

Batasan stabilitas terhadap tekuk (bukcling) menghasilkan

P EA12 P EA 24
 (cot   cot ) 
2 sin  1.281 2 ' 2 5.76 2
Jika defleksi maksimum pada titik C ditetapkan max = 2 mm. dengan
Theorema Castigliano, batasan untuk defleksi pada titik C adalah

P  0.566 0.500 2.236 2.700 


       max
E  A1 A2 A3 A 4 

Optimasi untuk soal diatas adalah mencari dimensi batang yang paling
berat paling minimum, yaitu

Minimize 1.132A1  2A 2   1.789A 3   1.2A 4 

dengan pembatas dimensi batang berikut.

10 x 106  A1 , A 2 , A 3 , A 4  500x106

Problem Optimasi rangka batang diatas dapat ditulliskan sebagai :

Min W  1.132A1  2A 2  1.789A 3 1.2A 4 

Dengan pembatas
Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 3
NON-LINEAR PROGRAMMING

P
S yc   0,
2A1 sin 
P
S yt   0,
2A 2 cot 
P
S yt   0,
2A 3 sin 
P
S yc  (cot   cot )  0,
2A 4
EA12 P
  0,
1.281 2 sin 
2

EA 24 P
 (cot   cot )  0,
1.281 2 2
P  0.566 0.500 2.236 2.700 
 max        0,
E  A1 A2 A3 A 4 

10 x 10 6  A 1 , A 2 , A 3 , A 4  500 x 10 6

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 4


NON-LINEAR PROGRAMMING

3. STRATEGI MENCARI TITIK OPTIMUM


Jika bentuk fungsi tujuan dan pembatas relatif sederhana maka
penyelesaiannya dapat dilakukan secara analitis dengan Calculus. Untuk
problem satu variable, tabulasi nilai dan penggambaran bentuk fungsi dapat
mempermudah penyelesaian. Untuk fungsi dua variable penggambaran
bentuk fungsi dan kontur dapat membantu mencari titik optimum. Untuk
fungsi lebih dari 2 varibel cara garfis dan tabulasi tidak effektif.

Mengingat dalam praktek kebanyakan persoalan non-linear programming


cukup sulit diselesaikan secara analitis dengan cara Calculus atau cara
tabulasi dan grafis, penyelesaian dengan metoda numerik merupakan satu-
satunya cara yang umum digunakan.

Prinsip dasar pencarian titik optimum secara numerik adalah memperoleh


solusi vektor x T  x1 , x 2 ,, x n  yang secara sistematis mengarah pada
T

hasil yang optimum berdasarkan algoritma sbb :

1) Mulai dengan harga pendekatan percobaan awal (approximate initial


trial value), untuk vektor xiT  x1 , x 2 ,, x n i
T

2) Tentukan arah pencarian Si (search direction, besaran vektor) yang


mengarah pada titik minimum (atau maximum). Untuk iterasi
pertama harga i=2
3) Tentukan panjang langkah i (step lenght, besaran skalar) untuk
pergerakan sepanjang arah Si
4) Tentukan harga pendekatan baru untuk vektor x dengan cara sbb
xi1  xi1   i Si
5) Tentukan apakah x i 1 sudah konvergen pada titik tertentu. Jika harga
x i1  x i1   tercapai, hentikan perhitungan ( adalah nilai toleransi
kesalahan, misal  = 0.001). Jika belum kembali ke langkah 2) dst.

Gambaran bagaimana proses iterasi dilakukan untuk fungsi dua variable


ditunjukan pada Gambar-3. Pada gambar tersebut terlihat bahwa posisi
vektor variable disain x T  x1 , x 2 ,, x n  secara bertahap mengarah pada
T

lokasi titik optimum. Dari gambar tersebut terlihat bahwa effisiensi metoda
optimisasi sangat bergantung pada besaran Si dan i.

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 5


NON-LINEAR PROGRAMMING

Gambar-3 : Strategi umum pencarian titik optimum

Secara umum terdapat dua kelompok metoda untuk memperbaiki besaran


Si dan i, yaitu dengan cara gradient (gradient method) dan cara langsung
(direct method).
a) Metoda Pencarian (Search Method) : Arah pencarian titik optimum
didasarkan evaluasi beberapa harga fungsi z(x). Metoda ini tidak
memerlukan gradient dapat diterapkan untuk fungsi yang menerus dan
tidak menerus (continous and discontinuos function).
b) Metoda Gradient (Gradient Method) : Arah pencarian titik optimum
didasarkan pada nilai fungsi z(x) dan gradient (turunan fungsi) z’(x).
Metoda ini memerlukan gradient (turunan fungsi) z’(x) sehingga hanya
dapat diterapkan untuk fungsi yang menerus (continous function)

4. OPTIMASI FUNGSI NON-LINEAR SATU VARIABLE


Jika z(x) adalah fungsi tujuan satu variable yang dioptimasi (maximum
atau minimum), maka barga xi arah pencarian Si pada tiap iterasi diketahui
sehingga z hanya merupakan fungsi dari i (step lenght). Terdapat dua
jenis problem optimisasi fungsi non-linear satu variable yaitu 1) Optimisasi
tanpa pembatas dan 2) optimasi dengan pembatas.

Optimisasi fungsi non-linear satu variable tanpa pembatas dapat dilakukan


dengan berbagai metoda yang dapat dikategorikan sebagai cara pencarian
langsung dan cara gradient. Beberapa cara yang umum digunakan
ditunjukkan pada Table-2.
Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 6
NON-LINEAR PROGRAMMING

Table-2 : Metoda Optimisasi Fungsi Non-Linear Satu variable

Cara Pencarian Cara Gradient


1. Total Search 1. Bisection Method
2. Interval Halfing Search 2. Secant Method
3. Dicotomous Search 3. Newton Raphson
4. Fibonaci Search 5. Cubic Interpolation
5. Golden Section Search

Penyelesian problem optimasi fungsi dengan pembatas antara lain dapat


dilakukan dengan memasukan fungsi pembatas kedalam fungsi tujuan. Hal
ini dilakukan dengan mengalikan fungsi pembatas terhadap pembatas
dengan bilangan atau funsi pemberat (penatly terms) dan menambahkan
hasilnya pada fungsi tujuan, sehingga didapat funsi tujuan baru yang tidak
berpembatas. Penyelesaian selanjutnya dilakukan pada fungsi tujuan yang
baru tsb.

5. PENGERTIAN FUNGSI UNIMODAL

Pemahaman mengenai fungsi unimodal terutama sangat diperlukan pada


metoda optimasi non-linear satu variable yang dicari dengan cara langsung
Suatu fungsi z(x) dikatakan bersifat unimodal jika pada suatu interval [a,b]
tertentu fungsi tersebut hanya memiliki satu harga extreem (maximum atau
minimum).

Beberapa contoh fungsi yang dalam suatu interval [a,b] bersifat unimodal
ditunjukan pada Gambar-4. Dari gambar tersebut terlihat bahwa fungsi
unimodal dapat berupa fungsi yang continue atau fungsi dis-continue.

Gambar-4 : Beberapa contoh fungsi uni-modal pada interval [a,b]

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 7


NON-LINEAR PROGRAMMING

Dengan demikian jika pada salah satu sisi (dikiri atau dikanan) dari harga
extrem terdapat dua harga fungsi, maka salah satu titik akan memiliki harga
lebih mendekati harga titik extrem dibanding titik yang lain.

6. OPTIMISASI FUNGSI NON-LINEAR SATU VARIABLE


TANPA PEMBATAS DENGAN METODA PENCARIAN

Pencarian titik optimum pada fungsi non-linear z(x) satu variable dengan
cara pencarian (search method) dimulai dengan asumsi z(x) bersifat
unimodal dalam interval ketidak pastian (interval of uncertainty) tertentu,
sehingga titik optimum diasumsikan terletak pada interval tsb.

Jika [a,b] adalah batas-batas interval awal ketidak pastian, lebar interval ini
secara sistematis akan diperkecil dengan cara sbb (lihat Gambar-5) :

a) Harga fungsi pada batas interval [a,b] diberikan sebagai z(a) dan z(b).

b) Hitung harga fungsi z(x) pada titik x1 dan x2 dalam interval [a,b]
dihitung didapat harga z(x1) dan z(x2)

c) Bandingkan harga z(a), z(b) z(x1) dan z(x2) dan tentukan batas daerah
ketidak pastian yang baru.

d) Jika jarak batas kiri dan kanan lebih besar daerah ketidak pastian baru
lebih besar dari batas toleransi keteltitian tertentu, kembali kelangkah a).

Gambar-5 : Prinsip cara merubah batas interval ketidakpastian


Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 8
NON-LINEAR PROGRAMMING

Pada Table-2 ditunjukan beberapa cara pencarian (search method) untuk


memperkecil lebar interval ketidakpastian. Prinsip kerja metoda pecarian
tsb addalah sbb

6.1 Total Search Method

Cara pencarian total search ini merupakan cara pencarian yang mudah
namun memiliki konvergensi yang lambat. Prosedure pencarian dilakukan
dengan algorima sbb (lihat Gambar-6) :

1. Tentukan interval awal [a,b] dan harga batas  konvergensi.

2. Bagi interval awal [a,b] menjadi sejumlah N sub-interval (segmen)


dengan panjang D.

3. Hitung harga-harga fungsi tujuan pada titik-titik yang merupakan batas


antar segmen, yaitu f(x1) s/d f(xN+1).

4. Bandingkan harga-harga fungsi f(x1) s/d f(xN+1) untuk mendapatkan


harga paling maximum f(xm).

5. Tentukan batas interval ketidakpastian baru dengan membandingkan


harga fungsi pada titik yang terletak satu segmen sebelum dan sesudah
titik maximum f(xm).

6. Jika Abs(L0) >  kembali like langkah 1). Jika Abs(L0) <  tolerasi. Titik
optimum didapat.

Gambar-6 : Prinsip kerja metoda total search

Konvergensi metoda total search dapat dihitung sbb :

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 9


NON-LINEAR PROGRAMMING

1. Jika suatu interval selebar satu satuan, dibagi menjadi N segmen, maka
panjang tiap segmen adalah 1/(N+1)

2. Fraksi pengecilan (fractional reducton) interval ketidakpastian dapat


dinyatakan sebagai f = 2/(N+1). Untuk f=0.01 diperlukan N=199, untuk
f=0.001 diperlukan N=1999 dst.

Contoh-1 : Diberikan suatu fungsi tujuan non-linier F(x) = x/3 + 3 sin2(x).


Dengan metoda direct search, tentukan a) harga maximum dan b) harga
minimum fungsi pada interval [1,9]. Lakukan perhitungan untuk f = 0.1 s/d
f =0.000001

Jawab : Grafik fungsi F(x) = x/3 + 3 sin2(x) ditunjukan pada Gambar-7

Gambar-4.5 : Grafik Fungsi F(x) = x/3 + 3*sin(x)^2 pada [1,9]


6

4
F(x)

0
1 2 3 4 5 6 7 8 9
x

a) Perhitungan harga maximum dilakukan dengan program komputer sbb :


PROGRAM ANSYS-01
C
C *** PROGRAM UNTUK MENCARI HARGA MAXIMUM FUNGSI NON-LINEAR SATU
C VARIABLE TAMPA PEMBATAS DENGAN METODA TOTAL SEARCH
C
IMPLICIT INTEGER( I-M )
REAL L
C
C *** INPUT DATA
C
R = 1
DO 100 K=1,6
TIM = 0
A = 0

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 10


NON-LINEAR PROGRAMMING

B = 6
R = R/10
C
C *** MULAI LOOP PERHITUNGAN R=0.1 S/D R=0.00001
C
10 CONTINUE
L = B - A
D = 0.5*R*L
INC = 2/R
X = A
FM = F( X )
XM = A

DO 20 I=1,INC
X = A + I*D
IF( F( X ).LT.FM ) GOTO 20
FM = F( X )
XM = X
20 CONTINUE
C
C *** PENETUAN INTERVAL KETIDAK PASTIAN BARU
C
IF( XM.EQ.A )THEN
XL = A
XR = A + D
ELSEIF( XM.EQ.B )THEN
XL = B - D
XR = B
ELSE
XL = XM - D
XR = XM + D
ENDIF
A = XL
B = XR
C
C *** CHECK KONFERGENSI
C
E = ABS( XL-XR )
IF( E.GT.R )GOTO 10
C
C *** TULIS HASIL
C
CALL CPU_TIME(TIM)
WRITE(9,'(I2,I8,3F10.6,2f12.6,E10.3)') K,INC,XL,XR,FM,E,R,TIM
100 CONTINUE

STOP
END
C
C *** DEFINISI FUNGSI TUJUAN
C
FUNCTION F( X )

F = X/3 + 3*( SIN( X ) )**2

RETURN
END

Resume hasil perhitungan harga maximum ditunjukan pada Tabel-3. Dari


table tsb terlihat bahwa Harga maximum tercapai pada xmax = 7.909743
dengan F(xmax) = 5.627263.

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 11


NON-LINEAR PROGRAMMING

Tabel-3 : Pencarian harga maximum F(x) = x/3 + 3 sin2(x) pada [1,9]


No Iterasi XL XR F(X) Eps F CPU (sec)
1 19 7.88 7.96 5.626944 0.08 0.1 0.00E+00
2 200 7.9092 7.91 5.627263 0.0008 0.01 0.00E+00
3 2000 7.909744 7.909751 5.627263 0.000008 0.001 0.00E+00
4 20000 7.909748 7.909748 5.627263 0 0.0001 5.00E-02
5 200000 7.910037 7.910037 5.627263 0 0.00001 4.40E-01
6 2000000 7.909743 7.909743 5.627263 0 0.000001 4.45E+00

b) Perhitungan harga mimimum fungsi F(x) = x/3 + 3 sin2(x). dilakukan


dengan merubah definisi fungsi tujuan pada program diatas menjadi
F(x) = x/3  3 sin2(x). Hasilnya perhitungan harga minimum
ditunjukan pada Tabel-4. Dari tabel tsb terlihat harga minimum tercapai
pada xmin = 3.085959 dengan F(xmin) =  (1.03793) = 1.03793.

Tabel-4 : Pencarian harga minimum F(x) = x/3 + 3 sin2(x) pada [1,9]


No Iterasi XL XL F(X) Eps F CPU (sec)
1 19 3.04 3.12 -1.03803 0.08 0.1 0.00E+00
2 200 3.0856 3.0864 -1.03793 0.0008 0.01 0.00E+00
3 2000 3.086064 3.086072 -1.03793 0.000008 0.001 0.00E+00
4 20000 3.086074 3.086074 -1.03793 0 0.0001 0.00E+00
5 200000 3.085960 3.085960 -1.03793 0 0.00001 4.40E-01
6 2000000 3.086059 3.086059 -1.03793 0 0.000001 4.07E+00

6.2 Interval Halfing Search Method

Cara pencarian Interval halfing merupakan perbaikan cara total serach yang
sehingga proses konvergensi yang lebih cepat. Prosedure pencarian Interval
halfing dilakukan dengan algoritma sbb :

1. Tentukan interval awal [a,b] dan harga batas  konvergensi.

2. Hitung harga xm= ( a + b )/2. Hitung L0 = L = b - a

3. Set x1 = a + L/4 dan x2 = b - L/4; Hitung f(x1) dan f(x2)

4. Jika f(x1) > f(xm), set b = xm; xm= x1 lalu ke langkah 5; selain itu ke
langkah 4.

5. Jika f(x2) > f(xm), set a = xm; xm = x2 lalu ke langkah 5; selain itu ke a =
x1, b =x2 lalu ke langkah 5.

6. Hitung ketidak pastian baru L = b – a. Jika Abs(L) <  stop


perhitungan. Jika tidak ke langkah 2.

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 12


NON-LINEAR PROGRAMMING

Untuk metoda interval halfing search, Kecepatan konvergensi dapat


dinyatakan dengan Fraksi pengecilan interval (fractional reduction). Dapat
dibuktikan bahwa untuk N iterasi yang dilakukan pada i buah sub-interval.
Fraksi pengecilan interval dapat dituluskan sebagai f = (2/(N+1)) i.

Contoh-2 : Selesaikan contoh soal-1 dengan metoda interval halfing


search, tentukan a) harga maximum dan b) harga minimum fungsi pada
interval [1,9].

a) Jawab : Grafik fungsi F(x) = x/3 + 3 sin2(x) ditunjukan pada Gambar-


7. Perhitungan harga maximum dilakukan dengan program komputer
sbb :
PROGRAM ANSIS-02
C
C *** OPTIMASI FUNGSI NON-LINEAR SATU VARIABLE TANPA PEMBATAS
C DENGAN METODA INTERVAL HALVING SEARCH
C
IMPLICIT INTEGER( I-M )
REAL L
C
C *** INPUT DATA
C
TIM = 0
K = 0
EPS = 1e-6
A = 1
B = 9
C
C *** LOOP PERHITUNGAN
C
L = B - A
10 CONTINUE
K = K + 1
XM = 0.5*( B + A )
FM = F( XM )
X1 = A + 0.25*L
X2 = B - 0.25*L
F1 = F( X1 )
F2 = F( X2 )
C
C ***** TENTUKAN INTERVAL BARU
C
IF( F1.GT.FM )THEN
B = XM
XM = X1
ELSEIF( F2.GT.FM )THEN
A = XM
XM = X2
ELSE
A = X1
B = X2
ENDIF
L = B - A
C
C ***** CHECK KONFERGENSI DAN TULIS HASIL
C
E = ABS( L )

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 13


NON-LINEAR PROGRAMMING

CALL CPU_TIME(TIM)
WRITE(*,'(I6,3F13.6,2E12.3)') K,A,B,FM,E,TIM
IF( E.GT.EPS )GOTO 10

STOP
END
C
C *** DEKLARASI FUNGSI TUJUAN
C
FUNCTION F( X )

F = X/3 + 3*( SIN( X ) )**2

RETURN
END

Dengan program tersebut terlihat bahwa perhitungan harga maximum


tercapai pada xmax = 4.768066 dengan F(xmax) = 4.580065.

Catatan :

1. Dari hasil tsb dan Gambar-7 terlihat bahwa titik maximum yang
didapat adalah titik puncak yang kedua. Hal ini karena metoda ini
didasarkan pada asumsi fungsi unimodal.
2. Untuk mendapatkan titik puncak global (puncak ketiga) perlu dilakukan
perubahan batas interval menjadi [4.768066,9] hasilnya adalah x max =
7.909987 dengan F(xmax) = 5.627263.
3. Untuk mendapatkan puncak pertama, interval pencarian dirubah
menjadi [1,4.768066] dan hasilnya adalah x max = 1.626477 dengan
F(xmax) = 3.532868.
4. Perhitungan harga mimimum fungsi F(x) = x/3 + 3 sin2(x). dilakukan
dengan merubah definisi fungsi tujuan pada program diatas menjadi
F(x) = x/3  3 sin2(x). Hasil F(xmax) dikalikan dengan 1.

Analisis Sistem dan Pengambilan Keputusan SDA (SA-6021) 14

Anda mungkin juga menyukai