• 검색 결과가 없습니다.

@2009 Fall, Computer Aided Ship Design

N/A
N/A
Protected

Academic year: 2022

Share "@2009 Fall, Computer Aided Ship Design"

Copied!
51
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Naval Architecture & Ocean Enginee ring

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2009 Fall, Computer Aided Ship Design – Part1.Optimal Ship Design

Ch.2 Unconstrained optimization method 2.2 Golden Section Search method

(one dimensional search method)

- Ch.2 Unconstrained Optimization Method

(2)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 최소값이 위치하는 구갂 탐색 (1/2)

 최소값이 위치하는 구갂 탐색

 황금 분핛법은 최소값이 위치하는 초기 구갂을 알고 시작해야 핚다.

에서의 함수값 를 계산하여

보다 작으면 이동량을 의 증가치를 택핚다.

즉, 증분이 이전 증가의 1.618배이다. (Fibonacci sequence)

 0

    f ( 0 ) f (  ) f (  ) )

0 (

f 1 . 618 

f()

0 5.236

2 4…

16.326

9.472

3

q = 0

2.618

1

 

 0 ;

0

q

...

, 2 , 1 , 0

, ) 618 . 1 (

0

 

q

q

j

j

q

... 

) 618 . 1 ( 326

. 16 )

618 . 1 ( 472 . 9

; 4

4

0 4

4

j

q     

j

3

0 3

3

5 . 236 ( 1 . 618 ) 9 . 472 ( 1 . 618 )

; 3

j

q     

j

2

0

2

2 . 618 1 . 618 ( 1 . 618 ) 5 . 236 ( 1 . 618 )

; 2

j

q     

j

1

0

1

1 . 618 2 . 618 ( 1 . 618 )

; 1

j

q     

j

2/51

(3)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

에서의 함수값이 에서의 값보다 작다면,

최소점은 두 구갂, 즉 사이에 있다.

 최소점이 졲재하는 구갂의 상핚과 하핚은

2.2 Golden Section Search method

- 최소값이 위치하는 구갂 탐색 (2/2)

 1

qq 2q

) ( )

( ), (

)

( q 1 f q 2 f q 1 f q

f    

qq 2

2

0 2

0

) 618 . 1 ( ,

) 618 . 1 (

q

j

j q

l q

j

j q

u     

상한 하한

q-2q-1q

f(

)

0

16.326

2.618

q-2

5.236

q-1

9.472

q

= = =

f(

)

상한

(

u

)

하한

(

l

)

최소값이 존재하는 구간 최소값이 존재하는 구간

0

1.0 1.618

1.0:1.618 = 0.382:0.618

(

a

)

1 1

0

, (1.618)

q

j

a q

j

 

  

3/51

(4)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- Fibonacci sequence

Fibonacci sequence

정의:

F 0  0; F 1  1; F nF n 1F n 2 , n  2, 3,

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

11 5

, 1.6180339887

5 2

n n

F n  

   

  

일반항:

 

 

1

1 1

lim lim 1

1

n n n

n n

n n

n

F F

 

 

  

 

 

 

1 1 1

1

1 lim

1

n n

n n n n

n

 

 

 



 

  

 

1

1

1 1 lim

1 1

n

n n

  

 

  

   

 

   

  

 

1  1

   

 

 

1

lim n ,

n n

F

F

 

특성:

1

1 

   

- Ch.2 Unconstrained Optimization Method

4/51

(5)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

(1 -)I (k) =(1/3)I (k)

I (k) =(2/3)I (k)

b

I (k)

l

u

(a)

2.2 Golden Section Search method

- 최소값이 위치하는 구갂의 세분화

 최소값이 위치하는 구갂의 세분화

 최소값이 위치하는 구갂 I

(k) : 1-로 내분하는 점을 양끝으 로부터 각각 구핚다.

 구핚 점들에서의 함수값을 비교하여 구갂을 세분화핚다.

 아래 그림과 같이 양끝 점에서 대칭으로 위치핚 두 점으로부터 같은

갂격

I

(k)만큼 떨어짂

a

b 를 잡는다.

 그 점에서의 함수값을 계산하여 큰 쪽의 구갂을 버리고, 남은 구갂을

새로운 구갂으로 정핚다.

(1 -)I (k) =(1/3)I (k)I (k) =(2/3)I (k)

a

<= 2/3일 경우의 예>

f(

a) < f(b)라고 가정하면

최소값이 존재하는 구간은

다음과 같이 변경됨

q-2q

f(

) 최소값이 존재하는 구간

= l= u

이 구간을 반복적으로

세분화함

I (k+1) =I (k) =(2/3)I (k)

l

(b)

u

I (k+1) (1 -)I (k+1)

b

a

l

 

a

 

b

 

u

 

최소값이 존재하는 구간이 변경될 때마다 f(a), f(b)에서의 함수값을 새로 구해야 함

<문제 제기>

이전 구간에서의 함수값을 활용할 수 없을까?

5/51

(6)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 최소값이 위치하는 구갂의 세분화

f(

a) < f(b)라고 가정하면

최소값이 존재하는 구간은

다음과 같이 변경됨

I (k+1)

(1 -

)I(k+1)

b

(1 -)I (k)I

(k)

a

(1 -

)I(k)

I

(k)

I

(k)

lu

(a)

I (k+1) =I (k)

l   u

(b)

0 )

1

(

( )

)

(

  

  I

k

I

k

 최소값이 위치하는 구간의 세분화

최소값이 위치하는 구간 I

(k)

: 1-

로 내분하는 점을 양끝으로부터 각각 구한다.

1. f(

a)를 다음 구간 I(k+1)

에서 사용하려 함

2. 

a

가 I

(k+1)

구간의

a

 혹은 

b

 와 일치 하도록  를 결정

a

a

I

(k+1) (1 -

)I(k+1)

a

) 1 ( )

(

( 1 )

) 1

(   I

k

   I

k

) ( )

(

( 1 )

) 1

(   I

k

    I

k

) ( )

(k k

I I  

3-1. 

a

가 

a

 와 일치한다고 가정

=1이므로 우리가 원하는 값이 아님

3-2. 

a

가 

b

 와 일치한다고 가정 

a

 

b

) 1 ( )

)

(

1

(   I

k

  I

k

) ( )

)

(

1

(   I

k

     I

k

0

2

   1 

618 . 1 , 618 .

0 

  0 . 618

b

6/51

(7)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 최소값이 위치하는 구갂의 세분화

f(

a) > f(b)라고 가정하면

최소값이 존재하는 구간은

다음과 같이 변경됨

I (k+1)

(1 -

)I(k+1)

b

(1 -)I (k)I

(k)

(1 -

)I(k)

I

(k)

b

I (k+1) =I (k)

l   u

(b)

0 )

1

(

( )

)

(

  

  I

k

I

k

1. f(

b)를 다음 구간 I(k+1)

에서 사용하려 함

2. 

b

가 I

(k+1)

구간의

a

 혹은 

b

 와 일치 하도록  를 결정

b

b

I

(k+1) (1 -

)I(k+1)

a

) 1 ( )

(

( 1 )

) 1

(   I

k

   I

k

) ( )

(

( 1 )

) 1

(   I

k

    I

k

) ( )

(k k

I I  

3-1. 

b

가 

b

 와 일치한다고 가정

=1이므로 우리가 원하는 값이 아님

3-2. 

b

가 

a

 와 일치한다고 가정 

b

 

a

) 1 ( )

)

(

1

(   I

k

  I

k

) ( )

)

(

1

(   I

k

     I

k

0

2

   1 

618 . 1 , 618 .

0 

  0 . 618

I

(k)

lu

(a)a

 최소값이 위치하는 구간의 세분화

최소값이 위치하는 구간 I

(k)

: 1-

로 내분하는 점을 양끝으로부터 각각 구한다.

7/51

(8)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 황금분핛법 알고리즘 요약 (1/3)

 단계 1 : 최소점이 졲재하는 구갂 탐색

에서 미소의 이동량 를 선정하고

을 만족하는 를 정하고, 다음의 식으로 상핚과 하핚을 결정핚다.

여기서, 갂격 을 정핚다.

 단계 2 : 와 를 계산핚다. 이 때, 이고 이다.

 단계 3 : 와 를 비교하여 그 결과에 따라 단계 4, 5, 6 으로 갂다.

) ( )

( ), (

)

( q 1 f q 2 f q 1 f q

f    

q

2

0 2

0

) 618 . 1 ( ,

) 618 . 1 (

q

j

j q

l q

j

j q

u     

l

I   u   )

( a

ff (  b )  a   l  0 . 382 I

l I

b    0 . 618

 

) ( a

ff (  b )

(1 -)I

(k)

I(k)

a

(1 -)I

(k)

I(k)

b I(k)

l

u

- Ch.2 Unconstrained Optimization Method

8/51

(9)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 황금분핛법 알고리즘 요약 (2/3)

 단계 4 : 이면, 최적점 사이에 있다.

세분화된 구갂의 새로운 핚계는 이고 이다.

또핚 이다. 에서 를 계산 하고 단계 7로 갂다.

 단계 5 : 이면, 최적점 사이에 있다.

세분화된 구갂의 새로운 핚계는 이고 이다.

또핚 이다. 에서 를 계산하 고 단계 7로 갂다.

) ( )

( a f b

f     *lb

l

l

 '   u '   b

a

b

 '   a '   l '  0 . 382 (  u '   l ' ) f (  a ' )

) ( )

( a f b

f     *

a

l

 '   u '   u

b

a

 '   b '   l '  0 . 618 (  u '   l ' ) f (  b ' )

au

I

(k+1)

(1 -)I

(k+1)

b

(1 -)I

(k)

I

(k)

a

(1 -)I

(k)

I

(k)

b

I

(k)

l

u

I

(k+1)

=I

(k)

l

 

u

I

(k+1)

(1 -)I

(k+1)

a

- Ch.2 Unconstrained Optimization Method

9/51

(10)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.2 Golden Section Search method

- 황금분핛법 알고리즘 요약 (3/3)

 단계 6 : 이면, 라 두고 단계 7로 갂다.

 단계 7 : 만일 새로운 세분화된 구갂 이 충분히 작아서

수렴 기준을 만족하면(즉, ), 라 두고 최적화 과정을 마친다. 그렇지 않으면, 의 Prime( ) 부호 를 삭제하고 단계 3으로 돌아갂다.

) ( )

( a f b

f     l   a ,  u   b

) ' '

'

( I   u   l

 '

I*  (  u '   l ' ) / 2 ' , ' , ' ,

' a b u

l   

'

I

(k+1)

(1 -)I

(k+1)

b

(1 -)I

(k)

I

(k)

a

(1 -)I

(k)

I

(k)

b

I

(k)

l

u

I

(k+1)

=I

(k)

l

 

u

I

(k+1)

(1 -)I

(k+1)

a

- Ch.2 Unconstrained Optimization Method

10/51

(11)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Golden Section Search method Program Guide (1)

1단계 : 최소값이 존재하는 구간 찾기

f(

)

02.618 5.236 9.472

4 2

1

q = 0

16.326

3

= l= a= u

최소값이 존재하는 구간

2단계 : 과 를 계산

(단, )

) ( a

ff (  b )

I

I a l

l

b    0 . 618 ,     0 . 382

I

lau

f(

)

상한 하한

최소값이 존재하는 구간

b

0.618I 0.382I

//Input : 초기 위치(initial_x), 증분값 (delta)

//output : 최소값이 존재하는 구간의 x좌표 (x[0],x[1],x[2]

void findMinValueExistSection(double initial_x, double delta, double *x) {

//초기값에서 1.618δ배씩 증가시키면서 최소 구간을 탐색함 //x[1]보다 x[2]가 클 때 종료 시킴

}

- Ch.2 Unconstrained Optimization Method

11/51

(12)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Golden Section Search method Programming Guide (2)

3단계 : 과 f (  a ) f (  b ) 를 비교

) ( )

( a f b

f   

) ( )

( a f b

f   

) ( )

( a f b

f

라 두고 단계 4로 간다.

b u

a

l   

  , 

I

lau

f(

)

상한 하한

최소값이 존재하는 구간

b

0.618I 0.382I

4단계 : 구간 ( I '   u '   l ' ) 의 길이가 Tolerance보다 작으면 종료한다. 아닐 경우 2단계로 돌아간다.

최적점 는 과 사이에 있다.

세분화된 구간의 새로운 한계는 이고 이다.

또한 이다. 에서 를 계산하고 단계 4로 간다.

*

l

b

l

l

 ' 

b

u

 ' 

a

b

 ' 

) ' ' ( 382 . 0 '

' l u l

a   

    f (  a ' )

최적점 는 과 사이에 있다.

세분화된 구간의 새로운 한계는 이고 이다. 또한 이다.

에서 를 계산하고 단계 4로 간다.

*

a

u

b

a

 '   u '   u

a

l

 ' 

) ' ' ( 618 . 0 '

' l u l

b   

    f (  b ' )

- Ch.2 Unconstrained Optimization Method

12/51

(13)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Golden Section Search method Programming Guide (3)

// [Input]

// x[0]: 최소값이 졲재하는 영역의 하핚 // x[2]: 최소값이 졲재하는 영역의 상핚

// x[1]: x[0] < x[1] < x[2]인 동시에 f(x[0]) > f(x[1]) and f(x[2]) > f(x[1])인 점 // [Output]

// xmin: f를 최소로 하는 점과 이 점에서의 목적 함수값

double GoldenSectionSearch(double *x, double (*f)(double), double *xmin) {

double TOLERANCE = 1.0e-6;

double f1, f2, a0, a1, a2, a3;

a0 = x[0]; a3 = x[2];

if (fabs(x[2] – x[1]) > fabs(x[1] - x[0])) {

a1 = x[1]; a2 = x[1] + (1.0 - 0.618) * (x[2] - x[1]); } else { a2 = x[1]; a1 = x[1] - (1.0 - 0.618) * (x[1] - x[0]); } f1 = (*f)(a1); f2 = (*f)(a2);

while (fabs(a3 - a0) > TOLERANCE ) {

if (f2 < f1) { a0 = a1; a1 = a2; a2 = 0.618 * a1 + (1.0 - 0.618) * a3;

f1 = f2; f2 = (*f)(a2); }

else { a3 = a2; a2 = a1; a1 = 0.618 * a2 + (1.0 - 0.618) * a0;

f2 = f1; f1 = (*f)(a1); }

}

if (f1 < f2) { *xmin = a1; return f1; }

else { *xmin = a2; return f2; }

}

- Ch.2 Unconstrained Optimization Method

13/51

(14)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Golden Section Search method Programming Guide (4)

#include <stdio.h>

#include <math.h>

double f1(double x);

double f2(double

x);

double f3(double

x);

void FindSection(double

x_start, double x_delta, double (*ObjFunc)(double),

double

*x);

double GoldenSectionSearch(double *x, double

(*f)(double), double *xmin);

int main() {

double

init_x = 0;

double

delta = 1;

double

*x = new double [3];

double

*xmin = 0;

double

f_min;

//f1

FindSection(init_x,delta,f1,x);

f_min = GoldenSectionSearch(x,f1,xmin);

//f2

FindSection(init_x,delta,f2,x);

f_min = GoldenSectionSearch(x,f2,xmin);

//f3

FindSection(init_x,delta,f3,x);

f_min = GoldenSectionSearch(x,f3,xmin);

return 0;

}

//f(x)=x^2

double f1(double x)

{

return x*x;

}

//f(x)=sin x

double f2(double x)

{

return sin(x);

}

//f(x)=x^3-x^2+x-1

double f3(double

x) {

return pow(x,3) - pow(x,2) + x - 1;

}

- Ch.2 Unconstrained Optimization Method

14/51

(15)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Expansion of Golden Section Search method

- 목적 함수가 다변수 함수일 때 탐색 방향이 주어질 경우

목적 함수 식 탐색 방향 시작 위치

1변수 함수 double (*f)(double x) 하나의 변수만 입력

1변수 함수이므로 탐색 방향은 이미

주어져 있음

double x_start

다변수 함수 double (*f)(double *x, int n) 여러 개의 변수를 입력 받고, 변수의 개수도 입력

탐색 방향을 Vector 형태로 주어야 함

double *x_start

double f(double

x);

void FindSection(double

x_start, double x_delta, double (*f)(double), double *x);

double GoldenSectionSearch(double *section, double

(*f)(double), double *xmin);

double f(double

*x, int n);

void FindSection(double *x_start, double *x_delta, double

(*f)(double*, int), double **x);

double GoldenSectionSearch(double

**section, double (*f)(double*, int), double *xmin);

- Ch.2 Unconstrained Optimization Method

15/51

(16)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2009 Fall, Computer Aided Ship Design – Part1.Optimal Ship Design

Unconstrained optimization problem

 황금분핛법을 이용하여 다음 2변수 함수의 최소점을 구하시오. 단, 시작 점 x (0) = (0, 0), convergence tolerance  = 10 -6 , 탐색 방향은 (1.0, - 1.5)이다.

2 2 2

1 2

1 2

1 2

1 , ) 2 2

( x x x x x x x x

f     

Minimize

 미지수 2개인 최적화 문제

4 2 0 2 4

4 2 0 2 4

4

2

0

2

4

4 2

0 2

4

0 50 100

4

2

0

2

4

f (x

1, x2)

x

2

x

1

x 1 x 2

- Ch.2 Unconstrained Optimization Method 16/51

(17)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

Naval Architecture & Ocean Enginee ring

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2009 Fall, Computer Aided Ship Design – Part1.Optimal Ship Design

Ch.2 Unconstrained optimization method 2.3 Direct Search Method

(직접 탐사법)

Hooke & Jeeves Direct Search method Nelder & Mead Simplex method

- Ch.2 Unconstrained Optimization Method

(18)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

 기준점에서의 Local Pattern Search와 최적해 방향으로 가속화하 는 Global Pattern Move를 이용해 최적해를 찾는 방법

b

1

b

2 2

t

0

3

t

0

b

3

b

4 4 5

0

b

t

x

1

x

2

5

t

0

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method

7

Global Pattern Move

Local Pattern Search

기준점

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

- Ch.2 Unconstrained Optimization Method

18/51

(19)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Example of Hooke & Jeeves Direct Search Method (1/5)

x

1

x

2

b

1

b

2 2

t

0

1. „Local Pattern Search‟ at point b 1

•x 1 방향 탐색

목적 함수 개선이 없음  x 1 방향 이동 없음

•x 2 방향 탐색

목적 함수 개선이 있음  +x 2 방향 이동

•최종 이동 후 base point b 2 정의

2. „Global Pattern Move‟ at point b 2

•b

2 에서 b 1 을 대칭시켜 임시점 t 0 2 를 구함

•t 0 2 에서 목적 함수 값이 b 2 보다

개선되었으므로 t 0 2 에서 Local Pattern Search 수행

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

- Ch.2 Unconstrained Optimization Method

19/51

(20)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Example of Hooke & Jeeves Direct Search Method (2/5)

x

1

x

2

b

1

b

2 2

t

0

3

t

0

b

3

3. „Local Pattern Search‟ at point t 0 2

•x 1 방향 탐색

목적 함수 개선이 있음  +x 1 방향 이동

•x 2 방향 탐색

목적 함수 개선이 있음  +x 2 방향 이동

•최종 이동 후 base point b 3 정의

4. „Global Pattern Move‟ at point b 3

•b

3 에서 b 2 을 대칭시켜 임시점 t 0 3 를 구함

•t 0 3 에서 목적 함수 값이 b 3 보다 개선되지 않았으므로 b 3 에서 Local Pattern

Search 수행

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

- Ch.2 Unconstrained Optimization Method

20/51

(21)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Example of Hooke & Jeeves Direct Search Method (3/5)

x

1

x

2

b

1

b

2 2

t

0

3

t

0

b

3

b

4

t

04

5. „Local Pattern Search‟ at point b 3

•x 1 방향 탐색

목적 함수 개선이 있음  +x 1 방향 이동

•x 2 방향 탐색

목적 함수 개선이 없음  x 2 방향 이동 없음

•최종 이동 후 base point b 4 정의

6. „Global Pattern Move‟ at point b 4

•b

4 에서 b 3 을 대칭시켜 임시점 t 0 4 를 구함

•t 0 4 에서 목적 함수 값이 b 4 보다

개선되었으므로 t 0 4 에서 Local Pattern Search 수행

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

- Ch.2 Unconstrained Optimization Method

21/51

(22)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Example of Hooke & Jeeves Direct Search Method (4/5)

x

1

x

2

b

1

b

2 2

t

0

3

t

0

b

3

b

4

t

04

7. „Local Pattern Search‟ at point t 0 4

•x 1 방향 탐색

목적 함수 개선이 없음  x 1 방향 이동 없음

•x 2 방향 탐색

목적 함수 개선이 없음  x 2 방향 이동 없음

•목적 함수의 개선이 없으므로 현재 위치를 base point b 5 로 정의

8. „Global Pattern Move‟ at point b 5

•b

5 에서 b 4 을 대칭시켜 임시점 t 0 5 를 구함

•t 0 5 에서 목적 함수 값이 b 5 보다 개선되지 않으므로, b 5 에서 Local Pattern Search 수행

b

5

t

50

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

- Ch.2 Unconstrained Optimization Method

22/51

(23)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Example of Hooke & Jeeves Direct Search Method (5/5)

x

1

x

2

b

1

b

2 2

t

0

3

t

0

b

3

b

4

t

04

9. „Local Pattern Search‟ at point b 5

•x 1 방향 탐색

목적 함수 개선이 없음  x 1 방향 이동 없음

•x 2 방향 탐색

목적 함수 개선이 없음  x 2 방향 이동 없음

•목적 함수의 개선이 없으므로 현재 위치를 base point b 6 로 정의

•b

5 = b 6 이므로 step size를 ½ 로 줄이고 Local Pattern Search 수행

b

5

t

50

2. Global Pattern Move 3. Local Pattern Search

1. Base Point가 계산 됨

b

6

- Ch.2 Unconstrained Optimization Method

23/51

(24)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method : Local Pattern Search rule (1/2)

① x

i

양의 방향 탐색

- 이동 후의 점 에서

함수값이 더 크다면

Local Pattern Search의 일반적 규칙

- 이동 후의 점 에서

함수값이 더 작다면

- xi

양의 방향으로 Step size만큼 탐색 점을

이동시킨 후 함수값을 비교한다

b k

- 이동 전의 점으로 돌아와

x

i 음의 방향으로 탐색을 한다.

b k F

- 이동 후의 점에서

x

i+1방향으로 탐색을 시작한다.

b k S

② x

i

음의 방향 탐색

- xi

음의 방향으로 Step size만큼 탐색 점을 이동시킨 후 함수값을 비교한다

(xi양의 방향으로 탐색이 실패할 경우에만

음의 방향으로 탐색을 실시한다.)

b k F

- 이동 후의 점 에서

함수값이 더 크다면

- 이동 후의 점 에서

함수값이 더 작다면

- 이동 전의 점으로 돌아와

x

i+1

방향으로 탐색을 시작 한다.

b k F

- 이동 후의 점에서

x

i+1

방향으로 탐색을 시작 한다.

b k F

F

S

- i를 1부터 변수의 개수 n까지 증가시키면서 탐색한다.

- n번째 변수까지 탐색을 마치면 그 점을 새로운 Base Point b

k+1로 정의한다.

(F: Fail, S: Success)

24/51

(25)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method : Local Pattern Search rule (2/2)

b k

 Local Pattern Search

<Case 1> <Case 2>

(F: Fail, S: Success)

F F

S

b k S

S <Case 3>

b k

F F

F F

b k Step/2

b k+1 b k+1

b1

b2 2

t0

3

t0

b3

b4 4 5

0 b

t

x

1

x

2

5

t0

7

Global Pattern Move

Local Pattern Search

기준점

Case 1 Case 2

Case 3

* 위 첨자 k는 step 번호를 의미 한다.

- Ch.2 Unconstrained Optimization Method

25/51

(26)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2개의 좌표 축(x 1 , x 2 )을 가진 경우의 Local Pattern Search 예시

(x 1

방향 탐색)

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method Algorithm summary (1) 1) Local Pattern Search (총 n개의 좌표 축을 가짂 경우에 대하여)

b

1

1. 기준점(Base Point) b1에서의 함수 f 의 값을 계산한다.

2. 점 b1±δ1 에서의 함수 f 의 값을 계산한다. 여기서 δ1Input Step Size이며 δ1 = [δ1, 0, 0, …, 0]T로 표현되는 n개의 원소를 가지는 벡터이다. 함수 값의 개선이 있는 점을

t 1 1

이라 놓고 이로부터 계속 탐사를 진행한다.

3. 점

t 1 1

±δ2 에서의 함수 f 의 값을 계산한다. 여기서 δ2역시 Input Step Size이며 δ2 = [0, δ2, 0, …, 0]T 이다.

그리고 함수 값의 개선이 있는 점을

t 2 1

이라 놓는다.

x

1

x

2

1

t 1

2개의 좌표 축(x 1 , x 2 )을 가진 경우의 Local Pattern Search 예시

(x 2

방향 탐색)

b

1 x

1

x

2

1

t 1 1

t 2

- Ch.2 Unconstrained Optimization Method

26/51

(27)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method Algorithm summary (2) 1) Local Pattern Search (총 n개의 좌표 축을 가진 경우에 대하여)

4. 나머지 좌표 축에 대해 위와 같은 Local Pattern Search 과정을 수행하고 새로운 기준점(New Base Point)을 설정한다. 즉, Local Pattern Search 과정이 끝나면 새로운 기준점이 선정된다. (선정된 새로운 기준점 b2 = tn1)

5. 새로운 기준점과 그 직전 기준점의 방향으로 Global Pattern Move를 수행한다.

- Ch.2 Unconstrained Optimization Method

27/51

(28)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method Algorithm summary (3)

2) Global Pattern Move

1. Local Pattern Search에 의해 얻어진 2개의 기준점을 연결하는 방향을 따라 제일 마지막 기준점에서 이 두 기준점 사이의 거리만큼 떨어져 있는 점을 임시

기준점(Temporary Point)로 설정하고(“Global Pattern Move”), 임시점에서의 함수

f 의 값을 계산한다. Global Pattern Move에 의해 선정된 임시 기준점은 다음과 같다.

k k

k k

k

k b b b b b

t 0 1   2 ( 1  )  2 1

b 2 2

t 0

3

t 0

b 3

b 4 2개의 좌표 축을 가진 경우의

Global Pattern Move의 예시

임시 기준점에서의 함수 값이

개선되지 않은 경우

2. 만일 이 임시점에서 함수 f 의 값이 개선된다면

이 점에서부터 다시

Local Pattern Search를 수행한다. 함수 f 의 값이 개선되지 않는다면 그 직전의 기준점으로 돌아가

Local Pattern Search를 수행한다.

- Ch.2 Unconstrained Optimization Method

28/51

(29)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2.3 Direct Search Method

- Hooke & Jeeves Direct Search Method Algorithm summary (4)

b 2 2

t 0

3

t 0

b 3

b 4 2개의 좌표 축을 가진 경우의

Global Pattern Move의 예시

임시 기준점에서의 함수 값이

개선되지 않은 경우

3) Closing Conditions

1. 만일 Local Pattern Search를 수행한 후에도 bk+1 = bk 이 되어 어떠한 개선이 이루어지지 않는다면 모든 δiδi/2로 바꾸어 위 과정을 반복한다.

2. 만일 모든 δiεi보다 작으면 탐사 과정을 마친다.

- Ch.2 Unconstrained Optimization Method

29/51

(30)

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design

@ SDAL

Advanced Ship Design Automation Lab.

http://asdal.snu.ac.kr Seoul

National Univ.

2009 Fall, Computer Aided Ship Design – Part1.Optimal Ship Design

Unconstrained optimization problem

 어느 선박의 상대적 건조비를 L/B와 CB의 함수로 다음 그림과 같이 표시핛 수 있 다고 하면 건조비가 최소가 되는 L/B와 CB의 값을 Hooke & Jeeves의 탐사법과 Nelder & Mead의 Simplex 방법을 이용하여 최적점을 구하고 그 과정을 그림에 각각 표시하시오.

 Hooke & Jeeves의 탐사법

 출발점: L/B = 1, C

B = 0.1

 출발점의 step size: (L/B) = 0.5, (C

B ) = 0.1

 Nelder & Mead의 Simplex 방법

 출발 모서리점: (L/B, CB) = (1, 0.1), (1.5, 0.1), (1.5, 0.2)

 중지 기준: 0.01

C B

L/B 0.1

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0

목적 함수의 contour line(f = const.)

미지수 2개인 최적화 문제 

- Ch.2 Unconstrained Optimization Method 30/51

참조

관련 문서

2009 Fall, Computer Aided Ship Design, Part3 Grillage Analysis of Midship Cargo

For Practical determination of the inverse A -1 of a nonsingular nxn matrix A, Gauss elimination can be used.. : This method is

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design.. @ SDAL Advanced Ship

Hull Form Modeling 2009 Fall, Computer Aided Ship Design – Part2..

Department of Naval Architecture and Ocean Engineering, Seoul National University... 2009

Computer Aided Ship Design 2008 –– PART II: Ship Motion &amp; Wave Load PART II: Ship Motion &amp; Wave

2009 Fall, Computer Aided Ship Design – Part1 Optimal Ship Design.. @ SDAL Advanced Ship

선박기본설계개론, 2006.3 Computer Aided Ship Design 2008 Computer Aided Ship Design 2008 –– PART III: Optimization Methods , 2006.3 PART III: