HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA ĐÀO TẠO SAU ĐẠI HỌC CÁC KĨ THUẬT TỐI ƯU GABased Verification of Network Protocols Performance Giáo viên hướng dẫn : PGS.TS Lê Nhật Thăng Học viên : Vân Thị Thu Trang Phạm Thành Trung Nguyễn Minh Tuấn Lớp : Khoa học máy tính Khóa : Cao học 2013 Đợt 1 Hà Nội, tháng 5 năm 2014 Mục lục LỜI NÓI ĐẦU 3 Các thuật ngữ viết tắt 3 Danh mục các hình vẽ 3 Danh mục các bảng biểu 3 Chương 1 Kỹ thuật tính toán Heuristic và thích ứng (Adaptive) trong viễn thông. 3 1.1 Các vấn đề tối ưu hóa trong viễn thông 3 1.2 Bài toán động và thích ứng 3 1.3 Các kỹ thuật Heuristic hiện đại 3 1.3.1. Tìm kiếm cục bộ 3 1.3.2 Tìm kiến dựa trên tập hợp (PopulationBased Search) 3 1.4 Kỹ thuật tính toán thích nghi 3 1.4.1. Tính toán hệ thần kinh 3 1.4.2 Logic mờ 3 1.4.3 Lý thuyết trò chơi 3 1.5 Tổng kết 3 Chương 11: GA Căn cứ xác nhận hiệu suất của giao thức mạng 3 11.1 Giới thiệu 3 11.2 Cách tiếp cận 3 11.3 Thuật toán GA 3 11.3.1. Các thuật toán di truyền trong Nepal: 3 11.3.2. Encoding: 3 11.3.3. Các loại lai chéo: 3 11.3.4. Đột biến 3 11.3.5. Diễn tả Univocal 3 11.4. Kết quả thực nghiệm 3 11.4.1.Topology Network 3 11.4.2. Giá trị các tham số 3 11.4.3. Kết quả 3 11.4.4. Phân tích 3 11.5. Kết luận 3 LỜI NÓI ĐẦU Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ƣu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin vét cạn (tìm kiếm trên danh sách, trên cây hoặc đồ thị) sử dụng phương pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn. Tuy nhiên, trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn. Thuật giải di truyền (genetic algorithm) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Thuật giải di truyền đã được phát minh ra để bắt chước quá trình phát triển tự nhiên trong điều kiện quy định sẵn của môi trường. Trong bài tiểu luận này chúng ta sẽ nghiên cứu về việc áp dụng thuật giải di truyền để thiết kế mạng tối ưu. Các thuật ngữ viết tắt Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt CPU Central Processing Unit Bộ xử lý trung tâm FSM Finite State Machine Máy hữu hạn trạng thái GA Genetic Algorithm Thuật toán di truyền insane Internet Simulated ATM Networking Environment IP Internet Protocol Giao thức Internet Nepal Network Protocol Analysis Algorithm Thuật toán phân tích giao thức mạng TCP Transmission Control Protocol Giao thức điều khiển truyền vận UDP User Datagram Protocol Danh mục các hình vẽ Hình 11. 1 Thiết kế của hệ thống Nepal 3 Hình 11. 2 Mã giả của thuật toán GA trong Nepal 3 Hình 11. 3 Individual Encoding 3 Hình 11. 4 Các loại lai chéo 3 Hình 11. 5 Mô hình liên kết của một mạng 3 Hình 11. 6 Thông lượng của việc điều tra các kết nối 3 Hình 11. 7 Hiệu quả xáo trộn 3 Hình 11. 8 Kích thước cửa sổ điều khiển của một nguồn TCP 3 Danh mục các bảng biểu Bảng 11. 1 Giá trị các tham số của thuật toán di truyền 3 Chương 1 Kỹ thuật tính toán Heuristic và thích ứng (Adaptive) trong viễn thông. 1.1 Các vấn đề tối ưu hóa trong viễn thông Sự phức tạp và kích thước của các mạng viễn thông hiện đại cung cấp cho chúng ta nhiều thách thức và cơ hội. Trong cuốn sách này, những thách thức mà chúng tôi tập trung vào là những liên quan đến việc tối ưu hóa. Điều này chỉ đơn giản đề cập tới những trường hợp mà trong đó chúng ta đang hướng tới tìm một cách tiếp cận phương án tốt nhất giữa nhiều phương án có thể có để giải quyết bài toán. Ví dụ, có một số lượng lớn cách để thiết kế các cấu trúc liên kết một mạng dữ liệu riêng cho một công ty lớn. Làm thế nào chúng ta có thể tìm thấy một thiết kế đặc biệt tốt trong tất cả các khả năng? Ngoài ra, chúng ta có thể thử tìm một cách tốt để gán kênh tần số cho nhiều người sử dụng mạng di động. Có một loạt các khó khăn phức tạp liên quan ở đây, số lượng các phương án có thể đáp ứng các khó khăn vẫn còn quá lớn để chúng tôi hy vọng sẽ kiểm tra lần lượt từng phương án trong số chúng. Vì vậy, một lần nữa, chúng ta cần một số cách để tìm ra giải pháp tốt trong tất cả các khả năng. Những thách thức hiện tại là cơ hội cho sự hợp tác giữa các kỹ sư viễn thông, các nhà nghiên cứu và phát triển trong khoa học máy tính và trí tuệ nhân tạo cộng đồng. Đặc biệt, có một bộ các công nghệ phần mềm mới nổi nhằm tối ưu hóa các vấn đề mà hiện nay đang được được sử dụng trong ngành công nghiệp, nhưng có tiềm năng lớn cho các giải pháp có lợi nhuận và hiệu quả cho nhiều bài toán trong ngành viễn thông. Phần lớn cuốn sách này tập trung vào các kỹ thuật tối ưu hóa, và các công trình nghiên cứu trong các chương sắp tới trình bày một phần việc áp dụng những kỹ thuật này cho các bài toán liên quan đến viễn thông. Các kỹ thuật sử dụng bao gồm các phương pháp tìm kiếm địa phương “ như ủ mô phỏng (Aarts và Korst, 1989) và tìm kiếm tabu (Glover, 1989; 1989a), và các kỹ thuật tìm kiếm dựa trên tập hợp như thuật toán di truyền (Hà Lan, 1975 ; Goldberg, 1989), chiến lược phát triển (Schwefel, 1981; Back, 1996), lập trình tiến hóa (Fogel, 1995) và lập trình di truyền (Koza, 1992). Mục 1.3 giới thiệu ngắn gọn và cơ bản các kỹ thuật trên, dành cho các kỹ sư viễn thông, quản lý hoặc nghiên cứu, những người hiểu biết quá nhiều về vấn đề này, nhưng chưa biết cách để giải quyết chúng. Chương sau thảo luận về việc sử dụng liên quan đến các bài toán đặc biệt trong viễn thông. 1.2 Bài toán động và thích ứng
MỤC LỤC LỜI NÓI ĐẦU Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ƣu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin / vét cạn ( tìm kiếm trên danh sách, trên cây hoặc đồ thị ) sử dụng phương pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn. Tuy nhiên, trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn. Thuật giải di truyền (genetic algorithm) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Thuật giải di truyền đã được phát minh ra để bắt chước quá trình phát triển tự nhiên trong điều kiện quy định sẵn của môi trường. Trong bài tiểu luận này chúng ta sẽ nghiên cứu về việc áp dụng thuật giải di truyền để thiết kế mạng tối ưu. CÁC THUẬT NGỮ VIẾT TẮT RIP Routing Information Protocol SPFP Shortest-Path First GAs Genetic Algorithm GARA Genetic Adaptive Routing Algorithm DANH MỤC CÁC HÌNH VẼ Chương 1: Kỹ thuật tính toán Heuristic và thích nghi trong viễn thông 1.1 Các vấn đề tối ưu hóa trong viễn thông Sự phức tạp và kích thước của các mạng viễn thông hiện đại cung cấp cho chúng ta nhiều thách thức và cơ hội. Trong cuốn sách này, những thách thức mà chúng tôi tập trung vào là những liên quan đến việc tối ưu hóa. Điều này chỉ đơn giản đề cập tới những trường hợp mà trong đó chúng ta đang hướng tới tìm một cách tiếp cận phương án tốt nhất giữa nhiều phương án có thể có để giải quyết bài toán. Ví dụ, có một số lượng lớn cách để thiết kế các cấu trúc liên kết một mạng dữ liệu riêng cho một công ty lớn. Làm thế nào chúng ta có thể tìm thấy một thiết kế đặc biệt tốt trong tất cả các khả năng? Ngoài ra, chúng ta có thể thử tìm một cách tốt để gán kênh tần số cho nhiều người sử dụng mạng di động. Có một loạt các khó khăn phức tạp liên quan ở đây, số lượng các phương án có thể đáp ứng các khó khăn vẫn còn quá lớn để chúng tôi hy vọng sẽ kiểm tra lần lượt từng phương án trong số chúng. Vì vậy, một lần nữa, chúng ta cần một số cách để tìm ra giải pháp tốt trong tất cả các khả năng. Những thách thức hiện tại là cơ hội cho sự hợp tác giữa các kỹ sư viễn thông, các nhà nghiên cứu và phát triển trong khoa học máy tính và trí tuệ nhân tạo cộng đồng. Đặc biệt, có một bộ các công nghệ phần mềm mới nổi nhằm tối ưu hóa các vấn đề mà hiện nay đang được được sử dụng trong ngành công nghiệp, nhưng có tiềm năng lớn cho các giải pháp có lợi nhuận và hiệu quả cho nhiều bài toán trong ngành viễn thông. Phần lớn cuốn sách này tập trung vào các kỹ thuật tối ưu hóa, và các công trình nghiên cứu trong các chương sắp tới trình bày một phần việc áp dụng những kỹ thuật này cho các bài toán liên quan đến viễn thông. Các kỹ thuật sử dụng bao gồm các phương pháp “tìm kiếm địa phương “ như ủ mô phỏng (Aarts và Korst, 1989) và tìm kiếm tabu (Glover, 1989; 1989a), và các kỹ thuật tìm kiếm 'dựa trên tập hợp' như thuật toán di truyền (Hà Lan, 1975 ; Goldberg, 1989), chiến lược phát triển (Schwefel, 1981; Back, 1996), lập trình tiến hóa (Fogel, 1995) và lập trình di truyền (Koza, 1992). Mục 1.3 giới thiệu ngắn gọn và cơ bản các kỹ thuật trên, dành cho các kỹ sư viễn thông, quản lý hoặc nghiên cứu, những người hiểu biết quá nhiều về vấn đề này, nhưng chưa biết cách để giải quyết chúng. Chương sau thảo luận về việc sử dụng liên quan đến các bài toán đặc biệt trong viễn thông. 1.2 Bài toán động và thích ứng Một khía cạnh cơ bản của nhiều vấn đề tối ưu hóa trong viễn thông là một thực tế rằng các giải pháp tối ưu là động. Những gì có thể là giải pháp tốt nhất bây giờ có thể không phải là giải pháp lý tưởng trong một vài giờ, hoặc thậm chí một vài phút. Ví dụ, các nhà cung cấp dịch vụ của một cơ sở dữ liệu phân tán (như video theo yêu cầu , dịch vụ web - bộ nhớ đệm, vv) phải cố gắng để đảm bảo chất lượng dịch vụ cho mỗi khách hàng. Để làm điều này liên quan đến việc chuyển hướng cơ sở dữ liệu của khách hàng truy cập đến các máy chủ khác nhau tại các thời điểm khác nhau (khách hàng không thể nhận biết) để thực hiện phù hợp cân bằng tải giữa các máy chủ. Kỹ thuật tối ưu hóa hiện đại có thể được sử dụng để phân phối tải trọng phù hợp trên các máy chủ, tuy nhiên giải pháp này trở nên không hợp lệ ngay sau khi có sự thay đổi trung bình trong mô hình truy cập cơ sở dữ liệu của khách hàng. Một ví dụ khác là định tuyến gói chung trong một mạng point-to-point. Theo truyền thống, routing table tại mỗi node được sử dụng để tìm kiếm ' bước kế tiếp ' tốt nhất cho một gói dựa trên điểm đến cuối cùng của nó . Chúng ta có thể tưởng tượng một kỹ thuật tối ưu hóa áp dụng cho vấn đề này, kỹ thuật này dựa vào mô hình tổng thể và xác định các routing table thích hợp cho mỗi node, do đó ùn tắc chung và sự chậm trễ có thể được giảm thiểu, tức là trong nhiều trường hợp là ' bước kế tiếp “tốt nhất có thể không tìm được node tiếp theo trên con đường ngắn nhất, vì liên kết này có thể được được sử dụng nhiều rồi. Tuy nhiên, đây rõ ràng là một chương trình cần được thực hiện lặp đi lặp lại như những biểu đồ thay đổi lưu lượng truy cập. Việc thực hiện lặp đi lặp lại của các kỹ thuật tối ưu hóa là một trong những cách có thể để tiếp cận các bài toán động, nó thường là một cách khá phù hợp, đặc biệt là khi các giải pháp tốt yêu cầu cần thiết phải rất nhanh, vì môi trường thay đổi rất nhanh chóng. Thay vào đó, một phạm vi khác của các kỹ thuật tính toán hiện đại thường thích hợp cho các bài toán như vậy. Chúng ta có thể gọi chung lớp này là kỹ thuật “thích ứng”, mặc dù việc sử dụng ở các chương sau trong cuốn sách này thực sự khá đa dạng. Đặc biệt, chương sau sẽ sử dụng tính toán thần kinh (neural), logic mờ và lý thuyết trò chơi để giải quyết tối ưu hóa thích nghi trong môi trường động, trong một số trường hợp kết hợp với tìm kiếm cụ bộ hoặc dựa vào tập hợp. Về cơ bản, một kỹ thuật tối ưu hóa cung cấp một cách nhanh chóng và hiệu quả để tìm một giải pháp tốt trong nhiều giải pháp, một kỹ thuật thích ứng phải cung cấp một giải pháp tốt gần như là ngay lập tức. Thủ thuật ở đây đó là các phương pháp sử dụng tiến trình “off-line” để học về vấn đề đang giải quyết sao cho khi mà các kết quả tốt và nhanh được yêu cầu thì chúng sẽ được chuyển đi. Ví dụ, một cách tiếp cận thích hợp cho việc định tuyến gói tin trong các mặt thay đổi trong mô hình giao thông sẽ bao gồm một số liên tục nhưng tôi thiểu hóa xử lý mà được cập nhật liên tục trong routing table tại mỗi node dựa trên thông tin hiện tại về độ trễ và mức độ giao thông. Trong phần còn lại của chương này chúng ta sẽ giới thiệu ngắn gọn về sự tối ưu và và các kỹ thuật thích ứng mà chúng ta đã đề cập ở trên. Chi tiết sẽ được nói ở các chương sau. Sau đó chúng ta sẽ nói một chút về ba phần trong cuốn sách này trong các chương tiếp theo. Sau cùng, chúng ta sẽ chỉ ra tại sao những kỹ thuật này là quan trọng trong viễn thông, và chúng sẽ ngày càng phát triển theo thời gian. 1.3 Các kỹ thuật Heuristic hiện đại Có một loạt các phương pháp nổi tiếng trong hoạt động nghiên cứu, như là : quy hoạch động (DynamicProgramming), quy hoạch tuyến tính(Integer Programming) đã được sử dụng để giải quyết các lọa vấn đề tối ưu khác nhau. Tuy nhiên , một cộng đồng lớn của các nhà khoa học máy tính và các nhà nghiên cứu trí tuệ nhân tạo ngày nay đang dành rất nhiều nỗ lực vào những ý tưởng hiện đại hơn được gọi là “metaheuristics” hay còn gọi là “heuristic”. Vấn đề khác nhau cơ bản giữa các phương pháp hiên đại và phương pháp cổ điển đó là, nó dễ áp dụng hơn. Tực là nếu đưa ra một vấn đề thực tế điển hình và phức tạp thì nó sẽ cần ít công sức để phát triển cách tiếp cận mô hình tôi thép để giải quyết vấn đề đó hơn là trình bày vấn đề theo cách quy hoạch tuyến tính có thể áp dụng trên nó. Điều này không nói rằng các phương pháp hiện đại sẽ làm tốt hơn phương pháp cổ điển. Trên thực tế, kịch bản thực tế và điển hình khi mà cả hai loại phương pháp được áp dụng đó là : • Một chuyên gia metaheuristics so sánh hại loại kỹ thuật : phương pháp hiện đại làm tốt hơn phương pháp cổ điện • Một chuyên gia nghiên cứu các hoạt động cổ điển so sánh hai loại kỹ thuật : phương pháp cổ điển vượt trội hơn phương pháp hiện đại Mặc dù sự quan sát này dựa trên một khía cạnh quan trọng trong việc giải quyết các vấn đề tối ưu, bạn càng hiểu rõ các kỹ thuật riêng biệt mà bạn đang áp dụng thì bạn càng có khả sử dụng và khai thác nó để đạt được kết quả tốt hơn. Trong phần này chúng tôi chỉ cung cấp khía quát về một số thuật toán tối ưu hiện đại, và do đó không cung cấp khá đầy đủ thông tin cho một người đọc để có thể chỉnh cho phù hợp với các vấn đề cụ thể. Mặc dù chúng tôi không chỉ cho bạn cách để sáng tạo với chúng, nhưng chúng tôi chỉ ra điểm mấu chốt ở đâu. Làm cách nào để áp dụng sáng tạo chúng thì phụ thuộc và rất nhiều vấn đề, nhưng chương sau sẽ cung cấp các thông tin cho từng trường hợp cụ thể. Những gì sẽ trở nên rõ ràng từ chương này, tuy nhiên, đó là những kỹ thuật được đánh giá cao chung trong ứng dụng của chúng. Trong thực tế, bất cứ khi nào cũng có một số cách khá sẵn để đánh giá hoặc tính điểm giải pháp ứng cử viên cho vấn đề của bạn, sau đó các kỹ thuật này có thể được áp dụng. Về bản chất các kỹ thuật này được chia làm 2 nhóm: tìm kiếm cục bộ, tìm kiếm dựa trên quần thể. Đó sẽ là những thứ sẽ được bàn đến tiếp theo đây. 1.4 Tìm kiếm cục bộ Giả sử rằng bạn đang cố gắng để giải quyết một vấn đề P, và bạn có một tập hợp S là các giải pháp tiềm năng cho vấn đề này. Bạn không nhất thiết phải có tập S, vì nó quá lớn để có thể hiểu rõ toàn bộ. Tuy nhiên, bạn có một số cách để tạo ra các giải pháp từ nó. Ví dụ, S có thể là một tập hợp các cấu trúc liên kết cho một mạng, và các giải pháp ứng cử s, s’, s”, … là các đề cử cấu trúc kết nối cụ thể mà bạn đã đưa ra theo cách nào đó. Thêm vào đó, hãy tưởng tượng rằng bạn có một hàm chuẩn hóa f(s) (fitness function) có chức năng đưa ra kết quả của một giải pháp đề cử. Kết quả tốt hơn đồng nghĩa với việc đó là giải pháp tốt hơn. Lấy ví dụ, chúng ta đang cố gắng tìm ra những cấu trúc liên kết mạng đáng tin cậy nhất, sau đó f (s) có thể tính toán xác suất thất bại của liên kết giữa hai node đặc biệt quan trọng. Trong trường hợp chúng ta muốn sử dụng nghịch đảo của giá trị này nếu chúng ta thực sự muốn gọi nó là ‘chuẩn hóa’ (fitness). Trong những trường hợp khi mà kết quả thấp hơn, thì tốt hơn và thường thì thích hợp hơn đó là coi f(s) là một hàm chi phí. Chúng ta còn cần thêm một điều nữa, mà chúng ta gọi là một toán tử lân cận (neighbourhood operator). Đây là hàm có chức năng lấy ra một giải pháp đề cử s, và tạo ra một giải pháp đề cử mới s’ - thường chỉ hơi khác một chút so với s. Chúng ta sẽ sử dụng thuật ngữ ‘biến cố’ (mutation) để mô tả cho toán tử này. Ví dụ, nếu chúng ta biến đổi một cấu trúc liên kết mạng, kết quả biến đổi có thể bao gồm một liên kết thêm không có trong cấu trúc liên kết ‘cha mẹ’, hoặc cũng có thể là giống như nhau. Ngoài ra, biến cố có thể loại bỏ, hoặc di chuyển, một liên kết. Bây giờ chúng ta có thể mô tả một cách cơ bản về tìm kiếm cục bộ. Trước tiên, hãy xem xét một trong những phương pháp tìm kiếm cục bộ đơn giản nhất, được gọi là phương pháp leo đồi (hillclimbing), thực hiện theo các bước dưới đây: 1. Bắt đầu: tạo ra một giải pháp đề cử ban đầu (có thể bằng một cách ngẫu nhiên); gọi đây là giải pháp hiện tại, c. Đánh giá nó. 2. Biến đổi c để tạo ra một biến cố m, sau đó đánh giá m. 3. Nếu f(m) là tốt hơn hơn hoặc tương đương f(c), vậy thì cần thay thế c với m. (Ví dụ c bây giờ là một bản sao của m). 4. Lặp lại bước 2, cho đến khi nào đạt tới một tiêu chí kết thúc. Ý tưởng của hillclimbing nên được trình bày rõ ràng theo thuật toán nêu trên. Ở bất kỳ bước nào, chúng ta có một giải pháp hiện tại, và khi chúng ta nhìn vào một ân cận của giải pháp này – có vài điểm khác nhau. Nếu giải pháp lân cận là một bộ lọc (fitter) (hoặc tương đương), vậy thì có vẻ như là đây một ý tưởng tốt để chuyển sang lân cận đó; do đó, cần bắt đầu lại với lân cận giống như là với một giải pháp hiện tại mới. Ý tưởng căn bản đằng sau điều này, và đằng sau phương pháp tìm kiếm cục bộ nói chung, đó là sự hội tụ của các giải pháp tốt. Bạn có thể không thực sự mong đợi một cấu trúc liên kết đáng tin cậy xuất hiện, ví dụ, thêm một liên kết đơn vào một cấu trúc liên kết không đáng tin cậy. Tuy nhiên, bạn có thể mong đợi rằng một sự thay đổi như vậy có thể biến một cấu trúc liên kết đáng tin cậy thành một cấu trúc liên kết đáng tin cậy hơn. Trong tìm kiếm cục bộ, chúng ta khai thác ý tưởng này bằng cách liên tục tìm kiếm trong vùng lân cận của giải pháp hiện tại. Sau đó chúng ta sẽ chuyển đến một giải pháp phù hợp, và tái thực thi quá trình này. Sự nguy hiểm ở đây là chúng ta có thể gặp khó khăn trong với cái gọi là ‘tối ưu cục bộ’, tức là giải pháp hiện tại là không đủ tốt cho mục đích của chúng ta, nhưng tất cả các phương án lân cận của nó thậm chí còn tồi hơn. Đây là điểm không tốt đối với thuật toán leo đồi (hillclimbing), vì đơn giản là nó sẽ bị mắc kẹt ở đó. Các phương pháp tìm kiếm cục bộ khác ngoài hillclimbing, có cách để giải quyết chính xác tình huống này. Các phương pháp tìm kiếm cục bộ khác được phân biệt chúng với hillclimbing, tuy nhiên, có một số cách để giải quyết tình trạng này một cách chính xác. Chúng ta sẽ xem xét lại 2 phương pháp ở đây, đây là những phương pháp được sử dụng phổ biến và được sử dụng ở phần sau trong cuốn sách này. Dưới đây là mô phỏng luyện kim (simulated annealing) và tìm kiếm tabu (tabu search). 1.5 Mô phỏng luyện kim Thuật toán Mô phỏng luyện kim giống với thuật toán leo đồi. Sự khác biệt duy nhất là việc thêm vào của 1 cặp tham số, một bước phụ mà một số cuốn sách thực hiện với những tham số này, và đây là điểm chính, bước 3 được thay đổi để sử dụng các tham số này: 1. Bắt đầu: Tạo và đánh giá giải pháp ứng cử ban đầu (một cách ngẫu nhiên); gọi đây là giải pháp hiện tại c. Khởi tạo tham số nhiệt độ T và độ làm mát r (0<r<1). 2. Biến đổi c tạo ra m, kết quả của việc biến đổi c, và đánh giá m. 3. Nếu đánh giá test(f(m), f(c), T) là đúng, thì thay thế c bằng m (c bây giờ là bản sao của m). 4. Cập nhật tham số nhiệt độ (T thành rT). 5. Lặp lại bước 2, cho tới khi đạt được tiêu chí kết thúc. Vấn đề xảy ra trong mô phỏng luyện kim đó là đôi khi chúng ta chấp nhận kết quả của việc biến đổi ngay cả khi nó kém hơn cả giải pháp hiện tại. Tuy nhiên, chúng không xảy ra thường xuyên và khả năng kết quả của việc biến đổi kém hơn là rất thấp. Ngoài ra, chúng ta có ít khả năng làm như vậy trong thời gian tới. Kết quả tổng thể là thuật toán có cơ hội tốt để thoát khỏi optima cục bộ, do đó có thể tìm kiếm các miền tốt hơn của không gian sau này. Tuy nhiên, hướng cơ bản của sự dịch chuyển về các miền tốt hơn được duy trì. Tất cả những điều này được thực hiện trong chức năng test của bước 3. Một ví dụ về loại sử dụng test là đầu tiên thực hiện: ( ( ) ( ))/f m f c T e − Giả thiết rằng chúng ta thực hiện tối ưu hóa cost (nếu không chúng ta chỉ cần chuyển đổi f(m) và f(c)). Nếu kết quả của việc biến đổi tốt hơn hoặc tương đương giải pháp hiện tại, thì biểu thức trên sẽ lớn hơn hoặc bằng 1. Nếu kết quả của việc biến đổi kém hơn, thì kết quả sẽ nhỏ hơn 1 và kém hơn kết quả biến đổi là gần bằng 0. Do đó, kết quả của biểu thức được sử dụng như một xác suất. Tạo ngẫu nhiên 1 số rand, với 0<rand<1 và thực hiện test trong bước 3 chỉ đơn giản là kiểm tra có hay không biểu thức nhỏ hơn rand. Nếu vậy (luôn luôn được như vậy nếu kết quả biến đổi tốt hơn hoặc tương đương), chúng ta chấp nhận kết quả biến đổi. T là tham số nhiệt độ. Với bắt đầu lớn và giảm dần (xem bước 4) theo thời gian. Điều bạn có thể nói từ biểu thức trên, là xác suất của kết quả biến đổi kém chấp nhận được cũng sẽ giảm dần theo thời gian. Mô phỏng luyện kim tạo ra một phương pháp mạnh, mặc dù nó khá khó khăn để đạt được những tham số đúng. Tham khảo cuốn A good modern account, Dowsland (1995). 1.6 Tabu Search Một cách khác để thoát khỏi optima cục bộ được cung cấp bởi tìm kiếm tabu (Glover 1989; 1989a; Glover and Laguna, 1997). Có nhiều khía cạnh tinh vi để tìm kiếm tabu, ở đây chúng ta chỉ tìm hiểu về bản chất của kỹ thuật. Giới thiệu một cách rõ ràng và đầy đủ được cung cấp trong Glover and Laguna (1995; 1997). Phương pháp tìm kiếm Tabu, như nhiều phương pháp tìm kiếm cục bộ khác không bàn và xem xét về các láng giềng của giải pháp hiện tại và thậm chí chọn một trong láng giềng để chuyển đến. Đặc tính có tính phân biệt này của phương pháp tìm kiếm Tabu là về vấn đề đưa ra sự lựa chọn như thế nào. Đây không đơn giản là việc lựa chọn láng giềng nào phù hợp nhất trong số những láng giềng đã được kiểm tra. Phương pháp tìm kiếm Tabu tính đến cả sự biến đổi (mutation) mà cho chúng ta kết quả. Ví dụ, nếu láng giềng tốt nhất trong giải pháp của bạn là láng giềng mà kết nối bằng việc thay đổi liên kết từ node k, nhưng chúng ta đã thực hiện việc kết nối đó trong lần lặp trước thì có thể một láng giềng khác sẽ được lựa chọn thay thế, thậm chí nếu sự di chuyển tốt nhất hiện tại là di chuyển gần đây nhất cũng có thể không được chấp nhận. Tìm kiếm tabu cung cấp một cơ chế dựa trên chỉ tiêu nguyện vọng cho phép ta chọn nhiều hơn nếu láng giềng đang được xem xét mà phù hợp hơn so với láng giềng hiện tại. Do vậy, bất kỳ việc cài đặt phướng pháp tìm kiếm tabu nào đều duy trì một vài dạng bộ nhớ ghi lại những thuộc tính nhất định của những di chuyển gần đây. Những thuộc tính này phụ thuộc nhiều vào vấn đề đang xem xét và đây là một phần của việc áp dụng phương pháp tìm kiếm tabu. Ví dụ, nếu chúng ta cố gắng tối ưu hóa topo mạng, một dạng của bộ biến đổi sẽ phải thay đổi đường cáp liên kết giữa node a và node b. Hoặc là trong việc cài đặt phương pháp tìm kiếm tabu, chúng ta có lẽ chỉ ghi lại sự kiện thay đổi đường cáp ở lần lặp thứ i, hoặc là đơn giản chỉ ghi lại sự thay đổi trong liên kết giữa node a với một node mà liên kết với node b. Nếu chúng ta chỉ ghi lại kiểu thuộc tính trước đó thì những di chuyển có thể xảy ra gần thời điểm đó có thể không được chấp nhận và không phụ thuộc vào các node có liên quan. Nếu chúng ta chỉ ghi lại thuộc tính sau đó thì những thay đổi tiềm năng bao gồm node a và (hoặc) node b có thể không được chấp nhận nhưng những di chuyển thay đổi cáp có thể được chấp nhận. 1.7 Phương pháp tìm kiếm cục bộ Artful Có một vài điểm chú ý về việc thuật toán tabu minh họa đó là khía cạnh quan trọng của phương pháp tìm kiểm cục bộ tốt là quyết định láng giềng nào cần di chuyển đến. Tất cả các phương pháp tìm kiếm cục bộ thực hiện các ý tưởng cơ bản về di chuyển cục bộ đều là những ý tưởng tốt. Ví dụ, nếu giải pháp hiện tại của bạn tốt thì có thể có một giải pháp tốt hơn gần đó và có thể có một giải pháp tốt hơn nữa [...]... để phát triển 1 kĩ thuật tối ưu tốt nhờ sử dụng các thuật toán và cơ chế đặc tả Khi một giải pháp được thiết kế, nó có thể được thực hiện cài đặt trong vài tuần hoặc vài tháng Ngược lại, với vấn đề định tuyến và sử dụng giao thức được nói đến trong phần 2, bao gồm các kĩ thuật tối ưu động gồm 2 vấn đề liên quan đến tối ưu thời gian tiêu thụ.vấn đề chính ở phần này là tập trung vào các phương thức để... tôi đã trình bày một tập các vấn đề cần được hoàn thiện Các vấn đề tương tự trong việc kết nối các kĩ thuật lại cũng được nhắc đến Việc phát triển các kĩ thuật tính toán đã được tích hợp và cài đặt nhanh chóng trong lĩnh vực viễn thông Chương 9: Thuật toán Genetic Adaptive Routing Algorithm 9.1 Giới thiệu Một thuật toán định tuyến xây dựng các routing table để chuyển tiếp các gói thông tin dựa trên... kết Phương pháp Heuristic và các kĩ thuật thích hợp được ứng dụng trong rất nhiều trong viễn thông liên quan tới việc tối ưu Nó được chia làm 3 phần chính, tương đương với 3 vấn đề thường gặp Thứ nhất, đó là vấn đề thiết kế và tổ chức mạng Trong thực tế, có rất nhiều hoạt động sử dụng kĩ thuật Heuristic hiện đại, việc thiết kế mạng sẽ đơn giản với các vấn đề tối ưu do các vấn đề này đã được xác định... một mình (mutable alone) Trong mọi trường hợp, một solution ứng viên được gọi là NST, và các thành phần của nó được gọi là các gene 1.9 Kỹ thuật tính toán thích nghi Để giải quyết nhu cầu tối ưu trong môi trường viễn thông luôn luôn thay đổi, sử dụng trực tiếp các kỹ thuật tối ưu cục bộ (local optimization) hoặc tối ưu quần thể cho kết quả không phù hợp Lý do là nó mất nhiều thời gian để hội tụ về một... mình (mutable alone) Trong mọi trường hợp, một solution ứng viên được gọi là NST, và các thành phần của nó được gọi là các gene 1.10 Kỹ thuật tính toán thích nghi Để giải quyết nhu cầu tối ưu trong môi trường viễn thông luôn luôn thay đổi, sử dụng trực tiếp các kỹ thuật tối ưu cục bộ (local optimization) hoặc tối ưu quần thể cho kết quả không phù hợp Lý do là nó mất nhiều thời gian để hội tụ về một... sử dụng; vì thế, các kết nối này có tải rất nhỏ Bằng cách sử dụng SPFP, chúng ta có thể làm giảm tải của các kết nối Còn thuật toán adaptive SPFP, đa phần các kết nối đều nặng tải vì lý do các broadcast message thưởng xuyên gửi đi để theo dõi độ trễ truyền thông của các kết nối Mặt khác, GARA có thể làm giảm mạnh tải của kết nối Không chỉ vì thuật toán GARA tính toán các path sao cho tối thiểu hóa độ... thể tìm kiếm các giải pháp được cải tiến bằng cách tạm thời thực hiện các giải pháp khác tồi hơn Thuật toán mô phỏng annealing và phương pháp tìm kiếm tabu là hai cách tiếp cận để giải quyết vấn đề này Tuy nhiên, đối với một vấn đề cụ thể thì cách tốt nhất trong triển khai và thiết kế hai cách tiếp cận trên là không rõ ràng Có nhiều sự lựa chọn có thể đưa ra: cách đầu tiên có thể là làm cách nào để... về thuật ngữ Thực tế, có nhiều thuật toán dựa trên quần thể (population based) (hay còn gọi là thuật toán tiến hóa (evolutionary algorithms – EAs)) Một thuật ngữ phổ biến khác được sử dụng là thuật ngữ thuật toán di truyền” (genetic algorithm), liên quan đến một họ các phương pháp sử dụng toán tử tái tổ hợp (recombination operator) (Holland, 1965; Goldberg, 1989), trong khi đó, các họ khác của thuật. .. về thuật ngữ Thực tế, có nhiều thuật toán dựa trên quần thể (population based) (hay còn gọi là thuật toán tiến hóa (evolutionary algorithms – EAs)) Một thuật ngữ phổ biến khác được sử dụng là thuật ngữ thuật toán di truyền” (genetic algorithm), liên quan đến một họ các phương pháp sử dụng toán tử tái tổ hợp (recombination operator) (Holland, 1965; Goldberg, 1989), trong khi đó, các họ khác của thuật. .. các bài toán tối ưu tổ hợp, chúng có thể trực tiếp giải quyết bằng GAs Ví dụ, một ứng dụng của GAs cho mạng định tuyến trong viễn thông được đề xuất trong cuốn Handbook of Genetic Algorithms (Davis, 1991) by Cox et al (1991) Tác giả giải quyết vấn đề tối ưu hóa ràng buộc bằng cách cho phép liên kết giữa bandwidth với mỗi connection Theo cách tiếp cận khác, Munakata và Hashier (1993) đã giải quyết tối