1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn trí tuệ nhân tạo Đề tài giải thuật di truyền

24 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giải Thuật Di Truyền
Tác giả Đỗ Minh Tiến, Đào Xuân Duy, Phạm Quang Huy, Phạm Thành Long
Người hướng dẫn Nguyễn Hà An
Trường học Trường Đại Học Hải Phòng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố Hải Phòng
Định dạng
Số trang 24
Dung lượng 280,74 KB

Nội dung

Trong các thập niên 1950s và 1960s, một số các nhà khoa học máy tính, trong quá nghiên cứu các hệ thống tiến hóa, đã đề xuất ý tưởng trong tất cả các hệ thống này là để phát triển một số

Trang 1

TRƯỜNG ĐẠI HỌC HẢI PHÒNG

Khoa Công nghệ thông tin



BÀI TẬP LỚN TRÍ TUỆ NHÂN TẠO

Sinh viên thực hiện:

Đỗ Minh Tiến

Đào Xuân Duy Phạm Quang Huy Phạm Thành Long

Giáo Viên Hướng Dẫn:

Nguyễn Hà An

Trang 2

PHẠM QUANG HUY Powerpoint , word

Phân công việc nhóm

Trang 3

Đề tài: Giải thuật di truyền 1

CHƯƠNG I: TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO 2

1.1 Giới thiệu môn học nhập môn trí tuệ nhân tạo 2

1.2 Giới thiệu giải thuật di truyền 5

1.2.1: GIẢI THUẬT DI TRUYỀN LÀ GÌ 5

1.2.2: CÁC QUY LUẬT LAI 5

CHƯƠNG II: Giải thuật di truyền (GA) và ứng dụng giải một số bài toán 6

2.1 Giải thuật di truyền là như thế nào ? 7

2.2 ví dụ minh họa giải thuật và toán tử di truyền 8

2.2.1 Bài toán thỏa CNF 9

2.2.2 Bài toán người đi bán hàng TSP 10

2.3 Danh sách những toán tử đột biến cho bài toán TSP. 12

2.3.1 Đánh giá giải thuật 12

2.3.2 Các thuật toán di truyền được xem là leo núi song song 13

CHƯƠNG III: Ứng dụng python trong giải thuật di truyền 15

3.1 Sơ đồ thuật toán 15

3.2 Chromosomes và Gene 17

CHƯƠNG IV: KẾT LUẬN 21

Trang 4

CHƯƠNG I: TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO

1.1 Giới thiệu môn học nhập môn trí tuệ nhân tạo

Trí tuệ nhân tạo là một lĩnh vực nghiên cứu của khoa học máy tính và khoa học tính toán nói chung Có nhiều quan điểm khác nhau về trí tuệ nhân tạo và do vậy

có nhiều định nghĩa khác nhau về lĩnh vực khoa học này Mục đích của trí tuệ nhântạo là xây dựng các thực thể thông minh Tuy nhiên, do rất khó định nghĩa thế nào

là thực thể thông minh nên cũng khó thống nhất định nghĩa trí tuệ nhân tạo Theo một tài liệu được sử dụng rộng rãi trong giảng dạy trí tuệ nhân tạo hiện nay, các định nghĩa có thể nhóm thành bốn nhóm khác nhau, theo đó, trí tuệ nhân tạo là lĩnhvực nghiên cứu việc xây dựng các hệ thống có đặc điểm sau: 1) Hệ thống hành động như người 2) Hệ thống có thể suy nghĩ như người 3) Hệ thống có thể suy nghĩ hợp lý 4) Hệ thống hành động hợp lý Trong số các định nghĩa trên, nhóm thứ hai và ba quan tâm tới quá trình suy nghĩ và tư duy, trong khi nhóm thứ nhất và thứ

tư quan tâm chủ yếu tới hành vi Ngoài ra, hai nhóm định nghĩa đầu xác định mức

độ thông minh hay mức độ trí tuệ bằng cách so sánh với khả năng suy nghĩ và hànhđộng của con người, trong khi hai nhóm định nghĩa sau dựa trên khái niệm suy nghĩ hợp lý và hành động hợp lý Trong phần phân tích bên dưới ta sẽ thầy suy nghĩ và hành động hợp lý khác với suy nghĩ và hành động như người thế nào Sau đây ta sẽ xem xét cụ thể các nhóm định nghĩa trên 1) Hành động như người Theo cách định nghĩa này, trí tuệ nhân tạo nhằm tạo ra các hệ thống có khả năng thực hiện những công việc đòi hỏi có trí tuệ của con người Phép thử Turing (Turing test): Vào năm 1950, Alan Turing – nhà toán học người Anh có nhiều đóng góp chokhoa học máy tính – đã xây dựng thủ tục cho phép định nghĩa trí tuệ Thủ tục này sau đó được gọi là phép thử Turing (Turing test), và được thực hiện như sau Hệ thống được gọi là thông minh, hay có trí tuệ nếu hệ thống có thể hành động tương

tự con người trong các công việc đòi hỏi trí tuệ Trong quá trình thử, một người kiểm tra sẽ đặt các câu hỏi (dưới dạng văn bản) và nhận câu trả lời cũng dưới dạng

Trang 5

người thật trả lời hay do máy sinh ra thì hệ thống qua được phép thử và được gọi là

có trí tuệ Cần lưu ý rằng, phép thử Turing nguyên bản không đòi hỏi có sự tiếp xúc vật lý trực tiếp giữa người kiểm tra và hệ thống bị kiểm tra, do việc tạo ra hệ thống người nhân tạo một cách vật lý được coi là không liên quan tới trí tuệ

Trong các thập niên 1950s và 1960s, một số các nhà khoa học máy tính, trong quá nghiên cứu các hệ thống tiến hóa, đã đề xuất ý tưởng trong tất cả các hệ thống này

là để phát triển một số các giải pháp ứng cử viên cho một vấn đề nào đó, bằng cách

sử dụng toán tử lấy cảm hứng từ sự biến đổi di truyền tự nhiên và chọn lọc tự nhiên lấy từ thuyết tiến hóa của nhà sinh vật học Darwin

Năm 1965, Rechenberg giới thiệu cuốn sách " Evolution Strategies "[15]-[16], trong đó ông đề xuất một phương pháp mà ông sử dụng để tối ưu hóa các thông số giá trị thực cho các thiết bị như Airfoils Ý tưởng này đã được phát triển thêm bởi Schwefel [18] Trong các lĩnh vực chiến lược tiến hóa chủ yếu là phát triển một cách độc lập từ các lĩnh vực của các thuật toán di truyền

Năm 1966, Fogel, Owens, và Walsh đã phát triển "lập trình tiến hóa (evolutionary programming)", một kỹ thuật trong đó các giải pháp ứng cử viên với nhiệm vụ được biểu diễn như là máy trạng thái hữu hạn (finite−state machine), được phát triển bởi đột biến ngẫu nhiên sơ đồ trạng thái của họ và lựa chọn thích hợp nhất Cùng với các chiến lược tiến hóa, lập trình tiến hóa, và các thuật toán di truyền tạo thành xương sống của lĩnh vực tính toán tiến hóa

Một số nhà khoa học khác trong thập niên 1950 và thập niên 1960 đã phát triển cácthuật toán tiến hóa lấy cảm hứng để tối ưu hóa và máy học như Box (1957),

Friedman (1959), Bledsoe (1961), Bremermann (1962), Reed, Toombs và Baricelli(1967)

Thuật toán di truyền (Genetic algorithms - GAs) đã được phát minh bởi John Holland trong những năm 1960; sau đó được tiếp tục phát triển bởi sinh viên và đồng nghiệp của ông tại Đại học Michigan trong thập niên 1960 và thập niên 1970[9] Ngược lại với các chiến lược phát triển và lập trình tiến hóa, mục tiêu banđầu của Holland không để thiết kế các thuật toán để giải quyết các vấn đề cụ thể,

mà là để chính thức nghiên cứu các hiện tượng của sự thích nghi khi nó xảy ra trong tự nhiên và phát triển những cách thức mà các cơ chế thích ứng tự nhiên có thể được  đem vào vào hệ thống máy tính

1975 cuốn sách Adaptation in Natural and Artificial Systems  của Holland [10] đã

trình bày các thuật toán di truyền như là một sự trừu tượng của sự tiến hóa sinh học

và đã đưa ra một khuôn khổ lý thuyết cho thích ứng theo GA GA của Holland là một phương pháp để di chuyển từ một dân số "nhiễm sắc thể" (ví dụ, chuỗi của những số 1 và số 0, hoặc "bits") cho một dân số mới bằng cách sử dụng một loại

"chọn lọc tự nhiên" cùng với các  hoạt động di truyền như lai chéo, đột biến, và đảo ngược Mỗi nhiễm sắc thể bao gồm "Genetics" (ví dụ, bits), mỗi gen là một thể

Trang 6

hiện của một "allele" đặc biệt (ví dụ, 0 hoặc 1) Thuật toán sẽ lựa chọn chọn nhữngnhiễm sắc thể trong dân số sẽ được cho phép để tái sản xuất và sinh sản nhiều hơn

so với những người ít phù hợp Trao đổi chéo (Crossover) các thành phần con của hai nhiễm sắc thể  bắt chước tái tổ hợp sinh học giữa hai đơn nhiễm sắc thể ("đơn bội") sinh vật Đột biến thay đổi ngẫu nhiên (mutation randomly) các giá trị alen của một số địa điểm trong các nhiễm sắc thể; và đảo ngược thứ tự (Inversion

Reverses) của một phần tiếp giáp của các nhiễm sắc thể, do đó sắp xếp lại thứ tự các gen

Thuật toán dựa trên dân số của Holland với các với hoạt động lai ghép, đảo ngược,

và đột biến là một sự đổi mới lớn và là nguồn cảm hứng cho việc giải quyết các vấn đề về tính toán

Chẳng hạn, việc tìm kiếm tìm kiếm các chuỗi thứ tự các axit amin có thể với một protein cho trước hoặc tìm kiếm một bộ quy tắc hoặc các phương trình dự đoán những thăng trầm của thị trường tài chính Hoặc trong điều khiển robot, làm thế nào robot có thể thực hiện một nhiệm vụ trong một điều kiện môi trường thay đổi v.v

Thông thường, các vấn đề này đòi hỏi tìm kiếm một tập liên tục thay đổi các khả năng với số lượng lớn các khả năng để thích nghi cho điều kiện môi trường thay đổi Các giải pháp tìm kiếm như vậy thường yêu cầu sử dụng hiệu quả của xử lý song song, trong đó có nhiều khả năng khác nhau được khám phá cùng một lúc một cách hiệu quả để tạo ra thay đổi hàng triệu loài song song Có thể nói, nhìn từ một mức độ cao các "nguyên tắc" của tiến hóa là khá đơn giản: các loài tiến hóa bằng phương tiện của biến ngẫu nhiên (thông qua đột biến, tái tổ hợp, và khai khác), tiếp theo là chọn lọc tự nhiên trong đó có xu hướng các thích nghi (fitness)

để tồn tại và tái sản xuất; do đó truyền cho các thế hệ tương lai tạo ra  sự đa dạng bất thường và phức tạp như chúng ta thấy trong sinh quyển ngày nay

1.2 Giới thiệu giải thuật di truyền

1.2.1: GIẢI THUẬT DI TRUYỀN LÀ GÌ

Genetic Algorithms (GAs) - Giải thuật di truyền là một kỹ thuật khoa học máy tính nhằm giải quyết các bài toán tối ưu tổ hợp GAs dựa trên quá trình thích nghi tiến hóa của các quần thể sinh học dựa trên học thuyết của Darwin Nó vận dụng các nguyên lý: di truyền, đột biến, chọn lọc tự nhiên và trao đổi chéo GAs dùng một số thuật ngữ của ngành di truyền học như: nhiễm sắc thể, quần thể (Population), Gene Nhiễm sắc thể được tạo thành từ các Gene (được biểu diễn của một

Trang 7

chuỗi tuyến tính) Mỗi Gene mang một số đặc trưng và có vị trí nhất định trong nhiễm sắc thể Mỗi nhiễm sắc thể sẽ biểu diễn một lời giải của bài toán.  Trong bài viết này tôi sẽ giải thích các khái niệm song song với việc lập trình ở một bài toán cụ thể. 

GAs được sử dụng cho những bài toán khó, và đã được ứng dụng thànhcông cho một số bài toán như: lập kế hoạch, hệ thống điều khiển, bài toán người đi du lịch,…

1.2.2: CÁC QUY LUẬT LAI

Thuật toán di truyền gồm có bốn quy luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên như sau:

a) Quá trình lai ghép (phép lai): Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể cha-mẹ để hình thành nhiễm sắcthể mới mang đặc tính của cả cha lẫn mẹ Phép lai này có thể mô tả như sau: Chọn ngẫu nhiên hai hay nhiều cá thể trong quần thể Giả sử chuỗi nhiễm sắc thể của cha và mẹ đều có chiều dài là m Tìm điểm lai bằng cách tạo ngẫu nhiên một con số từ 1 đến m-1 Như vậy, điểm lai này sẽ chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm nhiễm sắc thể con

là m1 và m2 Hai chuỗi nhiễm sắc thể con lúc này sẽ là m11+m22 và m21+m12 Đưa hai chuỗi nhiễm sắc thể con vào quần thể để tiếp tục tham gia quá trình tiến hóa

b) Quá trình đột biến (phép đột biến): Quá trình tiến hóa được gọi là quá trình đột biến khi một hoặc một số tính trạng của con không được thừa hưởng từ hai chuỗi nhiễm sắc thể cha-mẹ Phép đột biến xảy ra với xác suất thấp hơn rất nhiều lần so với xác suất xảy ra phép lai Phép đột biến

có thể mô tả như sau: Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m Thay đổi giá trị của gen thứ k Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo

c) Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn): - Phép tái sinh: Là quá trình các cá thể được sao chép dựa trên độ thích nghi của

nó Độ thích nghi là một hàm được gán các giá trị thực cho các cá thể trong quần thể của nó Phép tái sinh có thể mô phỏng như sau: Tính độ thích nghi của từng cá thể trong quần thể, lập bảng cộng dồn các giá trị

Trang 8

thích nghi đó (theo thứ tự gán cho từng cá thể) ta được tổng độ thích nghi Giả sử quần thể có n cá thể Gọi độ thích nghi của cá thể thứ i là Fi,tổng dồn thứ i là Ft Tổng độ thích nghi là Fm Tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 đến Fm Chọn cá thể k đầu tiên thỏa mãn F ≥ Ft đưa vào quần thể của thế hệ mới - Phép chọn: Là quá trình loại bỏ các

cá thể xấu và để lại những cá thể tốt Phép chọn được mô tả như sau: Sắpxếp quần thể theo thứ tự độ thích nghi giảm dần Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất

CHƯƠNG II: Giải thuật di truyền (GA) và ứng dụng giải một số bài toán

- Giải thuật di truyền (GA) cũng như các mạng neuron, các thuật toán di truyền cũng dựa trên 1 ẩn dụ sinh học: Các thuật toán này xem việc học như là sự khó khăn trong 1 quần thể gồm những lời giải người mua việc đang tiến hóa của bài toán Một hàm ‘thích nghi’ (fitness function) sẽ đánh giá mỗi lời giải để quyết định liệu nó mang đóng góp cho thế hệ những lời giải kế tiếp hay không.Sau đó, phê chuẩn những phép toán na ná có biến đổi gene trong sinh sản hữu tính, giải thuật sẽ tạo ra một quần thể những lời giải người mua việc mới

2.1 Giải thuật di truyền là như thế nào ?

Trang 9

Hình 2.1 giải thuật di truyền

Trình bày giải thuật di truyền tổng quát Tùy theo từng bài toán mà nhà –ngoại hình giải thuật sẽ phải mô tả yếu tố hơn về:

- Phương pháp biểu diễn một cá thể trong quần thể những lời giải người tìm việccủa bài toán, hay nói khác hơn là hình thức trình diễn 1 lời giải tiềm năng của bài toán Không phải lời giải của mọi bài toán đều với thể được mã hóa 1 bí quyết dễ dàng và khi không dưới dạng biểu diễn mức bit như trong bài toán thỏa mãn CNF dưới đây

- Độ lớn của quần thể là số lượng ứng viên với trong quần thể Thông thường những ứng viên của quần thể ban đầu được sắm 1 phương pháp ngẫu nhiên Độ

to của quần thể là ko đổi qua những thế hệ, vì vậy, sẽ mang một công đoạn tậu lọc và dòng bỏ một số lời giải người chọn việc sở hữu độ thích nghi thấp

- Điều kiện ngừng của vòng lặp: mang thể là chương trình đạt tới một số lần lặp một mực nào đó, hay đạt đến trung bình độ phải chăng nào đó của quần thể,…

- Hàm đánh giá (fitness function): Dùng để đánh giá một ứng cử viên mang thấphay không Một ứng cử viên càng phải chăng tức là độ thích ứng của nó càng

Trang 10

cao và tiến tới trở thành lời giải đúng của bài toán Việc ngoại hình 1 hàm kiểmtra phải chăng là siêu quan yếu trong thuật toán di truyền Một hàm kiểm tra không chính xác mang thể làm mất đi các người mua việc rẻ trong quần thể.

- Chọn lựa bao nhiêu phần trăm lời giải tốt để giữ lại? Hay mua bao nhiêu lời giải ứng viên để kết hợp sở hữu nhau và sinh ra lời giải con Phương pháp tạo thành viên mới từ thành viên hiện có, còn gọi là toán tử di truyền (genetic operators):

- Các toán tử di truyền phổ biến là Lai ghép (cross-over): Toán tử lai ghép lấy hai lời giải người tậu việc và chia từng lời giải ra thành hai phần, sau đó bàn thảo các phần có nhau để tạo ra ứng viên mới

- Đột biến (mutation): Đột biến lấy 1 người sắm việc đơn lẻ và thay đổi 1

phương pháp tự nhiên một khía cạnh nào đó của nó Độ thích nghi(fitness)

2.2 ví dụ minh họa giải thuật và toán tử di truyền

- Trong ví dụ minh họa bằng hình 1.2.1, ta thấy tại thế hệ thiết bị n ta với một lờigiải mang độ thích nghi siêu tốt , và vì vậy, nó ko được dùng trong quá trình táisản xuất Thay vào đó, lời giải với độ thích ứng cao nhất sẽ được nhân đôi và đưa vào quá trình tái sản xuất

Hoặc ít phổ biến hơn là các toán tử di truyền:

• Đảo ngược (inversion): Đảo ngược thứ tự các bit trong chiếc lời giải

• Trao đổi (Exchange): Trao đổi hai bit bất kỳ trong dòng lời giải sở hữu nhau

Trang 11

2.2.1 Bài toán thỏa CNF

Bài toán thỏa mãn dạng chuẩn hội (Conjunctive normal form – CNF) là 1 bài toán đơn giản: Một biểu thức của các mệnh đề (clause) ở dạng chuẩn hội hay CNF lúc

Trang 12

nó là 1 dãy những biến mệnh đề được kết nối mang nhau bởi toán tử quan hệ and (∧) Mỗi mệnh đề sở hữu dạng là 1 tuyển (disjunction), gồm các toán tử quan hệ or(∨) trên các biến mệnh đề (literal).

Ví dụ : Nếu ta sở hữu 6 biến mệnh đề a, b, c, d, e và f, thì biểu thức sau đây là 1 CNF:

Thỏa mãn CNF với nghĩa rằng chúng ta bắt buộc tìm ra một phép gán true hoặc false (1 hoặc 0) cho mỗi biến mệnh đề a, b, c, d, e, f sao cho biểu thức CNF có giá trị là TRUE

Một phương pháp trình diễn trùng hợp cho lời giải của bài toán này là một dãy sáu bit, mỗi bit theo đồ vật tự a, b, c, d, e, f trình diễn true (1) hoặc false (0) cho mỗi biến mệnh đề Như vậy cái bit:

Việc tậu lựa một hàm thích ứng cho quần thể những chuỗi bit này không bắt buộc hoàn toàn dễ dàng Thoạt nhìn chuỗi bit, ta khó có thể xác định 1 hàm thích ứng đểđánh giá được chất lượng của nó như thế nào, tức thị khó đoán được độ rẻ của nó

so với đáp án đúng Đáp án đúng ở đây chính là chuỗi bit sao cho biểu thức CNF với giá trị true

Tuy nhiên sở hữu 1 số bí quyết khác Nếu ta để ý đến biểu thức CNF (1-3), thì ta thấy rằng nó được tạo thành từ hội của 5 mệnh đề Do ấy chúng ta với thể thiết lập một hệ phân hạng cho phép chúng ta gần hạng những lời giải (mẫu bit) tiềm năng trong khoảng giá trị từ 0 đến 5, tùy thuộc vào căn số đề mà loại đấy thỏa mãn Do

ấy mẫu: 1 một 0 0 1 0 sở hữu độ thích nghi là 1

0 1 0 0 một 0 với độ thích nghi là 2

0 1 0 0 1 1 với độ thích ứng là 3

1 0 một 0 một một mang độ thích ứng là 5, và nó chính là 1 lời giải

2.2.2 Bài toán người đi bán hàng TSP

- Bài toán người bán hàng (traveling salesperson problem – TSP) là một bài toán

cổ điển đối mang AI và khoa học máy tính

- Phát biểu của bài toán TSP: Một người bán hàng có nhiệm vụ lép thăm N thành thị như là 1 phần của lịch trình bán hàng Đường đi giữa mỗi cặp thị thành với 1 chi phí (ví dụ như độ dài đoạn đường, giá vé máy bay) Hãy tìm ra

Ngày đăng: 29/11/2024, 21:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w