Chứng minh thuật toán

Một phần của tài liệu 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 (Trang 39)

Chứng minh thuật toán đồng nghĩa với việc ta chứng minh thuật toán thỏa mãn hai điều kiện c a bài toán đ nh tuyến và phân bước sóng R A Đồng thời thuật toán cũng cho kết quả số bước sóng sử d ng nhỏ nhất có thể:

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

37

 Thứ nhất: ta thấy rằng mỗi lightpath được đ nh tuyến trên một bản sao c a đồ th và sử d ng bước sóng tương ứng với bản sao do đó điều kiện về tính liên t c c a bước sóng được thỏa mãn.

 Thứ hai: sau khi một lightpath được đ nh tuyến trên một bản sao tất cả các cạnh trên đường đi c a lightpath được xóa bỏ do đó nếu các lighpath khác sử d ng những cạnh đó trên đường đi th cần phải đ nh tuyến trên bản sao khác. Mà các bản sao tương ứng với các bước sóng khác nhau Do đó t nh riêng biệt c a bước sóng được thỏa mãn.

 Thứ 3: trước khi tạo một bản sao mới ứng với t ng thêm một bước sóng sử d ng. Mỗi lighpath đều được t m đường đi trong các bản sao trước đó nếu không tồn tại đường đi trong tất cả các bản sao thì mới tạo bản sao mới Điều này đã giảm thiểu tối đa việc t ng số bước sóng sử d ng Do đó số bước sóng sử d ng ở đây là nhỏ nhất.

4.5. Thuật toán gen r ng bài án định tuyến và ph n bước sóng (GA – RWA)

4.5.1. Đặt vấn đề

Qua phần bên trên chúng ta có thể thấy thuật toán BFD thỏa mãn đầy đ hai đ c tính liên t c và riêng biệt về bước sóng. Thuật toán cũng sẽ tối ưu về số bước sóng nhỏ nhất sử d ng nếu như tất cả các lightpath có độ dài min-length khác nhau. Tuy nhiên vấn đề sẽ xảy ra nếu như có nhiều lightpath có cùng một độ dài min-length Khi đó việc xắp xếp thứ tự đ nh tuyến c a các lightpath có c ng độ dài min-length theo những thứ tự khác nhau sẽ cho ra những kết quả khác nhau Do đó nếu chỉ chạy thuật toán BFD một lần sẽ cho ra kết quả chưa chắc tốt nhất Để giải quyết vấn đề trên có thể chạy thuật toán BFD nhiều lần đến khi thu được một kết quả mong muốn. Tuy nhiên ở giải pháp này mỗi một lần chạy BFD các lightpath cùng min-length sẽ được sắp xếp theo một thứ tự ngẫu nhiên và kết quả thu được cũng sẽ là ngẫu nhiên, tức là kết quả thu được ở lần chạy sau có thể tốt hơn ho c có thể xấu hơn kết quả c a lần chạy trước đó Do đó phần này sẽ giới thiệu phương pháp sử d ng thuật toán gen trong bài toán RWA (GA- RWA) để sắp xếp thứ tự được đ nh tuyến c a các lightpath có cùng min-length qua mỗi vòng l p tương đương với các

38

thế hệ c a thuật toán gen. Và điều quan trọng nhất là kết quả c a lần chạy sau luôn tốt hơn ho c bằng với kết quả c a lần chạy trước.

4.5.2. Thuật toán gen trong bài toán RWA

Qua phần giới thiệu về thuật toán gen bên trên chúng ta có thể h nh dung được các quy tr nh để giải bài toán bằng cách sử d ng thuật toán gen. Ở bài toán RWA này,một quần thể ban đầu được xây dựng với một tập các cá thể. Mỗi cá thể được biểu diễn bằng một nhiễm sắc thể (chromosome). Mỗi nhiễm sắc thể sẽ được đ nh nghĩa là một vector các số thực trong khoảng (0, 1) được tạo ra ngẫu nhiên, các số thực này chính là các gen.

Một nhiễm sắc thể có dạng như sau:

0

0..1155 00..224455 00..776622 00..442255 00..882288 00..117711 00..006655 00..996633

Tại mỗi thế hệ quần thể được sắp xếp theo thứ tự giảm dần c a độ thích nghi (fitness) và được phân chia thành hai nhóm: TOP và REST Do đó k ch thước c a quần thể là |TOP| + |REST|. TOP là tập hợp các nhiễm sắc thể được đánh giá tốt, tức là có độ thích nghi tốt, REST là phần còn lại. Các phép toán gen được thực hiện qua mỗi thế hệ như sau:

 Phép lai: một cá thể con được tạo ra t ph p lai như sau: chọn ngẫu nhiên một các thể trong TOP và ngẫu nhiên một cá thể trong REST làm bố - m . Một số ngẫu nhiên k được sinh ra trong khoảng 1 đến m-1 để làm điểm lai. Điểm lai sẽ chia nhiễm sắc thể bố - m thành 2 nhóm gen con Hai con lai được tạo ra bằng cách lấy nửa nhóm gen đầu c a bố ghép với nửa nhóm gen sau c a m và nửa nhóm gen đầu c a m sẽ được ghép với nửa nhóm gen sau c a bố. Ph p lai được minh họa như sau:

Giả sử ta có hai nhiễm sắc thể bố - m : Bố:

39 0 0..1155 00..2244 00..7766 00..4422 00..8822 00..1177 0.77 00..9966 M : 0 0..4488 00..7744 00..3366 00..5566 00..9922 00..7722 0.05 00..1111

Giả sử điểm cắt ở giữa ta sẽ được hai nhiễm sắc thể con như sau: Con lai 1: 0 0..1155 00..2244 00..7766 00..4422 00..9922 00..7722 0.05 00..1111 Con lai 2: 0 0..4488 00..7744 00..3366 00..5566 00..8822 00..1177 0.77 00..9966

Nếu điểm cắt trong ví d này là tại điểm thứ 3 ta cũng có 2 nhiễm sắc thể con lai như sau:

Con lai 1: 0 0..1155 00..2244 00..7766 00..5566 00..9922 00..7722 0.05 00..1111 Con lai 2: 0 0..4488 00..7744 00..3366 00..4422 00..8822 00..1177 0.77 00..9966

Tương tự với các trường hợp điểm cắt khác.

 Ph p đột biến: có nhiều phương pháp để tạo ra nhiễm sắc thể đột biến trong thuật toán gen trên máy tính, có thể là thay đ i giá tr c a một ho c nhiều gen

40

c a một nhiễm sắc thể, ho c thay đ i thứ tự sắp xếp gen c a nhiễm nhiễm sắc thể ban đầu, ho c tạo ra các nhiễm sắc thể mới giống với cách tạo ra các nhiễm sắc thể c a quần thể ban đầu Phương pháp được sử d ng ở đây là phương pháp thứ 3 tức là tạo ra các nhiễm sắc thể đột biến giống với cách tạo ra các nhiễm sắc thể c a quần thể ban đầu. Tập các nhiễm sắc thể đột bến gọi là BOT.

 Phép tái sinh và chọn lọc: sau khi ph p lai được thực hiện các nhiễm sắc thể thuộc TOP sẽ được sao chép sang thế hệ sau, các nhiễm sắc thể còn lại trong trong quần thể sẽ b loại bỏ để nhường chỗ cho những cá thể con lai và những cá thể đột biến.

Số cá thể trong quần thể ở đây được quy đ nh không thay đ i qua các thế hệ, do đó khi một thế hệ mới được hình thành sẽ bao bồm các cá thể TOP c a thế hệ trước, các cá thể đột biến BOT, số còn lại được tạo ra t phép lai giữa các cá thể c a thế hệ trước đó Các quá trình c a thuật toán gen trong mỗi thế hệ sẽ được mô tả như h nh sau:

Hình 4.2 Sơ đồ các phép toán di truyền.

Thuật toán gen sẽ được áp d ng cho bài toán R A như sau:số gen trong một nhiễm sắc thể sẽ bằng với số lightpath yêu cầu. T quần thể ban đầu, sẽ có một vòng l p duyệt (adsbygoogle = window.adsbygoogle || []).push({});

41

qua t ng nhiễm sắc thể. Tại mỗi vòng l p, mỗi gen sẽ được cộng với giá tr min-length c a mỗi lightpath Sau đó các lightpath sẽ được sắp xếp theo giá tr giảm dần c a giá tr sau khi được cộng trên. Thứ tự sắp xếp này sẽ được đưa vào thuật toán BFD. Kết quả thu được sẽ là một tập các lightpath được đ nh tuyến và bước sóng sử d ng tương ứng. Do m c tiêu c a bài toán R A là đ nh tuyến cho các lightpath được yêu cầu sao cho số bước sóng sử d ng là thấp nhất nên số bước sóng sử d ng ở đầu ra c a thuật toán RWA sẽ được gán cho giá tri độ thích nghi c a nhiễm sắc thể. Sau khi duyệt qua quần thể ban đầu, mỗi nhiễm sắc thể sẽ có một giá tr độ th ch nghi tương ứng với số bước sóng sử d ng. Khi đó các nhiễm sắc thể sẽ được xắp xếp giảm dần c a độ thích nghi, tức là xắp xếp theo thứ tự t ng dần c a số bước sóng sử d ng tương đương do m c tiêu c a chúng ta là số bước sóng càng ít càng tốt). T đó quần thể sẽ được phân chia thành 2 phần TOP và REST Sau đó các phép toán di truyền: lai đột biến, tái sinh và chọn lọc được thực hiện tạo ra thế hệ mới. Thế hệ này sẽ lại được đưa vào để t m độ thích nghi và sinh ra các thế hệ tiếp theo. Thuật toán sẽ d ng lại khi một thời gian cho phép trôi qua hay một giải pháp tốt như m c tiêu được tìm thấy.

4.5.3. Chứng minh thuật toán

Như đã giới thiệu, thuật toán gen được xem là một tiên đề đúng không chứng minh được như ph hợp với thực tế khách quan. Tính tối ưu c a thuật toán được thể hiện ở chỗ, thế hệ sau bao giờ cũng tốt hơn hoàn thiện hơn thế hệ trước. Trong thuật toán GA cho bài toán RWA, những cá thể có độ thích nghi tốt trong TOP được sao chép sang thế hệ sau. Do đó khi nếu những nhiễm sắc thể lai ghép và những nhiễm sắc thể đột biết được tạo ra ở thế hệ sau có độ thích nghi không tốt hơn những nhiễm sắc thể trong TOP thì sẽ b loại bỏ Ngược lại nếu trong các nhiễm sắc thể lai ghép và những nhiễm s c thể đột bến này có những nhiễm sắc thể tốt hơn một hay nhiều nhiễm sắc thể trong TOP thì nó sẽ được thay thế những nhiễm sắc thể trong TOP đó để sao chép và lai ghép ra thế hệ sau. Và nếu có nhiễm sắc thể tốt hơn nhiễm sắc thể đang có độ thích nghi tốt nhất trong TOP thì ta sẽ được một lời giải tối ưu hơn tức là số bước sóng sử d ng t hơn.

42

Chương : Thực hiện ô ph ng

5.1.Công cụ thực hiện

Chương tr nh mô phỏng lại thuật toán được em sử d ng ngôn ngữ C++, lập trình trên nền windows, với IDE là Code::blocks.

Ngôn ngữ được sử d ng để viết chương tr nh là C++ một ngôn ngữ thuần hướng đối tượng được sử d ng nhiều trong việc lập trình các thuật toán.

Phần mềm được chọn để sử d ng viết chương tr nh là Code:blocks Đây là một IDE C/C++ miễn phí tính hợp sẵn trình biên d ch minGW, hỗ trợ biên d ch và debug trực tiếp chương tr nh ngoài ra Code::blocks còn được tích hợp nhiều t nh n ng như auto complete hightlight code … giao diện thân thiện, dễ sử d ng.

5.2. Bố cục chương rình

43

Bắt đầu

Nạp đồ th và tập lightpath yêu cầu

Khởi tạo quần thể ban đầu Sắp xếp lightpath Đ nh tuyến và phân bước sóng bằng thuật toán BFD Sắp xếp quần thể theo độ thích nghi giảm dần Lai ghép – Đột biến – Tái sinh - Chọn lọc

Đường đi đ nh tuyến và bước sóng sử d ng Kết thúc Số bước sóng sử dụng nhỏ nhất Tìm min-length c a mỗi lightpath BFS d

44

Chương tr nh được thiết kế giống như lưu đồ trên:

 Ban đầu một đồ th biểu diễn một topology và một tập các lightpath yêu cầu được nhập vào làm tham số đầu vào.

 Sau đó hàm BFS được sử d ng để t m đường đi ngắn nhất c a các lightpath qua đó t nh được giá tr min-length m t khác t BFS ta t nh được giá tr d tức là giá tr lớn nhất c a độ dài mà đường đi lightpath cho ph p nhằm tránh cho các lightpath có đường đi quá dài khi đ nh tuyến.

 M t khác ta tạo được quần thể ban đầu thông qua số đỉnh c a đồ th lightpath yêu cầu. Ở đây số cá thể trong quần thể được tạo bằng với số đỉnh c a đồ th và số gen trong một nhiễm sắc thể bằng với số lightpath yêu cầu. Mỗi gen là một số thực được sinh ra ngẫu nhiên trong khoảng (0, 1). Giá tr TOP và BOT được gán bằng 0.2 số các thể trong quần thể. Các tham số này có thể thay đ i tùy ý.

 Sau đó một vòng l p sẽ tạo ra để duyệt qua t ng nhiễm sắc thể. Với mỗi nhiễm sắc thể, mỗi gen trong đó sẽ được công với giá tr min-length c a mỗi lightpath. Sau đó lightpath được sắp xếp theo thứ tự giảm dần c a giá tr sau khi được cộng trên và đưa vào thuật tóan BFD.

 Các lightpath sẽ được đ nh tuyến và gán bước sóng theo thuật toán BFS Đầu ra sẽ là các đường đi cho các lightpath và các bước sóng sử d ng tương đương T ng số bước sóng sử d ng sẽ được gán cho độ thích nghi c a nhiễm sắc thể d ng đ ghép với các giá tr min-length bên trên.

 Sau đó các nhiễm sắc thể này được sắp xếp theo thứ tự giảm dần c a độ thích nghi tức là t ng dần c a số bước sóng sử d ng.

 Tiếp đó các quá tr nh di truyền diễn ra qua các phép toán di truyền như: ph p lai ph p đột biến, phép tái sinh và chọn lọc. T đó h nh thành lên một thế hệ mới

 Tại thế hệ mới này các nhiễm sắc thể lại được sử d ng kết hợp với các giá tr min-length để tạo thứ tự sắp xếp đầu vào cho các lightpath để bắt đầu một vòng l p t m đường đi và bước sóng cho các lightpath mới.

 Quá trình d ng lại khi chạy đ số thế hệ trong tham số đầu vào.

 Kết quả đầu ra sẽ là đường đi c a các lightpath và bước sóng tương ứng với số bước sóng sử d ng là nhỏ nhất trong tất cả các vòng l p trên.

45

Đầu vào c a chương tr nh là 2 file te t lưu trong thư m c input gồm một file lưu đồ th (graph.txt) và một file lưu tập các lightpath yêu cầu (lightpath.txt) có đ nh dạng như sau: graph.txt: nV nA a1 b1 a2 b2 …… an bn Trong đó: - nV là số cạnh c a đồ th (topology mạng) - nA là số đỉnh c a đồ th ((topology mạng) (adsbygoogle = window.adsbygoogle || []).push({});

- a1,2,..n b1 2 … n biểu diễn các cạnh trên đồ th t các điểm a1, a2…, an đến các điểm b1, b2,…, bn. lightpath.txt: x1 y1 x2 y2 …… xn yn Trong đó:

- x1,2,..,n y1 2 … n biểu diễn các lightpath yêu cầu t x1, x2 … n đến y1, y2 … yn.

Đầu ra c a chương tr nh là một file t t lưu đường đi c a các lighpath được đ nh tuyến và bước sóng sử d ng tương ứng.

5.3. Kết quả thực nghiệ và đánh giá

 Trước tiên chương tr nh được thử nghiệm với bài toán t m đường đi các lightpath: – 1, 1 – 3, 2 – 4, 0 – 4, 0 – 5 trong đồ th 6 đinh tương ứng với mô hình mạng 6 node:

46

Hinh 5.1 Mô hình mạng 6 node

Như trong phần tính lý thuyết chúng ta t nh được kết quả các lightpath sẽ được đ nh tuyến theo các tuyến đường và bước sóng như sau:

 Lightpath 0 – 5: 0 – 1 – 3 – 4 – 5 bước sóng sử d ng w0  Lightpath 0 – 4: 0 – 1 – 3 – 4 bước sóng sử d ng w1  Lightpath 2 – 4: 2 – 3 – 4 bước sóng sử d ng w2  Lightpath 0 – 1: 0 – 1 bước sóng sử d ng w2

Một phần của tài liệu 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 (Trang 39)