Nhập môn trí tuệ nhân tạo - 30

{Tìm cung (i,j) có c[i,j] nhỏ nhất, nếu có thì d = c[i,j] và đấnh dấu cung (i,j) là true, ngược lại d = 0 }

Var

l,p: byte; begin

d:=0;

for l:= 1 to m do

if (A[l].dau = i) and (A[l].kc < d) and not B[l] then begin

j:= A[l].cuoi; p:= l;

d:= A[l].kc; end;

B[l]:= true;

end;

Có thể bạn quan tâm!

Xem toàn bộ 272 trang tài liệu này.

Function DenDich(i,j: byte; var d:word): boolean;

Var

Nhập môn trí tuệ nhân tạo - 30

l: byte; begin

for l:= 1 to m do

if (A[l].dau = i) and (A[l].cuoi = j) then begin

d:= A[l].kc;

DenDich:= true;

end else

begin

DenDich:= false; d:= 0;

end;

end;

Procedure Inkq(j:byte);

Var

d:word; k: byte;

begin

d:=0;

for k:= 1 to Top do begin

write(S[k].dau);

d:=d + S[k].kc; end;

writeln(j);

writeln(„ Chi phi: „,d); end;

Procedure Duongdi(i,j: byte);

Var

k,d: byte;

Begin

if Dendich(i,j) then begin

push(i,j,d); inkq(j); exit;

end; Timkiem(i,k,d); if d > 0 then begin

push(i,j,d);

duongdi(k,j); end

else

if Top > 0 then begin

pop(i,j,d);

duongdi(i,j); end

else

writeln(„Khong co duong di‟);

end;

234

Begin {leo doi} Khoitao; Duongdi(i0,j0);

end;

Bài 2.45. Tìm kiếm đường đi từ đỉnh i0 đến đỉnh J0 trong đồ thị. Dữ liệu được lưu vào file Text có cấu trúc như sau:

- Dòng đầu tiên chứa 3 số n, i0, j0 (n là số đỉnh của đồ thị)

- n dòng tiếp theo lần lượt chứa giá trị n dòng của ma trận A. Tên file được nhập từ bàn phím khi thực hiện chương trình. Truoc[j] xác định đỉnh đứng trước j trong đường đi tìm được. Program đuongdi;

Var

A: array[1..50,1..50] of byte; Dau: array[1..50] of boolean; Truoc: array[1..50] of byte; n, i0, j0: byte;

Procedure khoitao;

Var


Begin

i, j: byte; f:text; tenfile:string;

write(„ten file‟); readln(tenfile);

assign(f, tenfile); reset(f); readln(f,n,i0,j0);

for i:=1 to n do begin

for j:=1 to n do read(f, A[i,j]);

readln(f); end;

close(f);

Fillchar (Dau,n,true);


235

End;

Procedure BFS(i:byte);

Var


Begin

Q: array [1..50] of byte; d,c,j,k: byte;

d:=1;

c:=1;

Q[c]:=i;

Dau[i]:=true;

Truoc[i]:= 0; While d<=c do begin

j:=Q[d];

inc(d);

for k:=1 to n do

if (A[j,k]=1) and not Dau[k] then begin

inc(c) ;

Q[c]:=k;

Dau[k]:=true;

Truoc[k]:= j; end;

end;

End;

Procedure inkq(j: byte);

Begin

if Truoc[j] <> 0 then inkq(Truoc[j]);

write(j:4);

End;

Procedure Duyet;

Var i:byte;

Begin

BFS(i0);

if Dau[j0] then inkq(j0)

else

writeln(„ Khong co duong di‟);

End;

BEGIN {main} Khoitao; Duyet; Readln;

END.

2. Bài tập Chương 3 Bài 3.9.

Chuẩn hóa công thức sau về dạng chuẩn hội: (A B) CD

(AB) CD

(ABCD) (CDAB)

((AB) CD) (CDAB)

((AB) CD) ((CD) AB)

((AB)CD) ((CD) AB)

((AB) CD) ((CD) AB)

(ACD) (BCD) (CAB) (DAB)

Bài 3.10.

Sử dụng phương pháp chứng minh diễn dịch chứng minh công thức (M N P) (Q R) suy ra M N P, Q R

(S N)(P Q) suy ra S N, P Q (M S) M suy ra M S, M

M, MS suy ra S S, SN suy ra N M, N suy ra MN

MN, MNP suy ra P

P, PQ suy ra Q, Q, QR suy ra R

Sử dụng phương pháp phản chứng chứng minh công thức Bổ sung R

(R, QR) suy ra Q (Q, PQ) suy ra P

(P, MNP) suy ra (MN)

(MN) MN

MN, M suy ra N (N, SN) suy ra S (S, MS) suy ra M

M, M suy ra câu

Kết luận: R được chứng minh

Bài 3.11.

Sử dụng phương pháp chứng minh diễn dịch chứng minh công thức (A B) (B C) suy ra A B, B C

(CD) (D E) suy ra CD, D E (DE, E) suy ra (D)

(D) D

(D, CD) suy ra C (BC, C) suy ra B (B, AB) suy ra A

Sử dụng phương pháp phản chứng chứng minh công thức Bổ sung (A)

(A) A

(A, AB) suy ra B (B, B C) suy ra C (C, CD) suy ra D

D, DE suy ra E E, E suy ra câu

Kết luận: R được chứng minh

Bài 3.12.

Sử dụng phương pháp chứng minh diễn dịch chứng minh công thức

+ (M N) (NP) suy ra M N, NP

+ (P Q) (QR) suy ra (P Q), QR (MN, M) suy ra N

N, NP suy ra P

(PQ) PQ

P, PQ suy ra Q

Q, QR suy ra R

Sử dụng phương pháp phản chứng chứng minh công thức Bổ sung R

R, QR suy ra Q Q, PQ suy ra P

P, NP suy ra N

N, MN suy ra M

M, M câu rỗng

Kết luận: R được chứng minh

Bài 3.13.

Sử dụng phương pháp chứng minh diễn dịch chứng minh C: (AB C) ((DE) C) (1)

E (AB) (2)

AD (3)

- Chuẩn hóa công thức

(1) ((AB) C) ((DE) C)

(ABC) ((DE) C)

(ABC) (DC) (EC)

(2) EAB

(3) AD

- Đưa về câu tuyển ABC (4)

DC (5)

EC (6)

EAB (2)

AD (3)

- Chứng minh bằng diễn dịch (2) (6) suy ra ABC (7) (5), (3) suy ra AC (8)

(7), (8) suy ra BC (9)

(8), (4) suy ra BC (10)

(9), (10) suy ra C

Sử dụng phương pháp phản chứng chứng minh C Bổ sung C (11)

(11), (5) suy ra D (12)

(12), (3) suy ra A (13)

(13), (4) suy ra BC (14)

(14), (11) suy ra B (15)

(13), (15), (2) suy ra E (16)

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 16/07/2022