0
Tải bản đầy đủ (.pdf) (58 trang)

Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn)

Một phần của tài liệu LUẬN VĂN: THUẬT TOÁN GEN TRONG BÀI TOÁN ĐỊNH TUYẾN VÀ PHÂN BƯỚC SÓNG MẠNG CÁP QUANG DOC (Trang 27 -58 )

Ph p tái sinh là quá tr nh trong đó các cá thể được sao ch p trên cơ sở độ thích nghi c a nó Độ thích nghi là một hàm gián một giá tr thực cho mỗi cá thể trong quần thể.

Phép chọn là quá trình loại bỏ các cá thể xấu trong quần thể, chỉ giữ lại các cá thể tốt. Phép chọn được mô tả như sau:

 Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần.

25

Chương : Thuậ án gen trong bài toán định

tu ến và ph n bước ng ạng u ng

4.1. Giới thiệu chung

Qua những phần trên chúng ta có thể thấy rằng hệ thống mạng WDM và thuật toán gen đều có những ưu điểm rất vượt trội. Một bên là một công nghệ mạng được coi là cuộc cách mạng trong công nghệ truyền thông, một bên là một thuật toán tìm kiếm đang tỏ ra là thuật toán tối ưu nhất, hoàn thiện nhất so với các thuật toán tìm kiếm thường hay sử d ng. Vậy nếu có thể kết hợp chúng được vào cho nhau tức là sử d ng thuật toán gen cho bài toán đ nh tuyến và phân bước sóng thì rất có thể sẽ thu được những kết quả rất đáng mong đợi Và đây ch nh là vấn đề sẽ được nghiên cứu trong khóa luận này.

Tuy nhiên trước đó chúng ta sẽ tìm hiểu qua về đồ th - một phương pháp d ng để biểu diễn một topology mạng và thuật toán duyệt đồ th theo chiều rộng BFS (Breadth- First Search) - thuật toán được sử d ng nhiều trong vấn đề t m đường đi đ nh tuyến c a các lightpath.

4.2. Sơ lược lý thuyế đồ thị và thuật toán BFS cho bài toán

ì đường đi ngắn nhất.

4.2.1. Lý thuyế đồ thị

Trong toán học và tin học đồ th là đối tượng nghiên cứu cơ bản c a lý thuyết đồ th Đồ th là một tập các đối tượng gọi là đỉnh được nối với nhau bởi các cạnh. Thông thường đồ th thường được vẽ dưới dạng tập các điểm đỉnh, node) nối với nhau bởi các đoạn thẳng (cạnh). Tùy theo ứng d ng mà các cạnh có thể có hướng ho c vô hướng.

Có thể biểu diễn đồ th như sau: G = V A trong đó gồm: - V : Tập các đỉnh

26

H nh 4 1 Đồ th 6 đỉnh

Đồ th thường được sử d ng để mô hình hóa một tập các đối tượng có quan hệ với nhau theo một cách nào đó Chẳng hạn trong lĩnh vực máy t nh đồ th được sử d ng để mô hình hóa một mạng truyền thông, kiến trúc c a máy t nh song song …Và rất nhiều vấn đề trong các lĩnh vực khác như công nghệ điện, hóa học, chính tr , kinh tế … cũng có thể biểu diễn bởi đồ th . Khi một vấn đề được mô hình hóa bởi đồ th thì vấn đề sẽ được giải quyết bằng cách sử d ng các thuật toán trên đồ th . Vì vậy các thuật toán đồ th có phạm v áp d ng rộng lớn và có tầm quan trọng đ c biệt

4.2.2. Thuật toán BFS

Việc duyệt đồ th theo chiều rộng được thực hiện bằng cách sử d ng kĩ thuật tìm kiếm theo chiều rộng BFS (Breadth-First Search Ý tưởng c a tìm kiếm theo bề rộng xuất phát t đỉnh v như sau T đỉnh v ta lần lượt đi th m tất cả các đỉnh u kề đỉnh v mà u chưa được th m Sau đó đỉnh nào th m trước th các đỉnh kề c a nó cũng sẽ được th m trước. Quá trình trên sẽ được tiếp t c cho đến khi không thể th m đỉnh nào nữa. Ta cần quan tâm đến các đ c điểm sau trong kĩ thuật này:

- Tại mỗi bước, t một đỉnh đã được th m ta đi th m tất cả các đỉnh kề đỉnh đó (tức là th m theo chiều rộng).

- Trật tự các đỉnh được th m là: đỉnh nào được th m trước th các đỉnh kề c a nó cũng phải được th m trước.

27

Để lưu lại các đỉnh được th m chúng ta sử d ng một hàng đợi Q. Mỗi khi đến th m một đỉnh th đỉnh đó được xen vào đuôi hàng đợi Q. Thuật toán tìm kiếm theo chiều rộng xuất phát t đỉnh v được biểu diễn bởi hàm BFS(v). Ta có thể viết mã c a thuật toán như sau: 1) Procedure BFS(v) 2) begin 3) Create Queue Q = Φ; 4) Insert v into Q; 5) Mark v is explore; 6) while (!Q.empty() ) do 7) w is front Q; 8) for ( u incident w) do 9) if (u isunexplored) 10) then do 11) Insert u into Q 12) Mark u is explore 13) end – if; 14) end – for; 15) Remove w from Q; 16) end - while ; 17)end;

Đoạn mã trên được diễn giải như sau:  Khởi tạo một hàng đợi rỗng Q (dòng 3)

 Xen v vào hàng đợi Q đánh dấu v đã được th m dòng 4 5

 Tạo một vòng l p với điều kiện Q không rỗng dòng 6 trong đó thực hiện: - Lấy phần tử w ở đầu hàng đợi (dòng 6)

- T m các điểm u liền kề với w, nếu u chưa được đánh dấu thì xen u vào hàng đợi đồng thời đánh dấu u đã được th m dòng 8 - 14)

 Loại w ra khỏi hàng đợi (dòng 15)

T thuật toán duyệt đồ th theo chiều rộng BFS ta có thể t m được đường đi ngắn nhất c a đồ th . Giả sử ta cần t m đường đi ngắn nhất t điểm a đến điểm b Trước hết ta sử d ng thuật toán BFS duyệt qua đồ th với điểm bắt đầu là a. Sau khi duyệt qua đồ th

28

nếu trong tập được đánh dấu đã th m không có b th ta có thể kết luận giữa a và b không tồn tại đường đi ngược lại ta có đường đi ngắn nhất giữa 2 điểm này Để lấy đường đi này ta cần tạo một mảng list với thành phần list [u] sẽ ghi lại đỉnh trước đỉnh u trên đương duyệt t a đến u. Tạo một vòng l p như sau như sau ta thu được đường đi ngắn nhất t a đến b trong mảng _list:

while (b != a) {

_list.insert (b); //Đưa b vào trong _list; b = list[b];

}

Thuật toán BFS có thể được minh họa như sau:

Giả sử ta cần t m đường đi ngắn nhât giữa 2 điểm 0 – 5 trong đồ th sau:

Ta tạo một hàng đợi rỗng và đưa điểm vào hàng đợi. Tạo một mảng d và đánh dấu d[0] = 1; mảng list lưu các giá tr c a đường đi

0

Lấy đỉnh hàng đợi (0) ra khỏi hàng đợi và đưa các đỉnh kề 1 2 vào hàng đợi đánh dấu d[1] = 1; d[2] = 1; list[1] = 0; list[2] = 0;

2 3 1 0 4 5

29

1 2

Lấy 1 ra khỏi hàng đợi và đưa đỉnh 3 kề với 1 vào hàng đợi; d[3] = 1; list[3] = 1;

2 3

Do đỉnh 3 kề với 2 đã được đánh dấu lên bước tiếp theo ta đưa 2 ra khỏi hàng đợi

3

Lấy 3 ra khỏi hàng đợi đưa đỉnh kề 4 vào hàng đợi đánh dấu d[4] = 1; list[4] = 3;

4

Lấy 4 ra khỏi hàng đợi đưa đỉnh kề 5 vào hàng đợi đánh dấu d[5] = 1; list[5] = 4; Đỉnh 5 không còn cạnh kề chưa đánh dấu lên kêt thúc

T các giá tr c a mảng list ta thu được đường đi ngắn nhất t điểm 0 – 5 là: 0 – 1 – 3 – 4 – 5

4.3. Các nghiên cứu cho bài toán đ nh tuyến và phân bước sóng

mạng WDM

Bài toán đ nh tuyến và phân bước sóng RWA (Routing and Wavelength Assignment) c a chúng ta được mô tả như sau: Với một mạng quang WDM và một bộ lightpath có sẵn, cần tìm một tuyến đường cho mỗi sợi quang và gán cho mỗi sợi quang đó một bước sóng sao cho số lượng bước sóng sử d ng nhỏ nhất.

30

Có nhiều phương pháp khác nhau đề xuất để giải quyết bài toán RWA. Một số phương pháp th chia bài toán thành hai bài toán con: bài toán đ nh tuyến và bài toán phân bước sóng. Một số phương pháp khác th giải quyết đồng thời cả hai vấn đề.

Bannerjee và Mukherjee [5] giải quyết bài toán trong 2 giai đoạn Đầu tiên một trong những tuyến đường cho mỗi lightpath được chọn bởi thuật toán làm t m đường ngẫu nhiên Sau đó một bước sóng sẽ được chọn cho để gán mỗi lightpath.

Hyytia và Virtamo [6] cũng đi theo chiến thuật phân chia nhưng sử d ng thuật toán khác nhau cho t ng giai đoạn. Các tuyến đường được tính bằng cách sử d ng thuật toán đường đi ngắn nhất. Sau đó một bước sóng được chọn để gán cho mỗi lightpath.

Manohar, Manjunath và Shegaonkar [7] sử d ng thuật toán tham lam để giải quyết bài toán R A đây là phương pháp đầu tiên giải quyết đồng thời cả hai bài toán con. Tại mỗi bước l p, một tập con các lightpath được chọn và đ nh tuyến sao cho những lightpath được chọn sử d ng những đường tách rời nhau khi đ nh tuyến Sau đó tất cả những lightpath này sẽ được gán cùng một bước sóng. Th t c được l p lại với các lightpath.

Thuật toán tốt nhất cho bài toán R A được đưa ra gần đây do Skorin-Kapov [8] nghiên cứu mang tên BFD. Thuật toán này sẽ được giới thiệu kĩ trong phần tiếp theo Đây cũng ch nh là thuật toán làm tiền đề để áp d ng thuật toán gen vào bài toán RWA.

4.4. Thuật toán BFD-RWA

4.4.1. Mô tả thuật toán

Thuật toán BFD (Best Fit Decreasing) là thuật toán được Skorin-Kapov nghiên cứu cho bài toán đ nh tuyến và phân bước sóng (RWA) trong mạng quang WDM. Một topology vật lý c a mạng quang được biểu diễn bằng đồ th G = (V, A) với V là số đỉnh c a đồ th tương ứng với số node trong mạng và A là số cạnh nối 2 đỉnh c a đồ th tương ứng với số sợi quang kết nối 2 node trong mạng.

Thuật toán được mô tả như sau: các bản sao c a đồ th được tạo ra đồng thời có một bước sóng được gán cho bản sao. Các lighpath sẽ được đ nh tuyến trên các bản sao c a G, những lightpath được đ nh tuyến trên cùng một bản sao sẽ được gán cùng một bước sóng

31

tương ứng với bản sao đó M c tiêu số bước sóng sử d ng nhỏ nhất tương ứng với số bản sao được tạo ra ít nhất.

Với một tập T biểu th số lightpath yêu cầu gồm các lightpath 1 2 …T một giá tr min-length được tính cho mỗi lightpath để biểu th đường đi ngắn nhất c a lightpath trong đồ thi G. Giá tr này được t nh để đánh giái độ ưu tiên xem lighpath nào được đ nh tuyến trước. Khi một lightpah được đ nh tuyến trên một bản sao c a G, tất cả các cạnh nối 2 node trên đường đi c a lightpath sẽ được xóa nhằm tránh các lightpath khác sử d ng đoạn đường đó Các lightpath có thể không được đ nh tuyến trên đường đi ngắn nhất ban đầu do có thể cạnh trên đường đi ngắn nhất c a lightpath đó đã được xóa trong quá trình đ nh tuyến lightpath trước đó Mà lúc này lightpath sẽ được đ nh tuyến trên đường đi ngắn nhất c a thực trạng bản sao khi đó

Mã c a thuật toán BFD được viết như sau:

1) Procedure BFD-R A G T d π 2) Set S = Φ C = Φ

3) for i = 1 2 …|T| do

4) If (there is no (arc-disjoint) path available for routing π(i) with less than d arcs in any of the copies of G in C)

5) then do

6) Create a new copy of G and assign a wavelength; 7) Add to C the new copy of G;

8) end-if

9) Find the copy of G in C where lightpath π i can be routed with the smallest number of arcs;

10) Let pπ i be the shortest path between the endnodes of lightpath Wπ i be its corresponding wavelength;

11) Add (Pπ i , Wπ i ) into S: S = S (Pπ i , Wπ i )

12) Delete all arcs in path Pπ i from this copy of G; 13) end-for;

14) return S;

15) end BFD-RWA Đoạn mã trên được diễn giải như sau:

32

 Dòng 1: khởi tạo hàm và biểu diễn đầu vào: gồm một đồ th G biểu diễn một topology mạng, một tập các lightpath yêu cầu T, một vector π biểu thứ tự các lighpath được sắp xếp theo thứ tự giảm dần c a giá tr min-length, một giá tr d biểu diễn là giá tr lớn nhất c a một tuyến đường; giá tr này nhằm tránh cho lighpath có đ nh tuyến bằng đường đi quá lớn. Giá tr d được tính bằng c n bậc 2 c a tích số liên kết trong đồ th G nhân với đường kính c a đồ th ; đường kính c a đồ th được tính bằng giá tr lớn nhất trong số đường đi giữa 2 c p đỉnh bất kì tính bằng đường đi ngắn nhất Nghĩa là t nh đường đi ngắn nhất giữa 2 c p đỉnh bất k và đường k nh đồ th chính là giá tr lớn nhất trong số đó

 Dòng 2: khởi tạo một tập S và một tập C ban đầu rỗng. Tập S biểu diễn đầu ra bao gồm đường đi c a lightpath và bước sóng tương ứng với nó; tập C lưu các bản sao c a đồ th G.

 Các dòng t 3 – 13 thực hiện một vòng l p duyệt qua các lightpath theo thứ tự sắp xếp trong π tức là giá tr giảm dần theo giá tr min-length c a lightpath. Tại mỗi vòng l p thực hiện:

- Nếu không tồn tại đường đi nào cho lighpath có độ dài nhỏ hơn d trong tập các bản sao C thì thêm vào C một bản sao mới c a G và gán 1 bước sóng tương ứng với bản sao đó dòng 4 5 6, 7, 8).

- T m đường đi nhỏ nhất c a giữa 2 điểm đầu cuối c a lighpath đang được duyệt trong tất cả các bản sao c a G. Lấy ra giá tr nhỏ nhất trong số trên và bước sóng tương ứng với bản sao cho giá tr nhỏ nhát đó Gọi pπ i và Wπ i là đường đi và bước sóng thu được (dòng 9, 10).

- Thêm Pπ i , Wπ i vào tập đầu ra S.  Dòng 14: trả về tập S.

 Dòng 15: kết thúc.

Thuật toán được minh họa như sau:

 Giả sử dưới đây là một topology mạng với tập các lightpath yêu cầu là: 0 – 1, 1 – 3, 2 – 4, 0 – 4, 0 – 5 => Thứ tự lightght sắp xếp theo thứ tự giảm dần min- length là 0 – 5 , 0 – 4, 2 – 4, 0 – 1.

33

Đầu tiên do chưa có bản sao nào lên một bản sao c a G(0) được tạo ra và được thêm vào C và bước sóng được gán giả sử là w0

 Lightpath 0 – 5 có độ dài min length lớn nhất sẽ được đ nh tuyến trước Đường đi ngắn nhất t m được là 0 – 1 – 3 – 4 – 5 Đây ch nh là đường đi c a lightpath c a lightpath 0 – 5 và bước sóng cho lightpath này là w0 Đường đi trên được xóa khỏi G(0) Khi đó tập C sẽ chứa đồ th G(0) dạng:

 Lightpath 0 – 4 được đ nh tuyến tiếp theo. Do trong bản sao G(0) không có đường đi nên một bản sao mới G(1) bước sóng tương ứng được gán là w1) được tạo ra thêm vào tập C đường đi ngắn nhất thu được trên bản sao mới là 0 – 1 – 3 – 4 Đây ch nh là đường đi cho lightpath – 4 và bước sóng được gán là w1. Xóa các cạnh trên đường đi c a lightpath này trong bản sao G(1). Lúc này trong tập C gồm 2 bản sao c a G: 2 3 1 0 4 5 G(0) 2 3 1 0 4 5

34

 Lightpath tiếp theo được đ nh tuyến là 2 – 4. Do tìm trong 2 bản sao G(0) và G(1) không có đường đi nên một bản sao G(2) được tạo ra và thêm vào tập C đồng thời cũng gán một bước sóng w2 tương ứng Đường đi ngắn nhất t m được là 2 – 3 – 4 Đây cũng ch nh là đường đi c a lightpath 2 – 4 được đ nh tuyến và bước sóng sử d ng là w2. Xóa các cạnh trên trên đường đi tại bản sao G(2) ta thu được tập C lúc này gồm 3 bản sao: 2 3 1 0 4 5 G(1) 2 3 1 0 4 5 G(0)

35

 Lightpath cuối c ng được đ nh tuyến 0 – 1. Duyệt qua tập các bản sao c a G, thu được kết quả là đường 0 – 1 thuộc bản sao G(2) Khi đó lightpath – 1 được đ nh tuyến sẽ là 0 – 1 và được gán bước sóng tương đương với G(2) tức là w2. Xóa cạnh 0 – 1 tại bản sao G(2) ta thu được tập C như sau:

2 3 1 0 4 5 G(2) 2 3 1 0 4 5 G(1) 2 3 1

Một phần của tài liệu LUẬN VĂN: THUẬT TOÁN GEN TRONG BÀI TOÁN ĐỊNH TUYẾN VÀ PHÂN BƯỚC SÓNG MẠNG CÁP QUANG DOC (Trang 27 -58 )

×