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

BÁO CÁO ĐỒ ÁN NGUYÊN LÝ VÀ PHƯƠNG PHÁP LẬP TRÌNH NHỮNG ÔNG CHỒNG GHEN TUÔNG

7 306 10

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 384,59 KB
File đính kèm 16521214_16521177.rar (567 B)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ba cặp vợ chồng muốn qua sông bằng một chiếc xuồng. Bất cứ ai trong số họ cũng có thể chèo xuồng. Tuy nhiên, chiếc xuồng chỉ có thể chở tối đa hai người (nghĩa là xuồng có thể chở một hoặc hai người). Do ba ông chồng đều rất ghen nên có điều kiện ràng buộc là: mỗi ông chồng đều phải luôn ở cạnh bà vợ của mình trừ khi ở đó không có người đàn ông nào khác (nghĩa là ông chồng chỉ có thể rời khỏi bà vợ nếu như không có người đàn ông nào khác ở đó).

Trang 1

1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

- -

BÁO CÁO ĐỒ ÁN MÔN

NGUYÊN LÝ VÀ PHƯƠNG PHÁP LẬP TRÌNH

Đề tài: Trình bày phương pháp và viết chương trình trên ngôn ngữ Prolog để giải

bài toán “Những ông chồng ghen tuông” (“Jealous husbands problem”) trong trí tuệ nhân tạo

Lớp: CS221.J12

Giảng viên hướng dẫn: PGS TS Nguyễn Tuấn Đăng Thành viên nhóm thực hiện:

1, Lê Thanh Tiềm – 16521214

2, Nguyễn Đăng Thịnh – 16521177

Tp Hồ Chí Minh, tháng 01 năm 2019

Trang 2

Lời cám ơn

Đầu tiên chúng em xin gửi lời cám ơn sau sắc nhất đến thầy Nguyễn Tuấn Đăng đã tận tình giảng dạy và giúp đỡ chúng em những kiến thức và ý tưởng cần thiết để hoàn thành được đề tài này

Do còn nhiều yếu tố khác nhau cùng với sự hiểu biết còn hạn chế của mỗi thành viên nên đề tài này còn nhiều thiếu sót Mong thầy có thể xem xét và đưa ra đánh giá để nhóm chúng em có thể hoàn thiện nó hơn trong tương lai

I, Giới thiệu bài toán:

Ba cặp vợ chồng muốn qua sông bằng một chiếc xuồng Bất cứ ai trong số họ cũng có thể chèo xuồng Tuy nhiên, chiếc xuồng chỉ có thể chở tối đa hai người (nghĩa là xuồng có thể chở một hoặc hai người)

Do ba ông chồng đều rất ghen nên có điều kiện ràng buộc là: mỗi ông chồng đều phải luôn ở cạnh bà vợ của mình trừ khi ở đó không có người đàn ông nào khác (nghĩa là ông chồng chỉ có thể rời khỏi bà vợ nếu như không có người đàn ông nào khác ở đó)

I, Phương pháp giải quyết bài toán:

1, Định nghĩa trạng thái:

- Trạng thái ban đầu: Tất cả các ông chồng và bà vợ đều ở bờ bên trái

Tương ứng: [1, 1, 1, 1, 1, 1, 0]

- Trạng thái mục tiêu: Tất cả các ông chồng và bà vợ đều ở bên bờ bên phải Tương ứng: [0, 0, 0, 0, 0, 0, 1]

- 6 vị trí đầu tương ứng với mỗi ông chồng và bà vợ của mình đứng xen kẽ nhau

- vị trí cuối cùng chỉ thuyền, thuyền chở tối đa được hai người

2, Các thao tác chuyển trạng thái:

- Chuyển cặp vợ chồng thứ nhất từ bờ bên trái sang bờ bên phải

- Chuyển cặp vợ chồng thứ hai từ bờ bên trái sang bờ bên phải

Trang 3

3

- Chuyển cặp vợ chồng thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ nhất từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ hai từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ nhất từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ hai từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ nhất và ông chồng thứ hai từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ nhất và ông chồng thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển ông chồng thứ hai và ông chồng thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ nhất và bà vợ thứ hai từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ nhất và bà vợ thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển bà vợ thứ hai và bà vợ thứ ba từ bờ bên trái sang bờ bên phải

- Chuyển cặp vợ chồng thứ nhất từ bờ bên phải sang bờ bên trái

- Chuyển cặp vợ chồng thứ hai từ bờ bên phải sang bờ bên trái

- Chuyển cặp vợ chồng thứ ba từ bờ bên phải sang bờ bên trái

- Chuyển ông chồng thứ nhất từ bờ bên phải sang bờ bên trái

- Chuyển ông chồng thứ hai từ bờ bên phải sang bờ bên trái

- Chuyển ông chồng thứ ba từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ nhất từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ hai từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ ba từ bờ bên phải sang bờ bên trái

Trang 4

- Chuyển ông chồng thứ nhất và ông chồng thứ hai từ bờ bên phải sang bờ bên trái

- Chuyển ông chồng thứ nhất và ông chồng thứ ba từ bờ bên phải sang bờ bên trái

- Chuyển ông chồng thứ hai và ông chồng thứ ba từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ nhất và bà vợ thứ hai từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ nhất và bà vợ thứ ba từ bờ bên phải sang bờ bên trái

- Chuyển bà vợ thứ hai và bà vợ thứ ba từ bờ bên phải sang bờ bên trái

3, Các ràng buộc:

Các ông chồng luôn phải ở cạnh các bà vợ của mình trừ khi ở đó không có người đàn ông khác:

+ Ông chồng thứ nhất luôn ở cạnh bà vợ thứ nhất ( vợ của mình) trừ khi ở đó không có người đàn ông khác ở đó

+ Ông chồng thứ hai luôn ở cạnh bà vợ thứ nhất ( vợ của mình) trừ khi ở đó không có người đàn ông khác ở đó

+ Ông chồng thứ ba luôn ở cạnh bà vợ thứ nhất ( vợ của mình) trừ khi ở đó không có người đàn ông khác ở đó

4, Phương pháp cài đặt:

Biểu diễn trạng thái dưới dạng [A, B, C, D, E, F, G] ứng với:

+ vị trí A, B lần lượt là ông chồng thứ nhất, bà vợ thứ nhất

+ vị trí B, C lần lượt là ông chồng thứ hai, bà vợ thứ hai

+ vị trí E, F lần lượt là ông chồng thứ ba, bà vợ thứ ba

+ vị trí G chính là chiếc thuyền Nếu G là 0 thì thuyền ở bờ bên trái, bằng 1 thì là thuyền ở bờ bên phải

Trạng thái ban đầu: [1,1,1,1,1,1,0]

Trạng thái mục tiêu: [0,0,0,0,0,0,1]

II, Chương trình prolog:

Trang 5

5

goal([0,0,0,0,0,0,1])

%chuyen cap vo chong thu nhat

trans([1,1,C,D,E,F,0],[0,0,C,D,E,F,1])

trans([0,0,C,D,E,F,1],[1,1,C,D,E,F,0])

%chuyen cap vo chong thu hai

trans([A,B,1,1,E,F,0],[A,B,0,0,E,F,1])

trans([A,B,0,0,E,F,1],[A,B,1,1,E,F,0])

%chuyen cap vo chong thu ba

trans([A,B,C,D,1,1,0],[A,B,C,D,0,0,1])

trans([A,B,C,D,0,0,1],[A,B,C,D,1,1,0])

%chuyen ong chong thu nhat voi ong chong thu hai

trans([0,B,0,D,E,F,1],[1,B,1,D,E,F,0])

trans([1,B,1,D,E,F,0],[0,B,0,D,E,F,1])

%chuyen ong chong thu nhat vo ong chong thu ba

trans([0,B,C,D,0,F,1],[1,B,C,D,1,F,0])

trans([1,B,C,D,1,F,0],[0,B,C,D,0,F,1])

%chuyen ong chong thu hai va ong chong thu ba

trans([A,B,0,D,0,F,1],[A,B,1,D,1,F,0])

trans([A,B,1,D,1,F,0],[A,B,0,D,0,F,1])

%chuyen ba vo thu nhat va ba vo thu hai

trans([A,1,C,1,E,F,0],[A,0,C,0,E,F,1])

trans([A,0,C,0,E,F,1],[A,1,C,1,E,F,0])

%chuyen ba vo thu nhat voi ba vo thu ba

trans([A,1,C,D,E,1,0],[A,0,C,D,E,0,1])

trans([A,0,C,D,E,0,1],[A,1,C,D,E,1,0])

%chuyen ba vo thu hai va ba vo thu ba

trans([A,B,C,1,D,1,0],[A,B,C,0,D,0,1])

trans([A,B,C,0,D,0,1],[A,B,C,1,D,1,0])

%chuyen ong chong thu nhat

Trang 6

trans([1,A,B,C,D,E,0],[0,A,B,C,D,E,1]) trans([0,A,B,C,D,E,1],[1,A,B,C,D,E,0])

%chuyen ba vo thu nhat

trans([A,1,B,C,D,E,0],[A,0,B,C,D,E,1]) trans([A,0,B,C,D,E,1],[A,1,B,C,D,E,0])

%chuyen ong chong thu hai

trans([A,B,1,C,D,E,0],[A,B,0,C,D,E,1]) trans([A,B,0,C,D,E,1],[A,B,1,C,D,E,0])

%chuyen ba vo thu hai

trans([A,B,C,1,D,E,0],[A,B,C,0,D,E,1]) trans([A,B,C,0,D,E,1],[A,B,C,1,D,E,0])

%chuyen ong chong thu ba

trans([A,B,C,D,1,E,0],[A,B,C,D,0,E,1]) trans([A,B,C,D,0,E,1],[A,B,C,D,1,E,0])

%chuyen ba vo thu ba

trans([A,B,C,D,E,1,0],[A,B,C,D,E,0,1]) trans([A,B,C,D,E,0,1],[A,B,C,D,E,1,0])

%cac trang thai nguy hiem

dangerous([1,0,0,_,_,_,_])

dangerous([1,0,_,_,0,_,_])

dangerous([0,1,1,_,_,_,_])

dangerous([0,1,_,_,1,_,_])

dangerous([0,_,1,0,_,_,_])

dangerous([_,_,1,0,0,_,_])

dangerous([1,_,0,1,_,_,_])

dangerous([_,_,0,1,1,_,_])

dangerous([0,_,_,_,1,0,_])

Trang 7

7

dangerous([_,_,0,_,1,0,_])

dangerous([1,_,_,_,0,1,_])

dangerous([_,_,1,_,0,1,_])

dfs(X,P,[X|P]):-goal(X),!

dfs(X,P,L):-trans(X,Y),X\=Y,\+dangerous(Y),\+member(Y,P),dfs(Y,[X|P],L)

III, Kết quả thử nghiệm:

X = [[0, 0, 0, 0, 0, 0, 1], [0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1| ], [0, 1, 0, 1, 0| ], [0, 1, 0,

0| ], [1, 1, 0| ], [0, 0| ], [0| ], [ | ]| ]

Action? [write]

X = [[0, 0, 0, 0, 0, 0, 1], [0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1], [0, 1, 0, 1, 0, 1, 0], [0, 1, 0,

0, 0, 1, 1], [1, 1, 0, 0, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1], [0, 0, 1, 1, 1, 1, 0], [0, 0, 1, 1, 0, 0, 1], [1,

1, 1, 1, 0, 0, 0], [1, 1, 0, 0, 0, 0, 1], [1, 1, 1, 0, 1, 0, 0], [1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1,

0], [0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 0]]

Ngày đăng: 26/02/2019, 19:29

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w