Tải bản đầy đủ - 0 (trang)
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Tải bản đầy đủ - 0trang

GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



các nhà tốn học ở Vienna và Harvard trong nhũng năm 1930, đặc biệt Karl

Menger, người đã định nghĩa bài toán, xem xét thuật toán hiển nhiên nhất cho bài

toán và phát hiện ra thuật tốn láng giềng gần nhất là khơng tối ưu.

Hassler Whitney ở đại học Princeton đưa ra tên bài tốn người du lịch ngay

sau đó.

Trong những năm 1950 và 1960, bài toán trở nên phổ biến trong giới nghiên

cứu khoa học ở Châu Âu và Mỹ. George Dantzig, Delbert Ray Fulkerson và Selmer

M.Johnson ở công ty RAND tại Santa Moncia [5] đã có đóng góp quan trọng cho bài

tốn này, biểu diễn bài toán này dưới dạng quy hoạch nguyên và đưa ra phương pháp







mặt phẳng cắt để tìm ra lời giải. Bằng phương pháp này họ đã giải được tối ưu một



H



U



trường hợp 49 thành phố bằng cách xây dựng một chu trình và chứng minh khơng có



TẾ



chu trình nào ngắn hơn.



N

H



Trong những thập niên tiếp theo, bài toán được nghiên cứu bởi nhiều nhà



KI



nghiên cứu trong các lĩnh vực tốn học, khoa học máy tính, hóa học, vật lý và các





C



ngành khác.



[6] chứng minh rằng bài toán chu trình



H



Năm 1972, Richard M.Karp



ẠI



Hamilton là NP-đầy đủ, kéo theo bài toán TSP cũng là NP-đầy đủ. Đây cũng là một



Đ



lý giải tốn học cho sự khó khăn trong việc tìm kiếm chu trình ngắn nhất.



N



G



Cuối thập niên 1970 và 1980 khi Grotschel [7], Padberg, Rinaldi và cộng



Ư







sự [8] đã giải được những trường hợp lên đến 2393 thành phố, sử dụng phương



TR



pháp mặt phẳng cắt và nhánh cận.

Trong thập niên 1990 Applegate, Bixby, Chavátal và Cook [9] phát triển một

chương trình mang tên Concorde giải được nhiều trường hợp có độ kỷ lục lớn hiện nay.

Năm 1991 Gerhard Reinnelt xuất bản một bộ dữ liệu các trường hợp có độ khó

khác nhau mang tên TSPLIB [10] và nó đã được sử dụng bởi nhiều nhóm nghiên cứu

để so sánh kết quả

Năm 2005 Cook và cộng sự đã giải được một trường hợp có 33810 thành

phố, xuất phát từ một bài tốn thiết kế vi mạch.



SVTH: Hồ Minh Tồn - K48A Tin Học Kinh Tế



Trang 6



GVHD: TS. Hồ Quốc Dũng







Khóa luận tốt nghiệp



H



U



Hình 1. 1: Lịch sử bài tốn



TẾ



1.1.2. Phát biểu bài toán



N

H



Bài toán người du lịch được phát biểu như sau:



KI



Có một người du lịch muốn viếng thăm tại n thành phố. Xuất phát từ một





C



thành phố nào đó, đi qua các thành phố khác để du lịch và trở về thành phố ban

đầu, biết chi phí đi lại và khoảng cách giữa các thảnh phố. Mỗi thành phố chỉ đến một



ẠI



H



lần và khoảng cách từ một thành phố đến các thành phố khác đã được biết trước.



Đ



Hãy tìm một chu trình (một đường đi khép kín thõa mãn các điều kiện trên) sao cho



N



G



tổng độ dài các cạnh là nhỏ nhất.







Bài tốn người du lịch [1], [2] có thể được mơ hình hóa như một đồ thị vơ



TR



Ư



hướng có trọng số, trong đó mỗi thành phố là một đỉnh của đồ thị. Khoảng cách

giữa hai thành phố là độ dài cạnh. Đây là vấn đề cực tiểu hóa với điểm đầu và điểm

cuối là cùng một đỉnh sau khi thăm hết các đỉnh còn lại đúng một lần. Mơ hình này

thường là một đồ thị đầy đủ (giữa mỗi cặp đỉnh đều có cạnh). Nếu khơng có đường

giữa hai thành phố thì có thể thêm một cạnh với độ dài đủ lớn vào đồ thị mà không

ảnh hưởng đến kết quả tối ưu sau cùng.

Được biểu diễn bằng tốn học có đồ thị vơ hướng G=(V,E) với

V={v1,v2,...,vn} là tập các đỉnh hoặc nút và E{(vi,vj) : vi,vj ∈ V } là tập hợp các cạnh.



Mỗi đỉnh vi đại diện cho một thành phố vi ∈ V và mỗi cạnh (vi,vj) ∈ V là khoảng

cách giữa hai thành phố i,j.



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 7



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



Một chu trình như vậy còn gọi là chu trình Hamilton và cũng là một giải

pháp tốt cho TSP để tối thiểu chi phí, chu trình Hamilton là chu trình nó đi qua tất

cả các đỉnh của đồ thị đúng một lần. Một đồ thị đầy đủ, ln tồn tại chu trình

Hamilton.

Bài tốn trở thành tìm cực tiểu :



𝑥1𝑛

𝑥2𝑛

….�

𝑥𝑛𝑛



xij = 0 khi khơng có đường đi từ i đến j.



(1)







….

….

….

…..



U



𝑥12

𝑥22

….

𝑥𝑛2



H



𝑥11

𝑥21

X = �….

𝑥𝑛1



TẾ



đến j.



�����

Min 𝑍 = ∑𝑛𝑖=1 ∑𝑛𝑗=1 𝑋𝑖𝑗 với i,j = 1,

𝑛 n € N (n > 0), Xij là khoảng cách đi từ i



N

H



Ta có ví dụ sau: Cho danh sách các thành phố được đánh số 1,2,3,4,5,6 như



TR



Ư







N



G



Đ



ẠI



H





C



KI



Hình 1.2 và khoảng cách giữa các thành phố được cho như Bảng 1.1.



Hình 1. 2: Đường đi và khoảng cách giữa các điểm



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 8



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



Bảng 1. 1: Khoảng cách giữa các địa điểm

1



2



3



4



5



1



0



5



8



15



10



2



5



0



12



18



9



3



8



12



0



10



13



4



15



18



10



0



7



5



10



9



13



7



0



U







Địa điểm



10

9

13

7

0



N

H



15

18

10

0

7



KI



5

8

0 12

12 0

18 10

9 13





C



=



0

5

8

15

10



H



G















TẾ



H



Từ bảng trên ta có ma trận khoảng cách giữa các thành phố lập được :



ẠI



1.2 Độ phức tạp của bài tốn người du lịch















(2)



G



Đ



1.2.1 Độ phức tạp tính tốn



N



Lý thuyết độ phức tạp tính tốn [3] là một nhánh của lý thuyết tính tốn



Ư







trong lý thuyết khoa học máy tính và toán học tập trung vào phân loại các vấn đề



TR



tính tốn theo độ khó nội tại của chúng. Ở đây, độ phức tạp tính tốn được hiểu là

một vấn đề có thể giải được bằng máy tính, cũng có thể hiểu là một tập các trường

hợp và lời giải cho các trường hợp đó.

Một vấn đề được coi là khó nếu lời giải của nó đòi hỏi nhiều tài nguyên,

bất kể sử dụng thuật toán nào. Lý thuyết độ phức tạp tính tốn chuyển ý tưởng trực

quan này thành mệnh đề toán học chặt chẽ, bằng cách đưa ra các mơ hình tính tốn

để nghiên cứu các vấn đề này và tính lượng tài nguyên cần thiết để giải quyết

chúng chẳng hạn như thời gian hay bộ nhớ, lưu lượng thông tin liên lạc, số lượng

cổng logic trong mạch, số lượng bộ xử lý. Nhiệm vụ của lý thuyết độ phức tạp tính

tốn là xác định các giới hạn của những gì máy tính có thể làm và khơng thể làm.



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 9



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



Các mơ hình tính tốn và các thơng số phức tạp [3]:

+ Máy Turing là một mơ hình tốn học cho một máy tính tổng qt. Nó là

thiết bị lý thuyết thao tác trên các ký hiệu nằm trên một dãi băng. Máy Turing khơng

nhằm thiết kế thiết bị tính tốn trên thực tế, mà chỉ là một thiết bị trừu tượng đại diện

cho máy tính. Người ta tin rằng nếu một vấn đề có thể giải quyết bởi một thuật tốn,

thì cũng có một máy Turing giải quyết vấn đề đó. Tất cả các mơ hình tính tốn hiện

nay chẳng hạn như máy RAM, Trò chơi cuộc sống của Conway, automat tế bào hay

bất kì ngơn ngữ lập tình nào cũng đều có thể tính được trên máy Turing. Do máy

Turing phù hợp cho việc nghiên cứu bằng toán học và được xem là mạnh ngang bất







kỳ mơ hình tính tốn nào, máy Turing là mơ hình tốn phổ biến nhất trong lý thuyết



TR



Ư







N



G



Đ



ẠI



H





C



KI



N

H



TẾ



H



U



độ phức tạp tính tốn.



Hình 1. 3: Máy Turing

+ Các thông số phức tạp: Để định nghĩa cụ thể thời gian và bộ nhớ cần thiết

để giải quyết vấn đề, cần định rõ một mơ hình tính tốn cụ thể. Thời gian cần thiết

cho một máy Turing M giải quyết dữ liệu vào X là số lượng lần chuyển trạng thái,

hay số bước của máy trước khi máy ngừng và có thể thơng báo kết quả. Một máy

Turing chạy trong thời gian f(n) nếu thời gian máy sử dụng cho tất cả các dữ liệu

vào kích thước n là không f(n). Mặc dù thời gian và bộ nhớ là hai thông số phổ biến

nhất, nhiều thông số phức tạp khác cũng có thể xem là tài ngun tính tốn. Các



SVTH: Hồ Minh Tồn - K48A Tin Học Kinh Tế



Trang 10



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



thơng số độ phức tạp được định nghĩa tổng quát bởi các tiên đề độ phức tạp Blum,

một vài thông số độ phức tạp khác được dùng trong lý thuyết độ phức tạp bao gồm

độ phức tạp truyền thông, độ phức tạp mạch và độ phức tạp cây quyết định.

+ Các lớp độ phức tạp:

Một lớp độ phức tạp là một tập hợp các vấn đề có độ phức tạp tương tự

nhau. Các lớp độ phức tạp thường được định nghĩa theo các yếu tố như sau : Thể

loại vấn đề, Mô hình tính tốn, Loại tài ngun bị giới hạn và giới hạn cụ thể.

+ Các độ phức tạp quan trọng :



H



U







Bảng 1. 2: Các lớp độ phức tạp

Lớp độ phức tạp



Mơ hình tính tốn



DTIME



Máy Turing đơn định



P



Máy Turing đơn định



EXPTIME



Máy Turing đơn định



Thời gian 2poly(n)



NTIME(f(n))



Máy Turing không đơn định



Thời gian f(n)



NP



Máy Turing không đơn định



Thời gian poly(n)



NEXPTIME



Máy Turing không đơn định



Thời gian2poly(n)



Máy Turing đơn định



Bộ nhớ f(n)



Máy Turing đơn định



Bộ nhớ O (log n)



PSPACE



Máy Turing đơn định



Bộ nhớ poly(n)



EXPSPACE



Máy Turing đơn định



Bộ nhớ 2poly(n)



NSPACE(f(n))



Máy Tuirng không đơn định



Bộ nhớ f(n)



NL



Máy Turing không đơn định



Bộ nhớ O (log n)



NPSPACE



Máy Turing không đơn định



Bộ nhớ poly(n)



NEXPSPACE



Máy Turing không đơn định



Bộ nhớ 2poly(n)



TẾ



N

H



KI





C



H



ẠI



Đ



N



G



TR



Ư







DSPACE(f(n))

L



Giới hạn tài nguyên



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Thời gian f(n)

Thời gian poly(n)



Trang 11



GVHD: TS. Hồ Quốc Dũng







Khóa luận tốt nghiệp



H



U



Hình 1. 4: Quan hệ giữa các lớp độ phức tạp quan trọng



TẾ



Theo định lý Savitch thì PSPACE = NPSPACE và EXPSPACE =



N

H



NEXPSPACE.



KI



1.2.2 Độ phức tạp tính toán của bài toán người du lịch





C



Bài toán người di du lịch (TSP) thuộc lớp bài tốn NP-Khó (Lớp các bài

tốn khơng có giải thuật trong thời gian đa thức).



ẠI



H



Việc thực hiện liệt kê hết tất cả các chu trình là điều gần như không thể với



Đ



số đỉnh lớn (đồ thị đỉnh phải duyệt n! chu trình). Số chu trình phải duyệt tăng rất



N



G



nhanh khi số đỉnh n càng lớn. Ngay với 1 đồ thị 100 đỉnh, việc duyệt toàn bộ cũng







là điều kiện rất khó thực hiện.



TR



Ư



1.3 Thuật tốn di truyền

1.3.1. Lịch sử của thuật toán di truyền

Ý niệm về thuật toán di truyền đã được một số nhà sinh vật học đưa ra từ

những năm 50-60, thế kỉ XX. A.S.Fraser [11] là người tiên phong nêu lên sự tương

đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về Genetic

Algorithms (GA)

Tuy nhiên, chính John Henry Holland [12] mới là người triển khai ý tưởng

và phương pháp giâỉ quyết vấn đề dựa theo sự tiến hóa.

Thuật tốn di truyền là thuật tốn tối ưu ngẫu nhiên dựa trên cơ chế chọn

lọc tự nhiên và tiến hóa di truyền. Nguyên lý cơ bản của thuật tốn di truyền đã



SVTH: Hồ Minh Tồn - K48A Tin Học Kinh Tế



Trang 12



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



được tác giả J.H.Holland giới thiệu vào năm 1962. Cơ sở toán học đã được phát

triển từ cuối những năm 1960 và đã được giới thiệu trong cuốn sách đầu tiên của

Holland “Adaptive in Natural and Artificial Systems” [12]. Thuật toán di truyền

được ứng dụng đầu tiên trong hai lĩnh vực chính : tối ưu hóa và học máy.

Trong lĩnh vực tối ưu hóa thuật tốn di truyền được phát triển nhanh chóng

và ứng dụng trong nhiều lĩnh vực khác nhau như tối ưu hàm, xử lý ảnh, bài toán

hành trình người du lịch, nhận dạng hệ thống và điều khiển. Thuật toán di truyền

cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho

rằng, q trình tiến hóa tự nhiên là q trình hồn hảo nhất, hợp lý nhất và tự nó đã



U

H



thế hệ trước bởi tính kế thừa và đấu tranh sinh tồn.







mang tính tối ưu. Q trình tiến hóa tối ưu ở chổ, thế hệ sau bao giờ cũng tốt hơn



TẾ



Lần đầu tiên Holand nghiên cứu các giải thuật này, chúng hoàn tồn khơng



N

H



có tên. Do nguồn gốc của phương pháp là từ gen di truyền, Holand đã đặt tên cho



KI



nó là thuật tốn đi truyền.





C



Thuật tốn di truyền khơng chú trọng đến giải pháp duy nhất và chính xác



H



như phương pháp cổ điển, trái lại GA xét đến toàn bộ các giải pháp và chọn lấy giải



ẠI



pháp tương đối tốt nhất nếu khơng nói là tối ưu. GA tuy dựa trên tính ngẫu nhiên



Đ



nhưng có hướng dẫn bởi hàm số thích nghi, do đó khơng có nghĩa là đốn mò như



N



G



nhiều người hiểu lầm, trái lại GA có một nền tảng toán học vững chắc.







1.3.2. Đặc điểm của thuật toán di truyền



TR



Ư



Thuật tốn di truyền [13] đã mơ phỏng sự chọn lọc tự nhiên và di truyền .

Trong tự nhiên các cá thể khỏe, có khả năng thích nghi với mơi trường tốt sẽ được

tồn tại và phát triển ở các thế hệ sau. Mỗi cá thể có cấu trúc gen đặc trưng cho tính

chất của cá thể đó.

Trong q trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất

của cha mẹ, cấu trúc gen của nó có thể xảy ra hiện tượng đột biến, cấu trúc gen của

cá thể con có thể chứa các gen mà cả cha mẹ đều khơng có.

Trong giải thuật di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu

mơ tả cấu trúc gen của cá thể đó, ta gọi nó là nhiễm sắc thể. Mỗi nhiễm sắc thể

được tạo thành từ các đơn vị được gọi là gen.



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 13



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



Thuật tốn di truyền được sử dụng đặc biệt cho những bài toán có u cầu

tìm kiếm tối ưu tồn cục với khơng gian tìm kiếm lớn và khơng thể kiểm sốt nhờ

khả năng duyệt qua khơng gian tìm kiếm đại diện mà khơng thực sự đi qua từng

điểm của tồn bộ khơng gian.

Phương pháp tìm kiếm GA duy trì và xử lý một tập các lời giải được gọi là

quần thể. Các cá thể của quần thể ở thế hệ tiếp theo được tạo ra bằng cách lai ghép

và đột biến ngẫu nhiên các cá thể của quần thể ở thế hệ trước, các cá thể tồn tại sinh

sản ở thế hệ sau là các cá thể phát triển và thích nghi với môi trường.

Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Một







quần thể ứng với một giai đoạn phát triển gọi là một thế hệ. Từ một thế hệ được tạo



H



U



ra, giải thuật di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các



TẾ



thế hệ.



N

H



Giải thuật di truyền bao gồm 4 bước chính: Mã hóa lời giải, khởi tạo quần



KI



thể, sử dụng các phép toán di truyền và đánh giá độ thích nghi. Sau đó chúng ta lại





C



sinh ra một quần thể mới bằng phép chọn lọc rồi tiếp tục sử dụng các phép toán di



H



truyền và đánh giá độ thích nghi của các cá thể trong quần thể.Thuật giải được thực



ẠI



hiện qua càng nhiều thế hệ thì lời giải đưa ra càng tối ưu.



Đ



Muốn dùng thuật toán di truyền phải xác định và thực hiện được các bước



N



G



của thuật toán di truyền [14]:







Bước 1: Khởi tạo quần thể các nhiễm sắc thể.



TR



Ư



Bước 2: Xác định giá trị thích nghi của từng Nhiễm sắc thể.

Bước 3: Sao chép lại các nhiễm sắc thể dựa vào giá trị thích nghi của chúng

và tạo ra những nhiễm sắc thể mới bằng các phép toán di truyền.

Bước 4: Loại bỏ những thành viên khơng thích nghi trong quần thể.

Bước 5: Chèn những nhiễm sắc thể mới vào quần thể để hình thành một

quần thể mới.

Bước 6: Kiểm tra điều kiện, nếu mục tiêu tìm kiếm đạt được thì dừng lại,

nếu khơng thì trở lại bước 3.



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 14



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp



TR



Ư







N



G



Đ



ẠI



H





C



KI



N

H



TẾ



H



U







Sơ đồ Thuật tốn Di truyền:



Hình 1. 5: Sơ đồ Giải thuật thuật tốn di truyền



SVTH: Hồ Minh Tồn - K48A Tin Học Kinh Tế



Trang 15



GVHD: TS. Hồ Quốc Dũng



Khóa luận tốt nghiệp

Cấu trúc giải thuật di truyền tổng quát [15]:

Bắt đầu

Gán t = 0;

Khởi tạo P(t)

Tính độ thích nghi cho các cá thể thuộc P(t);

Khi (điều kiện dừng chưa thỏa) lặp:

t=t+1

Chọn lọc P(t)

Lai P(t)



U







Đột biến P(t)



H



Hết lặp



TẾ



Kết thúc



N

H



- Khởi tạo quần thể: Quần thể ban đầu được khởi tạo bằng cách sinh ngẫu nhiên



KI



các chu trình, số lượng chu trình khởi tạo là khơng q ít , cũng khơng quá nhiều.



H



cá thể hay là độ tốt của lời giải.





C



- Tính độ thích nghi: là đánh giá hay mục tiêu thể hiện tính thích nghi của



ẠI



- Chọn lọc: trong tự nhiên quá trình chọn lọc và đấu tranh sinh tồn đã làm



Đ



thay đổi các cá thể trong quần thể, những cá thể thích nghi được với điều kiện sống



N



G



thì có khả năng đấu tranh lớn hơn do đó có thể tồn tại và sinh sản. Các cá thể khơng







thích nghi được dần mất đi. Chọn lựa các cá thể trong GA là cách chọn các cá thể



TR



Ư



có độ thích nghi tốt đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích

sinh ra cá thể mới tốt hơn. Có nhiều phương pháp lựa chọn cá thể tốt:

+ Chọn lọc dùng bánh xe Roulette (Roulette Wheel Selection): Đây được

xem là phương pháp chọn lọc đơn giản nhất, ở đó mỗi cá thể trong quần thể chiếm

một khe trong vòng trong Roulette có độ rộng tỷ lệ với giá trị hàm mục tiêu của cá

thể. Mỗi lần quay vòng tròn chúng ta nhận được một cá thể và coi như đó là cách

lựa chọn chuỗi tái tạo.

Thực hiện bằng cách Tính tổng giá trị thích nghi của tất cả các cá thể của quần

thể và gọi là tổng thích nghi. Phát sinh một số ngẫu nhiên n trong khoảng từ 0 đến tổng



SVTH: Hồ Minh Toàn - K48A Tin Học Kinh Tế



Trang 16



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Tải bản đầy đủ ngay(0 tr)

×