1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần nhập môn trí tuệ nhân tạo Đề ti áp dụng tô mu Đồ thị giải bi toán tô mu bản Đồ thế giới

19 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 đề Áp Dụng Thuật Toán Tô Màu Đồ Thị Giải Bài Toán Tô Màu Bản Đồ Thế Giới
Tác giả Lê Thanh Bình, Đinh Quang Đạt
Người hướng dẫn TS. Nguyễn Hà Nam
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo chuyên đề
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 1,03 MB

Nội dung

Với việc chọn đề tài “Áp dụng thuật toán tô màu đồ thị giải bài toán tô màu bản đồ thế giới” cho học phần “Nhập môn trí tuệ nhân tao”.. Có nhiều cách tiếp cận để làm ra trí thông minh củ

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

NHẬP MÔN TRÍ TUỆ NHÂN TẠO

ĐỀ TI:

ÁP DỤNG TÔ MU ĐỒ THỊ GIẢI BI TOÁN TÔ MU

BẢN ĐỒ THẾ GIỚI

Sinh viên thực hiện : LÊ THANH BÌNH

ĐINH QUANG ĐẠT

Giảng viên hướng dẫn : TS NGUYỄN H NAM Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM

Hà Nội, tháng 12 năm 2023

Trang 2

PHIẾU CHẤM ĐIỂM

STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký

1 Lê Thanh Bình

(21810310356)

2 Đinh Quang Đạt

(21810310401)

Họ và tên giảng viên Chữ ký Ghi chú

Giảng viên chấm 1:

Giảng viên chấm 2:

2

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 5

CHƯƠNG 1: GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO 6

1.1 Giới thiệu về trí tuệ nhân tạo 6

1.2 Trí tuệ nhân tạo là gì? 6

1.3 Lịch sửa phát triển 7

1.4 Các lĩnh vực của AI 8

CHƯƠNG 2: GIỚI THIỆU BI TOÁN TÔ MU ĐỒ THỊ 10

2.1.Giới thiệu về bài toán tô màu đồ thị 10

2.2 Thuật toán Welsh-Powell 11

2.2.1 Giới thiệu về thuật toán 11

2.2.2 Mô tả thuật toán 12

2.2.3 Cài đặt thuật toán 12

2.2.4 Đánh giá thuật toán 14

CHƯƠNG 3: ÁP DỤNG THUẬT TOÁN VO TÔ MU BẢN ĐỒ THẾ GIỚI .15

3.1 Bài toán 15

3.2 Minh họa về trò chơi 16

3.3 Cài đặt chương trình 20

KẾT LUẬN 21

TI LIỆU THAM KHẢO 22

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1.Mô phỏng trạng thái bắt đầu và kết thúc 10

5

Trang 5

LỜI NÓI ĐẦU

Ngày nay, chúng ra đã bước vào thế kỉ 21, kỷ nguyên của Công nghệ thông tin, đặc biệt là trí tuệ nhân tạo là yếu tố quan trọng nhất quyết định sự thành công của mỗi ngành hay mỗi quốc gia Trí tuệ nhân tạo đã và đang làm thay đổi cuộc sống của chúng ra, với sự phát triển mạnh mẽ của việc áp dụng các nghiên cứu về trí tuệ nhân tạo áp dụng cho cuộc sống Tất cả các ngành đều có thể áp dụng trí tuệ nhân tạo một cách rộng rãi Việc áp dụng trí tuệ nhân tạo để giải quyết các vấn đề trong xã hội và việc phát triển kinh tế đang được nhà nước khuyến khích và đầu tư Tại Việt Nam, nhà nước đang đi vào phát triển dịch vụ và đầu tư mạnh mẽ vào trí tuệ nhân tạo Vì thế, đó là một xu thế hot và được ưa chuộng hiện nay

Chính vì vậy, chúng em đã lựa chọn đề tài “Áp dụng thuật toán tô màu đồ

thị giải bài toán tô màu bản đồ thế giới”

Với việc chọn đề tài “Áp dụng thuật toán tô màu đồ thị giải bài toán tô

màu bản đồ thế giới” cho học phần “Nhập môn trí tuệ nhân tao” Chúng em đã

nhận được sự giảng dạy trực tiếp và sự hướng dẫn nhiệt tình của thầy Nguyễn Hà Nam trong đề tài này Mặc dù đề tài đã được hoàn thành, nhưng chắc chắn không thể tránh khỏ những thiết sót, vì vậy chúng em mong muốn nhận được các ý kiến đóng góp của các thầy cô để có thể hoàn chỉnh đề tài hơn

Chúng em xin chân thành cảm ơn!

Trang 6

CHƯƠNG 1: GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO

1.1 Giới thiệu về trí tuệ nhân tạo

Chắc hẳn trong đời sống chúng ta đã từng được nghe nói đến trí tuệ nhân tạo Nhiều người đã viết nó là gì, đã biết về nó và khai thác, ứng dụng nó để tạo ra một

số thành tựu nhất định Bên cạnh đó nhiều người vẫn chưa hiểu biết về trí tuệ nhân tạo Vậy trí tuệ nhân tạo là gì? Tiềm năng và tương lai của trí tuệ nhân tạo ra sao?

1.2 Trí tuệ nhân tạo là gì?

Để hiểu về trí tuệ nhân tạo (artificial intelligence) là gì thì chúng ra nên bắt đầu với khái niện sự bay nhân tạo (flying machinese)

Đã từ lâu, loài người mong muốn làm ta một cái máy bay mà có thể di chuyển được trên không trung mà không phụ thuộc vào địa hình ở dưới mặt đất hay nói cách khác là máy có thể bay được Những chiếc máy biết bay được thiết kế theo nguyên lý “vỗ cánh” như con chim chỉ có thể bay được quãng đường rất ngắn và lịch sử hàng không thực sự sang một trang mới kể từ anh em nhà Wright thiết kế máy bay dựa trên các nguyên lý của khí động lực học (aerodynamics)

Quay lại câu hỏi trí tuệ nhân tạo là gì? Trí tuệ nhân tạo là sự thông minh của máy do con người tạo ra Ngay từ chiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học máy tính đã hướng đến phát triển hệ thống máy tính (gồm cả phần cứng

và phần mền) sao cho nó có khả năng thông minh như loài người Có nhiều cách tiếp cận để làm ra trí thông minh của máy, chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thông minh của loài người như thế nào rồi ta bắt chước nguyên

lý đó, nhưng cũng có những cách khác sử dụng nguyên lý hoàn toàn khác với cách sản sinh ra trí thông minh của loài người mà vẫn làm ra cái máy thông minh như hoặc hơn người

Như vậy, trí tuệ nhân tạo ở đây là nói đến khả năng của máy khi thực hiện các công việc mà con người thường phải xử lý; và khi dáng vẻ ứng xử hoặc kết quả

7

Trang 7

thực hiện của máy là tốt hơn hoặc tương đương với con người thì ta gọi đó là máy thông minh hay máy đó có trí thông minh Hay nói cách khác, đánh giá sự thông minh của máy không phải dựa trên nguyên lý nó thực hiện nhiệm vụ đó có giống cách con người thực hiện hay không mà dựa trên kết quả hoặc dáng vẻ ứng xử bên ngoài của nó có giống với kết quả hoặc dáng vẻ ứng xử của con người hay không

1.3 Lịch sửa phát triển

Vào năm 1943, Warren McCulioch và Walter Pitts bắt đầu thực hiện nghiên cứu ba cơ sở lý thuyết cơ bản: triết học cơ bản và chức năng của các noron thần kinh; phân tích các mệnh đề logic; và lý thuyết dự đoán của Turing Các tác giả đã nghiên cứu đề xuât mô hình noron nhân tạo, mỗi noron đặc trưng bởi hai trạng thái

“bật”, “tắt” và phát hiện mạng noron có khả năng học

Thuật ngữ “Trí tuệ nhân tạo” (Artificial Intelligence – AI) được thiết lập bởi John McCarthy tại Hội thảo đầu tiên về chủ đề này vào mùa hè năm 1956 Đồng thời, ông cũng đề xuất ngôn ngữ lập trình Lisp – một trong những ngôn ngữ lập trình hàm tiêu biểu, được sử dụng trong lĩnh vực AI Sau đó, Alan Turing đưa ra

“Turing test” như là một phương pháp kiểm chứng hành vi thông minh

Thập kỷ 60, 70 Joel Moses viết chương trình Macsyma – chương trình toán học sử dụng cơ sở tri thức đầu tiên thành công Marvin Minsky và Seymour Papert đưa ra các chứng minh đầu tiên về giới hạn của các mạng nơ-ron đơn giản Ngôn ngữ lập trình logic Prolog ra đời và được phát triển bởi Alain Colmerauer Ted Shortliffe xây dựng thành công một số hệ chuyên gia đầu tiên trợ giúp chẩn đoán trong y học, các hệ thống này sử dụng ngôn ngữ luật để biểu diễn tri thức và suy diễn

Vào đầu những năm 1980, những nghiên cứu thành công liên quan đến AI như các hệ chuyên gia (expert systems) – một dạng của chương trình AI mô phỏng tri thức và các kỹ năng của một hoặc nhiều chuyên gia con người

Trang 8

Vào những năm đầu 1990 và đầu thế ký 21, AI đã đạt được nhưng thành tựu

to lớn, AI được áp dựng trong logic, khai phá dữ liệu, chẩn đoán y học và nhiều lĩnh vực ứng dụng khác trong công nghiệp Sự thành công dựa vào nhiều yếu tố: tăng khả năng tính toán của máy tính, tập trung giải quyết các bài toán con cụ thể

và một sự chuyển giao mới của các nhà nghiên cứu cho các phương pháp toán học vững chắc và chuẩn khoa học chính xác

1.4 Các lĩnh vực của AI

- Lập luận, suy diễn tự động: Khái niệm lập luận (reasoning), và suy diễn (reference) được sử dụng rất phổ biến trong lĩnh vực AI Lập luận là suy diễn logic, dùng để chỉ một tiến trình rút ra kết luận (tri thức mới) từ những giả thiết đã cho (được biểu diễn dưới dạng cơ sở tri thức) Như vậy, để thực hiện lập luận người ta cần có các phương pháp lưu trữ cơ sở tri thức và các thủ tục lập luận trên cơ sở tri thức đó

- Biểu diễn tri thức: Muốn máy tính có thể lưu trữ và xử lý tri thức thì cần có các phương pháp biểu diễ tri thức Các phương phpá biểu diễn tri thức ở đây bao gồm các ngôn ngữ biểu diễn và các kỹ thuật xử lý tri thức Một ngôn ngữ biểu diễn tri thức được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các tính hiệu quả của thuật toán lập luận trên ngôn ngữ đó Tính biểu đạt của ngôn ngữ thể hiện khả năng biểu diễn một phạm vi rộng lớn các thông tin trong một miền ứng dụng Hiệu quả của các thuật toán lập luận thể hiện chi phí về thời gian và không gian dành cho việc lập luận Tuy nhiên, hai yếu tố này dường như đối nghịch nhau, tức là nếu ngôn ngữ có tính biểu đạt cao thì thuật toán lập luận trên đó sẽ xó độ phức tạp lớn và ngược lại, ngôn ngữ đơn giản, có tính biểu đạt thấp thì thuật toán lập luận trên đó sẽ có hiệu quả cao

Do đó, một thách thức lớn trong lĩnh vực AI là xây dựng các ngôn ngữ biểu diễn tri thức mà có thể cân bằng hai yếu tố này, tức là ngôn ngữ có tình biểu đạt đủ tốt và có thể lập luận hiệu quả

9

Trang 9

- Lập kế hoạch: Khả năng suy ra các mục địch cần đạt được đối với các nhiệm

vụ đưa ra, và xác định dãy các hoạt động cần thực hiện để đạt được mục đích

- Học máy (Machine Learning – ML) là một lĩnh vực của trí tuệ nhân tạo (AI0 tập trung vào việc máy tính học từ dữ liệu và kinh nghiệm để tự cải thiện hiệu suất mà không cần lập trình cụ thể Qua quá trình này, máy tính xác định mô hình và quy luật từ dữ liệu, giúp dự đoán và ra quyết định một cách

tự động Học máy có ứng dụng rộng rãi trong nhiều lĩnh vực như thị giác máy tính, xử lý ngôn ngữ tự nhiên, y tế, tài chính, quảng cáo trực tuyến và nhiều lĩnh vực Đặc biệt là deep learning là một phân nhóm quan trọng của học máy tập trung vào việc xây dựng và huấn luyện các mô hình dạng nơ-ron sâu để tự động học và hiểu dữ liệu phức tạp Điều này giúp cải thiện hiệu suất và đem lại đột phá trong khả năng hiểu và xử lý thông tin từ dữ liệu lớn

- Xử lý ngôn ngữ tự nhiên: là một nhánh của AI, tập trung vào các ứng dụng trên ngôn ngữ của con người Các ứng dụng trong nhận dạng tiếng nói, nhận dạng chữ viết, dịch tự động, tìm kiếm thông tin,…

- Robotics: là lĩnh vực nghiên cứu và phát triển các robot hoặc máy tự động, tập trung vào thiết kế, xây dựng, và lập trình các thiết bị tự động có khả năng thực hiện các tác vụ và nhiệm vụ một cách độc lập hoặc theo hướng dẫn Robotics sử dụng nhiều nguyên tắc từ Trí tuệ nhân tạo, cơ khí, điện tử và tự động hóa để phát triển các robot có khả năng tương tác với môi trường xung quanh

Trang 10

CHƯƠNG 2: GIỚI THIỆU BI TOÁN GHÉP TRANH V THUẬT TOÁN 2.1.Giới thiệu về bài toán tô màu đồ thị

Tô màu đồ thị là một trong những bài toán cơ bản của Lý thuyết đồ thị, được ứng dụng nhiều trong tin học, nhằm giải quyết các vấn đề thực tiễn liên quan đến phân hoạch, phân nhóm, bản đồ… Tô màu bản đồ là một ứng dụng quan trọng của

tô màu đồ thị

Mục đích của việc tô màu bản đồ là để phân biệt các vùng lãnh thổ, sao cho hai vùng lãnh thổ chung biên giới sẽ được tô màu khác nhau, và dùng số màu ít nhất có thể để tô màu một khu vực rộng lớn

Có nhiều cách để giải quyết bài toán tô màu đồ thị, một số giải thuật phổ biến để giải bài toán này bao gồm: thuật toán Welsh-Powell, thuật toán Dsatur ( Degree of Saturation), thuật toán Backtracking, thuật toán Genetic Angorithm, thuật toán Tabu Search…

Chi tiết bài toán:

Tô màu (đỉnh) đồ thị là việc thực hiện gán màu cho mỗi đỉnh của đồ thị, sao cho hai đỉnh kề nhau không cùng một màu, và số màu được sử dụng là ít nhất Số màu

ít nhất có thể sử dụng để tô màu đồ thị được gọi là sắc số của đồ thị đó

Thuật toán tô màu đồ thị được đề cập đến trong các tài liệu về Toán rời rạc hoặc Cấu trúc dữ liệu & Giải thuật Chúng ta có thể trình bày các bước thuật toán dễ hiểu như sau:

Input: Đồ thị G = (V,E)

11

Trang 11

Output: Đồ thị G = (V,E) có các đỉnh được gán màu.

Các bước của thuật toán:

Bước 1: Tính giá trị bậc của các đỉnh trong V Lập danh sách V:=[v1tv2, ,vn]

là các đỉnh của đồ thị được sắp xếp theo thứ tự bậc giảm dần: d(v1) > d(v2) > > d(vn) Ban đầu tất cả các đỉnh trong V (V') đều chưa được tô màu

Gán i := 1;

Bước 2: Tô màu i cho đỉnh đầu tiên trong danh sách V' Duyệt lần lượt các đỉnh khác trong V'(nếu có) và chỉ tô màu i cho các đỉnh không kề đỉnh đã có màu i Bước 3: Kiểm tra nếu tất cả các đỉnh trong V đã được tô màu thì thuật toán kết thúc, đồ thị đã sử dụng i màu để tô Ngược lại, nếu vẫn còn đỉnh chưa được tô thì chuyển sang bước 4

Bước 4: Loại khỏi danh sách V' các đỉnh đã tô màu Sắp xếp lại các đỉnh trong V' theo thứ tự bậc giảm dần Gán i := i + 1 và quay lại bước 2

Để dễ hiểu hơn, các bạn xem sự thể hiện các bước của thuật toán trong ví dụ sau: Cho đồ thị như hình vẽ, sử dụng thuật toán tô màu đồ thị ở trên, tô màu cho các đỉnh của đồ thị

Để dễ hiểu hơn, các bạn xem sự thể hiện các bước của thuật toán trong ví dụ sau: Cho đồ thị như hình vẽ, sử dụng thuật toán tô màu đồ thị ở trên, tô màu cho các đỉnh của đồ thị

Bước 1: Ta có đồ thị có 5 đình được đánh số 1, 2, 3, 4, 5 với các bậc tương ứng với từng đinh theo thứ tự là 3, 1, 2, 1, 3 Do đó V' ban đầu có thứ tự là [1, 5, 3,

2, 4) Gán i =1

Bước 2: Tô màu 1 (red) cho đỉnh 1 Lần lượt duyệt các đỉnh còn lại trong V':

Ta có: Đình 5 kề đỉnh 1 (đỉnh 1 đã tô màu 1 - red) nên chưa tô màu cho đỉnh 5 Tương tự các đỉnh 3, 2 đều kề với đình 1 nên đỉnh 3, 2 cũng chưa được tô màu Đỉnh 4 không kê với đỉnh 1, do đó thực hiện tô màu 1 cho đỉnh 4 Đình 4 có màu 1

- red

Trang 12

Bước 3: Kiểm tra thấy vẫn còn các đỉnh trong V chưa được tô màu nên chuyển sang bước 4

Bước 4: Loại bỏ các đình 1, 4 đã được tô màu ra khỏi V', sắp xếp lại V' theo thứ tự bậc giảm dần, ta thu được V = (5, 3, 2] Ta có i = 2 Thực hiện lặp lại bước 2:

Bước 2(1): Tô màu 2 (blue) cho đình 5 Lần lượt duyệt các đỉnh còn lại trong V' Ta có: Đỉnh 3 kề đinh 5 (đã tô màu 2 - blue) nên chưa tô màu cho đinh 3 Đỉnh 2 không kề với đình 5, do đó thực hiện tô màu 2 cho đình 2 Đỉnh 2 có màu 2

- blue

Bước 3(1): Kiểm tra thấy vẫn còn đỉnh 3 chưa được tô màu nên chuyển sang bước 4

Bước 4(1): Loại bỏ các đình 5, 2 đã được tô màu ra khỏi V', V=(3] Ta có i =

3 Thực hiện lặp lại bước 2:

Bước 2(2): Tô màu 3 (Green) cho đỉnh 3

Bước 3(2): Kiểm tra thấy tất cả các đỉnh trong V đã được tô màu, thuật toán dừng lại Kết luận: Đỉnh 1 và 4 được tô màu 1-red, đỉnh 5 và đỉnh 2 được tô màu 2-blue, đỉnh 3 được tô màu 3-Green Số màu cần thiết phải sử dụng là i =3 màu

 Mô phỏng trạng thái bắt đầu và kết thúc

Hình 1.1.Mô phỏng trạng thái bắt đầu và kết thúc

13

Trang 13

2.2 Thuật toán Welsh-Powell

2.2.1 Giới thiệu về thuật toán

Thuật toán Welsh-Powell, được giới thiệu bởi Ernest Welsh và Michael Powell vào năm 1967, là một phương pháp quan trọng trong lý thuyết đồ thị để giải quyết bài toán tô màu Đối với bản đồ hoặc đồ thị biểu diến môi quan hệ giữa các đối tượng, như các quốc gia trong một khu vực, việc tô màu có thể phần ánh các ràng buộc và liên kêt giữa chúng một cách rõ ràng

Thuật toán bắt đầu bằng việc sắp xếp các đình theo thử tự giảm dần của bậc, tức là số cạnh kết nối với mỗi đình Điều này giúp giảm thiểu số lượng màu cân sử dụng khi tô màu Sau đó, thuật toán tô màu các đình theo thứ tự đã sắp xếp, đảm bảo rằng mỗi đỉnh đều nhận một màu mới mà không trùng với các đình kể đã được

tô màu trước đó

Welsh-Powell không chỉ đơn giản và hiệu quả, mà còn linh hoạt và có thể áp dụng cho nhiều loại đổ thị Trong các ứng dụng thực tế, thuật toán này thường được

sử dụng trong việc lập lịch, tối ưu hóa tân số, và các vấn để liên quan đến phân loại

và môi quan hệ giứa các đối tượng

2.2.2 Mô tả thuật toán

Thuật toán Welsh-Powell là một thuật toán tô màu đồ thị, được thiết kế để gán màu cho các đỉnh của đồ thị sao cho không có hai đỉnh kề nào có màu giống nhau Dưới đây là mô tả chi tiết về cách thuật toán Welsh-Powell hoạt động:

 Sắp Xếp Đỉnh theo Bậc:

 Đầu tiên, tính bậc của mỗi đỉnh, tức là số cạnh kết nối với nó

 Sắp xếp các đỉnh theo thứ tự giảm dần của bậc Điều này giúp đảm bảo rằng các đỉnh có số lượng kết nối lớn nhất sẽ được xử lý trước

 Tô Màu Các Đỉnh:

 Bắt đầu từ đỉnh có bậc lớn nhất, tô màu đỉnh này với màu chưa được sử dụng và không trùng với màu của các đỉnh kề đã được tô màu

Ngày đăng: 22/01/2025, 14:57

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

TÀI LIỆU LIÊN QUAN

w