Tổng quan về tối ƣu hoá và các khái niệm cơ bản

Một phần của tài liệu Một số thuật toán phân cụm trong khai phá dữ liệu (Trang 83)

4.1.1. Một số khái niệm trong giải tích lồi

- Tập lồi: Đoạn thẳng [a, b] là tập các điểm xa (1 ) , 0b   1. Hai điểm a, b

là hai đầu mút, các điểm còn lại là các điểm trong của đoạn thẳng.

Một tập lồi là một tập C mà hễ hai điểm a, b thuộc C thì cả đoạn thẳng [a, b] nằm trong C.

- Bao lồi: Bao lồi của tập E là giao của tất cả các tập lồi chứa E (tập nhỏ nhất chứa E).

- Tập Afin: Trong không gian vector hữu hạn chiều, chẳng hạn X = n

R . Cho a, b

thuộc X. Đường thẳng qua a, b là tập các điểm xa (1  ) ,bR. Một tập afin là một tập M mà hễ hai điểm a, b thuộc M thì cả đường thẳng qua a, b cũng thuộc M.

- Tập mở - tập đóng: Tập X trong không gian metric là mở nếu nó không chứa điểm biên nào của nó cả; đóng nếu nó chứa tất cả các điểm biên của nó

- Tập compac: Một tập M trong không gian metric X được gọi là compac nếu mọi dãy {xn}  M đều có một dãy con  xnk hội tụ đến một điểm thuộc M. Một tập compac M bao giờ cũng là đóng và hoàn toàn bị chặn.

- Hàm lồi – Hàm lõm: Cho X là một không gian vector định chuẩn. Hàm

: [ , ]

f X     gọi là hàm lồi nếu

1, 2 , [0,1]: ( 1 (1 ) 2) ( ) (11 ) ( 2)

x x Xfxxf xf x

        

. (4.1) Hàm f gọi là lõm nếu –f là lồi; afin nếu f vừa lồi vừa lõm.

- Hàm D.C (D.C = Difference of two convex function)

Cho một tập lồi Cn

R . Hàm h:CR gọi là d.c trên C nếu có hai hàm lồi: : , :

p CR q CR sao cho

( ) : ( ) ( )

h xp xq x với mọi xC. (4.2) Một hàm là d.c trên n

R sẽ được gọi là d.c. Một bất đẳng thức h(x) ≤ 0 được gọi là d.c bất đẳng thức ngược lại gọi là d.c.

- Hàm Lipsít: Cho tập Mn

R . Hàm h: RnR gọi là Lipsít trên M nếu tồn tại hằng số thực L = L(h, M) sao cho

( ) ( ) , , .

h xh yL xyx yM

(4.3) Nếu h(x) ≤ 0 thì gọi là Lipsít bất đẳng thức trên M ngược lại gọi là Lipsít trên M.

- Hàm tuyến tính: Cho không gian vector X. Hàm số f(x) xác định trên X và lấy giá trị là số (thực hay phức, tuỳ theo X là không gian thực hay phức) gọi là tuyến tính nếu

1, 2 , , : ( . 1 . )2 . ( )1 . ( )2 (adsbygoogle = window.adsbygoogle || []).push({});

x x X p q f p x q x p f x q f x

      (4.4)

Dạng tổng quát của một hàm tuyến tính liên tục trên n

Rf x( )  a x, trong đó a

là một vector nào đó của n

R .

- Hàm song tuyến tính: Cho một không gian định chuẩn X. Hàm số f(x, y) xác định tên X × X gọi là hàm song tuyến tính, nếu với mỗi x cố định nó tuyến tính theo y và với mỗi y cố định nó tuyến tính theo x. Tức là

1, 2, , , : ( . 1 . , )2 . ( , )1 . ( , )2

x x y X p q f p x q x y p f x y q f x y

      (4.5)

- Hàm dƣới tuyến tính : Hàm thực ( )x trên một không gian vector X được gọi là dưới tuyến tính, nếu

1 2 1 2

1) (xx )( )x ( )x với mọi x1, x2  X;

4.1.2. Các bài toán tối ƣu 1. Định nghĩa bài toán tối ƣu

Một bài toán tối ưu là một bài toán có dạng

min {f(x) | xC} (4.6) Trong đó C  X, là tập chấp nhận được (tập ràng buộc), (X là một không gian nào đó); f :CRhàm mục tiêu. Mỗi vector xC gọi là một phương án (nghiệm, lời giải) chấp nhận được. Một lời giải x*gọi là tối ưu (hay chính xác hơn, tối ưu toàn cục) nếu

* *

, ( ) ( ) .

xC f xf x  x C (4.7) Giá trị của hàm f tương ứng gọi là cực tiểu toàn cục trên C và ký hiệu là minf(C) Tập nghiệm của (4.6) ký hiệu là argminf(C). Điểm x* thoả (4.7) còn được gọi là một

global minimizer của f trên C (theo [17])

Một lời giải xC gọi là tối ưu địa phương (cục bộ) nếu có một lân cận W của x

(tập mở chứa x) sao cho

( ) ( ) W

f xf x  xC

Nhiều khi C được cho bởi

C = {xn

R | gi(x) ≤ 0 (i = 1, 2, …, m)} (4.8) với gi : RnR. Khi ấy các hệ thức gi(x) ≤ 0 (i = 1, …,m) gọi là các ràng buộc.  Chú ý: max{ ( ) | f x x  } C  min{f x( ) | xC} vì vậy chỉ cần bàn về các bài

toán tìm cực tiểu.

2. Các loại bài toán tối ƣu

Tối ưu trong không gian hữu hạn chiều (X là không gian vectơ hữu hạn chiều) (adsbygoogle = window.adsbygoogle || []).push({});

- Tối ưu tuyến tính: f(x) tuyến tính và C là một tập đa diện, tức được cho bởi

(4.8) trong đó các hàm gi(x) afin.

- Tối ưu phi tuyến: lồi, không lồi; trơn, không trên; địa phương, toàn cục.

- Tối ưu rời rạc (tổ hợp): C là một cấu trúc rời rạc.

- Tối ưu đa mục tiêu: không phải chỉ có một hàm mục tiêu duy nhất như trong

bài toán (4.6) mà có một số mục tiêu không tương thích với nhau (nghĩa là không có lời giải nào tối ưu theo mọi mục tiêu), cho nên cần “dung hoà” các mục tiêu theo cách nào hợp lý, hiệu quả nhất.

- Tối ưu nhiều cấp: bài toán gặp trong một hệ thống phân cấp, mà hàm mục

tiêu của cấp cao là f(x, y) phụ thuộc vào hai nhóm biến: xp

Ryq

Cấp cao chỉ trực tiếp kiểm soát x, còn y do cấp dưới quyết định. Khi cấp cao quyết định một giá trị cụ thể của x thì cấp dưới căn cứ theo giá trị đó để lựa chọn phương án tối ưu của bản thân họ. Cấp cao biết bài toán tối ưu của cấp dưới, tức là biết rằng khi cho x thì y là lời giải tối ưu của bài toán này. Vấn đề đặt ra là cấp cao phải tìm x để đạt tối ưu mục tiêu của mình.

Sau đây sẽ trình bày cụ thể hơn về một số bài toán tối ưu thường gặp.

a. Cực tiểu hàm lõm (cực đại hàm lồi)

min { ( ) | f x x } (4.9) trong đó f(x) là hàm lõm,  là tập lồi đóng, chẳng hạn  = {x | g(x) ≤ 0} với g(x) là một hàm lồi. Đặc biệt quan trọng là trường hợp  là tập đa diện.

Đây là bài toán tối ưu toàn cục, vì tính phổ thông của nó, và vì nhiều bài toán tối ưu toàn cục quy về nó hoặc ít nhiều dựa trên phép giải của nó,

b. Bài toán lồi đảo

min { ( ) | f x x , ( )h x 0} (4.10) Trong đó f(x), h(x) là hàm lồi,  là tập lồi đóng. Bài toán này chỉ khác quy hoạch lồi ở chỗ có thêm ràng buộc lồi đảo h(x) ≥ 0. Đặt C = {x | h(x) ≤ 0} thì C là tập lồi đóng và bài toán cũng có thể viết thành:

min { ( ) | f x x \ int }C c. Quy hoạch D.C

min { ( ) | f x x ,h xi( ) 0,i1,..., }m (4.11)

Trong đó f(x), hi(x) đều là hàm d.c và  là một tập lồi đóng. Vì

( ) 0 ( 1,..., ) min ( ) 0

i i i

h ximh x  cũng là một hàm d.c, cho nên bao giờ cũng có thể đưa bài toán về trường hợp chỉ có một ràng buộc d.c. Như vậy, một quy hoạch d.c có dạng tổng quát (chính tắc):

min { ( ) | f x x , ( )h x 0}

Trong đó f(x), h(x) đều là hàm d.c. Dĩ nhiên cả quy hoạch lõm và lồi đảo đều là trường hợp riêng của quy hoạch d.c. Ngược lại bất kỳ quy hoạch d.c nào cũng có thể đưa về bài toán lồi đảo.

d. Quy hoạch song tuyến tính

min f x y( , ) pxx(Cy)qy (4.12) với x  X và y  Y; ở đây X, Y là tập các tập đa diện lồi, đóng trong n

R , m R , pn R , qm R , Cm nR

Cả hàm mục tiêu và các ràng buộc đều bất kỳ (d.c hoặc không d.c). Nếu hàm mục tiêu và các ràng buộc đều liên tục thì bài toán có thể viết

min { ( ) | f x xD}

Trong đó D là một tập đóng, và bao giờ cũng có thể đưa về trường hợp f(x) tuyến tính. Nhưng cũng có thể chứng minh rằng với mỗi tập đóng D trong n (adsbygoogle = window.adsbygoogle || []).push({});

R có thể tìm được hai hàm lồi g(x), h(x) sao cho D{xRn | ( )g xh x( )0}. Thành thử mọi bài toán tối ưu liên tục có thể quy về tối ưu d.c.

Nêu bài toán có những ràng buộc dạng 0-1: xi {0, 1}, i = 1, …, p thì các ràng buộc này cũng có thể viết lại thành ràng buộc d.c vì

xi 0,1   0 xi 1, (x xi i 1) 0.

Như vậy, trên nguyên tắc mọi bài toán tối ưu rời rạc (tối ưu tổ hợp) đều có thể phát biểu lại thành bài toán tối ưu d.c.

Gần đây, đã đưa ra lý thuyết toàn cục được mô tả bởi những hàm có thể biểu diễn thành hiệu của hai hàm đơn điệu. Hàm đơn điệu nói ở đây là một hàm

: n

f RR có hai tính chất: hễ x’ ≤ x thì f(x’) ≤ f(x) (hàm tăng), hoặc tính chất: hễ x’ ≥ x thì f(x’) ≤ f(x) (hàm giảm).

4.1.3. Một số phƣơng pháp giải quyết bài toán tối ƣu 4.1.3.1. Phân hoạch không gian

Trong các bài toán tối ưu toàn cục vì phải tìm kiếm trên toàn miền ràng buộc cho nên thường phải dùng hai phép toán tổ hợp:

1) Phân hoạch (chia nhỏ) không gian rồi loại dần những miền không hy vọng;

2) Trong mỗi bước có một số lượng lớn các miền nhỏ (tập phân hoạch) cần

khảo sát, nên không thể khảo sát tỉ mỉ ngay tất cả các miền mà phải có một cách ước lượng nhanh để xác định những miền vô dụng và những miền có hy vọng, cần chia nhỏ hơn nữa để khảo sát sâu hơn.

Trước hết là việc phân hoạch không gian. Thường có ba kiểu phân hoạch chính: 1) chia hộp; 2) chia đơn hình; 3)chia nón.

a. Chia hộp (nói rõ hơn: hộp chữ nhật) trong n

R là một tập có dạng   1 [ , ] : | [ , ] n n j j j a b x a x b a b   R     (4.13)

Khi có một hộp M = [a, b] có thể chia nó ra hai hộp con bằng một siêu phẳng trực giao với một cạnh [aj, bj] (j  {1, …, n}) và đi qua một điểm trong v của hộp. Vì chỉ số j và điểm v hoàn toàn xác định siêu phẳng chia nên phép chia gọi là chia theo (v, j). Hai hộp con sinh ra do phép chia đó là

j j,  j j.

M  xM xv M  xM xv (4.14) Ta nói phép chia (v, j) là phép chia chuẩn theo tỷ lệ  > 0 nếu cạnh [aj, bj] là cạnh dài nhất của M và nếu

 

min vja bj, jvj (bjaj).

Một quá trình tìm kiếm toàn cục là một quá trình lặp như sau: Xuất phát từ một hộp đầu tiên M1 (đủ lớn để chắc chắn trong đó có ít nhất một lời giải tối ưu), ta chia nó ra hai hộp con, rồi chọn một trong hai hộp con ấy, chẳng hạn M1, để chia đôi thành hai hộp nhỏ hơn,… Cứ mỗi bước lặp thì đã có sẵn một số hộp (có thể thuộc những thế hệ khác nhau), loại bớt một số hộp tin chắc là vô dụng, rồi chọn một trong các hộp còn lại để chia đôi nữa, v.v… Ký hiệu Mk là hộp được chọn để chia ở bước lặp thứ k. Cứ tiếp tục quá trình đó mãi thì sẽ sinh ra ít nhất một dãy hộp  , 1, 2,...,

q k M q sao cho 1 q k M  là con của q k

M . (Thật vậy, trong hai hộp của Mk1 phải có một hộp, chẳng hạn Mk2, chứa vô số hộp nhỏ (nghĩa là được chia vô số lần); rồi trong hai hộp con của 2 k M cũng có ít nhất một hộp, 3 k

M , chứa vô số hộp nhỏ, v.v…). Quá trình chia được gọi là vét kiệt nếu mỗi dãy hộp như thế đều teo lại thành một điểm, nghĩa là

 * 1 0 ( ), hay q q k k q diam M q M x        b. Chia đơn hình

Trong một không gian định chuẩn X ta xét p + 1 điểm 1 2 1

, ,..., p

u u u  sao cho các

vector 1 1 2 1 1

, ,..., (adsbygoogle = window.adsbygoogle || []).push({});

p p p p

uuuuuu  độc lập tuyến tính (khi ấy ta cũng nói các điểm

1 2 1

, ,..., p

u u u  là độc lập afin). Bao lồi của tập 1 2 1

, ,..., p u u u  , tức là tập M gồm tất cả các điểm 1 2 1 1 2 ... 1 p p xuuu       với i 0 (i 1,...,p1), 1 2  ... p1 1 gọi là đơn hình p chiều (hay p-đơn hình) sinh bởi 1 2 1

, ,..., p

u u u  . Ta viết

1 2 1

, ,..., p

M  u u u  . Các điểm 1, 2,..., p 1

u u u  gọi là các đỉnh của đơn hình. Xét một p - đơn hình M trong 1,.., 1 ( ) min ( ) max m i v r k i v V M r g x v a                    . Nếu một điểm v thuộc một cạnh [uj, uk], nhưng vu vj, uk thì dễ kiểm tra lại rằng v

xác định phép chia đơn hình M thành 2 đơn hình con: M(j), M(k) mà tập các đỉnh thu được từ tập { 1 2 1

, ,..., p

u u u  } bằng cách thay uj (uk, tương ứng) bởi v. Nếu cạnh [uj, uk] là dài nhất trong M

 

min vuj , vuk , 0  1/ 2

Thì phép chia gọi là một phép chia chuẩn theo tỉ lệ . Cũng như trong cách chia hộp, có thể định nghĩa một quá trình chia, xuất phát từ một đơn hình ban đầu M1 và đến bước lặp k thì loại một số đơn hình trong phân hoạch lúc đó và chọn một đơn hình Mk còn lại để tiếp tục phân đôi nó. Nếu quá trình vô hạn thì bao giờ cũng có ít nhất một dãy

q

k

M sao cho mỗi đơn hình trong dãy là con của đơn hình trước nó. Ta nói quá trình vét kiệt nếu mọi dãy như thế đều teo lại thành một điểm:

 * 1 0 ( ), hay q q k k q diam M q M x        . c. Chia nón

Trong nhiều bài toán miền ràng buộc nằm trong một nón M gốc O, có đúng n

cạnh độc lập tuyến tính đi qua các đỉnh của một (n - 1)-đơn hình S, cho nên việc tìm kiếm có thể giới hạn trong nón này. Khi ấy, có thể phân hoạch M thành những nón con, dựa trên sự phân hoạch đơn hình như sau:

Cứ mỗi cách chia đơn hình S ra một số đơn hình con S1, …, Sm thì tương ứng với nó có đúng một cách chia nón M ra bấy nhiêu nón con M1, …, Mm. Mỗi nón Mk

có đúng n cạnh đi qua n đỉnh của đơn hình con tương ứng. Nếu dãy đơn hình

q

k

S vét kiệt thì dãy nón Mkq cũng vét kiệt theo nghĩa: giao của chúng là một tia (nửa đường thẳng gốc ở O).

4.1.3.2. Nới lỏng và tính cận (adsbygoogle = window.adsbygoogle || []).push({});

Để giải các bài toán tối ưu không lồi có một phương pháp thường dùng nhất và có hiệu quả đối với các bài toán cỡ lớn là phương pháp nhánh cận hay chia và cắt. Như trên đã nói, có thể dùng phân hoạch hộp, đơn hình hay nón. Giả thiết bài toán là

 

min f x( ) |x D Rn

Trong đó f(x) là một hàm hữu hạn, và có một phân hoạch M1 (nghĩa là có một hộp, đơn hình, hay nón, tuỳ theo kiểu phân hoạch) được biết có supf x( ) |xM1 , và chứa trọn miền ràng buộc hoặc chứa ít nhất một lời giải tối ưu.

a. Ý tưởng của phương pháp nhánh cận trong tối ưu hoá toàn cục:

- Bắt đầu với một tập khả thi M0 D và chia (phân hoạch) M0 thành một số hữu hạn tập con Mi , i  I.

- Với mỗi tập con Mi xác định cận dưới (Mi) và cận trên (Mi) thoả

(Mi) inf (f Mi ) (Mi).

  D 

Khi đó, : min ( i), : min ( i)

i I M i I M         là các cận “tổng thể”, tức là min ( )f   D 

- Nếu  =  (hoặc  -  ≤  với  > 0 cho trước) thì dừng. Ngược lại, chọn một số tập con Mi và phân chia tiếp với hy vọng là cận trên tập con mới sinh ra sẽ tốt hơn.

Quá trình tiếp tục cho đến khi gặp điều kiện kết thúc.

Phương pháp nhánh cận cải tiến là trong quá trình lặp ta xoá đi các tập con của D khi biết rằng không đạt được min ( ) f D trên đó. Độ chính xác của nghiệm xấp xỉ được đo bằng hiệu  -  của các cận hiện tại.

Định nghĩa: B là một tập con của n

R và I là tập hữu hạn các chỉ số. Một tập các tập

con {Mi : i I} của B được gọi là một phân đoạn của B nếu

i i I

B M

 và MiMj  Mi  Mj, i j, I i,  j

ở đây Mi là biên của Mi.

Lấy M là một phần tử của phân đoạn hiện tại trong phương pháp nhánh cận ở trên. Với M0 và tất cả các phân đoạn của M đơn giản thường là tập đa diện lồi chẳng hạn như đơn hình, hình hộp chữ nhật và hình nón. Trong văn cảnh này, tập M thường là

Một phần của tài liệu Một số thuật toán phân cụm trong khai phá dữ liệu (Trang 83)