Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

Embed Size (px)

Citation preview

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    1/41

    1/23

    Chương 3. Gii bi ton ti ưu theophương php di truyn

    Ngưi son: TS. Đ Văn Tuân

    H Ni, 2016

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    2/41

    3.2. Biu din vec tơ nh phân

    2/23

     Sử dụng véctơ nhị phân có đ dài   như mt NST đểbiểu diễn giá trị thực của biến    [lx, ux].

      Đ dài  của NST phụ thuc vào yêu cầu cụ thể của bàitoán.

      Mi gi trị nguyên trong khong [0, 2n -1] sẽ được ánh x

    lên giá trị thực thuc min [lx,ux].

    Tỷ lệ co giãn của ánh x được tính như sau:

     x = lx+ decimal(NST) * g

       −Trong đ, decimal(NST) l gi trị thp phân của dy bt

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    3/41

    3/23

    Tìm cực tiểu mt hàm k biến f(x 1,…,x 

    k  ): Rk  R. Gi sử:

      Gi trị biến x i  thuc min Di  =[ai , bi  ]   R 

      Hm f(x 1,…,x k  ) > 0 

    Cần ti ưu hoá hàm   f  với đ chính xác 6 ch s dâu phyđi với gi trị của k biến.

     Để đt được đ chính xác như vy, mi min  Di  được phân

    cắt thành   (bi   –   ai  )* 106 min con bằng nhau. Gọi   mi   là snguyên nhỏ nhât thỏa:

    ()10 ≤ 2  1

    V d

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    4/41

    4/23

     Như vậy, mỗi biến   xi được biểu diễn bằng một chuỗi nhị phân có

    chiều dài  mi. Biểu diễn như trên, rõ ràng thoả mãn điều kiện về độ

    chính xác yêu cầu. Công thức sau tính giá trị thập phân của mỗi

    chuỗi nhị phân biểu diễn biến  xi

       + 1100,… , 01   2 Ơ v d ny, mỗi nhiễm sắc thể (l một lời giải) được biểu diễn bằng chuỗi nhị phân có chiều di n=    k i=1 mi .

    m1 bit đầu tiên biểu diễn các giá trị trong khoảng [a1 ,b1], … ,   mk  bitcuối cùng biểu diễn giá trị trong khoảng [ak  , bk ].

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    5/41

    3.3. Khi to quân th

    5/23

    -   Xc định kch c quần thể (s NST), gi sử l M

    -   Thực hiện M lần sinh dy bt ngu nhiên c đ di N (s

    bt đi diện cho mi c thể)

    Th tc sinh quân th:function [ P] = khoi_tao_quan_the( k,bits,M )

    % k so bien cua ham

    % bits so bit bieu dien gia tri cua bien

    % M kich thuoc quan then

    N = k*bits; % so bit cho moi nhiem sac the

    P =randi([0,1],[M,N]);

    end

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    6/41

    6/23

    Phân còn li ca thuật giải di truyền:

     Mi thế hệ, ta lượng giá từng NST (tính giá trị hàm f  trên

    các chui biến nhị phân đ được gii mã)

     Chọn quần thể mới tho phân b xác suât dựa trên đ

    thích nghi

     Thực hiện các phép đt biến và lai để to các cá thể thế

    hệ mới.

    Sau mt s thế hệ, khi không còn ci thiện thêm được gì

    na, nhiễm sắc thể tt nhât sẽ được xem như li gii của

    bài toán   ti ưu (thưng   là toàn  cục). Thông   thưng,   ta

    dừng thut gii di truyn sau mt s bước lặp c định.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    7/41

    3.4. Ton t chn lc

    7/23

    Có nhiều cách để thực hiện toán tử chọn lọc, nói chung đều theo

    tư tưởng cá thể có độ thích nghi cao hơn thì khả năng được chọn

    nhiều hơn.

    Mt sô phương phap chon loc thông dung:

      Bánh xe Roulette

      Sắ p xế p hng cá thể

      Chọn lọc có cnh tranh

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    8/41

    3.4.1. Chn lc bng bnh xe Roulette

    8/23

      Mi cá thể trong quần thể chiếm mt khe có đ rng tỷ lệthun với giá trị  phù hợp.  Đ rng của  khe được  tính

    bằng tỷ lệ % giá trị thch nghi của mt cá thể trên tổng

    giá trị thch nghi toàn quần thể.   Gọi  là đ thch nghi của cá thể thứ   trong quần thể

    gồm M cá thể, khi đ cá thể  sẽ được chọn với xác suât:

        =  

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    9/41

    V d

    9/23

    STT NST   Đ thch nghi   Tỷ lệ % Tổng chy

    1

    23

    4

    01101

    1100001000

    10011

    169

    57664

    361

    14.4

    49.25.5

    30.9

    169

    745809

    1170

    Tổng   1170 100.0

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    10/41

    Cc bưc tiên hnh

    10/23

    Bư c 1: Đánh số thứ tự cho các cá thể v Tnh tng giá trị thch

    nghi như bảng trên.

    Bư c 2: Sinh ngu nhiên số r,

     0 ≤ ≤  (S l tng giá trị thch

    nghi của ton bộ quần thể)

    Bư c 3: Chọn cá thể đầu tiên có tng chy bằng hoc l n hơn r 

    Xét v dụ trên, nếu r = 654 thì chọn NST thứ 2 (11000)

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    11/41

    3.4.2. Xêp hng cc c th

    11/23

    Phương php ny hon ton ging như sử dụng Roulettengoi trừ dy c thể được sắp xếp theo giá  trị của  hàm

    mục tiêu. Cá thể đầu tiên là cá thể tt nhât và cá thể cui

    cùng là cá thể tồi nhât. Vy c thể thứ (N-j) sẽ c xc suâtđược chọn l:

    −   =  

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    12/41

    3.4.3. Chn lc c cnh tranh

    12/23

     Nội dung chnh của phương phá p:

      Chọn   cá   thể từ quần thể hiện ti một  cách  ngu  nhiên vàchọn cá thể tốt nhất trong  cá thể đó để sao chép sang quầnthể tm thời.

      Lp li bưc trên N lần chúng ta sẽ có quần thể tm thời.

    Giá trị  được gọi là kích cỡ của chọn lọc cnh tranh. Khi  2chúng ta chọn lọc cnh tranh nhị phân

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    13/41

    3.4. Ton t lai ghep (Crossover)

    13/23

    Có 3 dng lai ghe p cơ bản:

      Lai ghe p 1 điểm

      Lai ghe p nhiều điểm   Lai ghe p theo mt n

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    14/41

    3.4.1. Lai ghep 1 đim

    14/23

    Từ hai cá thể cha mẹ đã chọn P1, P2; toán tử này cần sinh ngunhiên một vị trí k (1

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    15/41

    Th tc lai ghep mt đim bng Matlab

    15/23

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    16/41

    3.4.2. Lai ghep nhiều đim

    16/23

     Lai ghép nhiều điểm được thực hiện tương tự như lai ghép một

    điểm

      Vi hai cá thể cha mẹ đã chọn P1 v P2, thuật toán cần sinh ngu

    nhiên  vị trí:i1, ... , ik  vi giả thiết i1 < i2 < ... < ik  .

      Các điểm cắt này chia các cá thể đã chọn thành các đon được

    đánh số chẵn lẻ;

      sau đó hai cá thể con được to thành bằng cách tráo đi các gencủa cp cha mẹ tuỳ theo các đon chẵn hay lẻ đã nêu.

    Trong lai ghép nhiều điểm thì lai ghép hai điểm cắt được quan tâm

    nhiều nhất.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    17/41

    V d lai ghep 2 đim

    17/23

    Chẳng hn

    P1 = (1 1  1 0 0  0 1 0  1 0) P2 = (0 1 0 1 1 0 0 1 1 1)

    l hai chuỗi nhị phân độ di 10, giả sử các điểm cắt đã chọn l 2,

    5, 8 thế thì hai con được sinh ra l :

    C1 = (1 1  0 1 1 0 1 0  1 1) C2 = (0 1 1 0 0  0 0 1 1 0)

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    18/41

    Th tc lai ghep nhiều đim

    18/23

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    19/41

    3.4.3. Lai ghep kiu mt n

    19/23

      Loi lai ghép này còn gọi là lai ghép đều;

      Sinh một chuỗi nhị phân ngu nhiên cũng có độ dài n gọi là

    chuỗi mt n.

     Hai con được to ra dựa trên chuỗi mt n này, chẳng hn gen

    thứ i của cá thể con C1 được lấy là gen thứ i của P1 nếu bit mt

    n tương ứng là 1 và lấy gen thứ i của P2 nếu bit mt n là 0.

    Cá thể con C2 được to ngược li.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    20/41

    V d

    20/23

    Ví dụ: Với   P1 = (1 1 1 0 0 0 1 0 1 0)

    P2 = (0 1 0 1 1 0 0 1 1 1)

    Gi sử mặt n U được khởi to ngu nhiên:U = (0 1 1 0 0 1 1 0 0 1)

    Khi đ, hai con được ra là :

    C1 = (0 1 1 1 1 0 1 1 1 0) C2 = (0 1 0 0 0 0 0 0 1 1)

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    21/41

    Th tc lai ghep theo kiu mt n

    21/23

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    22/41

    3.5. Ton t đt biên (Mutation)

    22/23

      Toán tử đột biến làm thay đi các thông tin của quần thể ở mức

     bit (gen).

      Đột biến làm thay đi giá trị của một bit bất kỳ theo xác suất pm.

      Mỗi bit đều có cơ hội đột biến như nhau.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    23/41

    Th tc đt biên

    23/23

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    24/41

    3.6. Hm thch nghi

    24/23

    Do giá trị thch nghi trong gii thut di truyn là không âm, nên

    để áp dụng GA cho bài toán ti ưu ta cần phi chuyển giá trị

    chi ph của hm mục tiêu v gi trị thch nghi cho ph hợp.

    Nếu   bài toán   ti ưu   là   cực tiểu   hàm  mục   tiêu g(x) thì ta

    chuyển sang hàm thch nghi như sau:

    Cmax là tham s vào do ngưi sử dụng chọn, thưng chọn là

    giá trị lớn nhât của hàm mục tiêu trong tp hiện ti

     

    lainguoc

    C  x g  x g C  x f  

    0

    )()()(

      maxmax

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    25/41

    25/23

    Nếu bài toán ti ưu là cực đi hàm mục tiêu g(x), ta có thể

    chuyển sang hàm phù hợp như sau:

    Trong đ Cmin là tham s đầu vào, Cmin có thể là giá trị tuyệt

    đi bé nhât của các hàm mục tiêu trong tp hiện ti hoặc

    trong  vòng lặp cui

     

    lainguoc

    C  x g  x g C  x f  

    0

    0)()()(

      minmin

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    26/41

    3.7. Thang đo gi tr thch nghi

    26/23

    Việc điu chỉnh s lượng con cháu cho  mi cá thể trong

    quần thể là rât quan trọng:

    Lúc bắt đầu hoặc sau vài vòng lặp đầu tiên, các quần thể

    thưng có mt s cá thể “siêu khoẻ” có kh năng chiếm

    lĩnh phần lớn quần thể và có thể dn đến hi tụ sớm không

    mong mun (vì các cá thể “siêu khoẻ” này sẽ có thể có rât

    nhiu con)

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    27/41

    27/23

    Nếu cứ để như vy mà chọn lọc thì giá trị thch nghi của

    các cá thể thành phần sẽ tiến gần đến giá trị thch nghi củacá thể tt nhât.

    Vy ta mun, sau nhiu lần lặp, các cá thể trung bình cũng

    có con s tương đương với các cá thể tt nhât trong thế hệtiếp   theo. Khi  đ gii thut  di   truyn trở   thành tìm  kiếm

    ngu nhiên gia các cá thể thành phần). Thang đo giá trị

    thch nghi sẽ gii quyết vân đ này.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    28/41

    Thang đo tuyên tnh

    28/23

    Nếu gọi  là giá trị thch nghi ban đầu và ’ là giá trị thch

    nghi sau khi biến đổi:Ta có: ’  × +   (1)

    Trong đ a và b được chọn sao cho:

     ’    (2) ’max  ×   (3)Cmult là bn sao cần thiết đi với thành viên tt nhât.

     Đi với các quần thể kích c nhỏ (50-100 cá thể),Cmult =1.2 2 là khá hiệu qu.

     : giá trị phù hợp trung bình ban đầu

     ’: giá trị phù hợp trung bình sau khi biến đổi.

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    29/41

    3.8. S dng GA đ tm cc tiu hm f(x) mt biên

    29/23

    Giả sử ta phải tìm cực trị của hàm f(x):

    f(x)= x*sin(10**x)+1 vi x  [-1, 2]

    Input: tập các giá trị x [-1, 2]

    Output: giá trị x làm cho f(x) cực tiểu

    Việc tìm x trong khoảng [-1,2] để  có giá trị nhỏ nhất, nghĩa làtìm x0 sao cho: f(x0)

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    30/41

    30/23

    Rõ rng l phương trình trên c vô s li gii, xem đồ thị:

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    31/41

    S dng giải thuật di truyền

    31/23

      Giá trị thực của x được biểu diễn bởi một véc tơ nhị phân gọi là NST. Chiều dài véc tơ tuỳ thuộc vào độ chính xác được yêu cầu,

    trong bài này là 6 chữ số sau dấu phẩy.

     Miền biến thiên của x có độ dài 3, vi yêu cầu độ chính xác là 6chữ số sau dấu phẩy, nên cần chia miền [-1, 2] thành 3.106 khoảng

     bằng nhau (mỗi điểm biểu diễn một giá trị của x)

    Do đó, ta có thể dùng véc tơ nhị phân dài 22 bit để biểu diễn một NST vì

    2097152 = 221 < 3000000   222 = 4194304

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    32/41

    32/23

    Để giải mã chuỗi nhị phân (21, 20, … , 0) thành giá trị thực 

    trong khoảng [-1, 2] ta thực hiện các bưc sau:Bư c 1: Chuyển chuỗi nhị phân sang cơ số thập phân:

    =

     × 2

    Bư c 2: Tnh giá trị thực của x ứng v i y:

    12

    30.1

    22

     y x

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    33/41

    Khi to quân th

    33/23

    To M các thể ngu nhiên có NST l biểu diễn bở i 22 bt nhị phân

    Hm thch nghi

    Hàm thch nghi của véc tơ chính là hàm mục tiêu

      :

    () ()Trong   đ, v là chui nhị phân biểu diễn giá trị thực của x.

    V dụ:v1= (1000101110110101000111)  x1= 0.637197v2= (0000001110000000010000)  x2= 0.958973

    v3= (1110000000111111000101)  x3= 1.627888

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    34/41

    34/23

    Khi đó hm đánh giá được tnh :

    eval(v1) = f(x1) = x1*sind(10*180*x1)+1=1.586345

    eval(v2) = f(x2) = 0.078878

    eval(v3) = f(x3) = 2.250650

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    35/41

    Ton t đt biên

    35/23

    Toán tử đt biến thay đổi mt hoặc nhiu gen với xác suât

    đt biến pm

    Ví dụ: Nếu NST v3 được chọn đt biến ở vị trí gen thứ 5, ta

    được ′:′  (1110100000111111000101)

    Tương ứng v i

     ′

      1.721638 v

     (

    ′ ) = -0.082257

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    36/41

    Ton t lai ghep

    36/23

    Giả sử ta chọn hai NST v1 và v

    2 làm cp cha mẹ để lai ghép, và

    điểm lai ghép được chọn ngu nhiên là điểm thứ 5.

    Khi đó hai NST con cháu được sinh ra là:

    v1’

    =(00000000000111111000101)v2

    ’=(1110001110000000010000)

    Hàm thch nghi của 2‘ và 3’ là:

    eval(v2’

    ) = 0.940865eval(v3

    ’) = 2.459245

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    37/41

     Yêu câu:

    Xây dựng chương trình bằng Matlab để với cc tham s

    37/23

      Kích thước quần thể: 30

      Xc suât lai ghép : 1

      Xc suât đt biến: 0.1

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    38/41

    3.9. S dng GA đ tm cc tiu hm Rastrigin

    38/23

    Hm Rastrigin đượ c định nghĩ a:

      10 + =

      10cos(2)

    Hm Rastrigin   l hm không  lôi (non-convex function) thườ ng

    đượ c dùng để kiểm tra các phương phá p tối ưu.

    V i n=2, ta có:

      , 20 +   10 cos 2 +   10 cos 2Vi   -5.12  x  5.12 v   -1.28  y  5.12

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    39/41

    M ha cc nhim săc th

    39/23

    Giả sử độ chnh xác của bi toán l 4 chữ số sau dấu phẩy, vậy

    suy ra số bt để mã hóa  v  lần lượ t l:(10.24 ∗ 10) 17 (bit)

    (6.4 ∗ 10) 15 () Như vậy, mỗi NST đượ c mã hóa bở i 32 bt

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    40/41

    Gi tr ca hm mc tiêu ca mt sô c th khi to

    40/23

    Nhiễm sắc thể   x y f(x,y)1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 5.014 0.458 45.034

    0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 -0.587 0.334 34.059

    0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 -1.939 -0.611 22.524

    0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 -1.880 1.302 21.137

    0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 -2.153 -0.043 9.278

    0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 -1.679 1.622 36.983

    1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 3.686 1.196 35.643

    0 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 -3.611 0.477 50.830

    0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 -2.296 0.579 37.278

  • 8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen

    41/41