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

Thuật toán kiểm tra các tính chất của quan hệ

13 74 0

Đ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

Định dạng
Số trang 13
Dung lượng 252,57 KB

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

Nội dung

Thuật Toán Kiểm Tra Các Tính Chất Của Quan Hệ 2.1.. Nêu cách dùng ma trận logic để biễu diễn quan hệ 2 ngôi trên một tập hợp.. Cài đặt thuật toán kiểm tra các tính chất của quan hệphản x

Trang 1

Phần II Thuật Toán Kiểm Tra Các Tính Chất Của Quan Hệ 2.1 Bài toán

1 Nêu cách dùng ma trận logic để biễu diễn quan hệ 2 ngôi trên một tập hợp

2 Nêu ví dụ minh họa

3 Cài đặt thuật toán kiểm tra các tính chất của quan hệ(phản xạ, đối xứng, bắc cầu)

2.2 Cách xây dựng

2.2.1 Dùng ma trận lô-gic để biểu diễn quan hệ hai ngôi trên một tập hợp

2.2.1.1 Các khái niệm

- Quan hệ hai ngôi R trên tập A là một quan hệ từ A đến A, nghĩa là R là tập con của tích đề các A x A

- Ma trận logic cỡ m x n là một ma trận có m dòng và n cột, trong đó các phần

tử của nó chỉ nhận một trong hai giá trị 0 hoặc 1

2.2.1.2 Cách biễu diễn

Ta chọn tập A gồm n phần tử được đánh số thứ tự A={} Khi đó quan hệ R trên A được xác định bằng ma trận vuông cấp n, ký hiệu với mọi A thỏa mãn:

Theo cách biểu diễn này, rõ ràng với mỗi quan hệ R trên A sẽ xác định duy nhất một ma trận logic , và ngược lại, khi biết ma trận logic của một quan hệ R, sẽ xác định được chính xác quan hệ R

2.2.1.3 Các tính chất của quan hệ

- Một quan hệ có tính chất phản xạ khi và chỉ khi ∀a A thì aRa

- Một quan hệ có tính chất đối xứng khi và chỉ khi ∀a, b A thì aRb và bRa

- Một quan hệ có tính chất bắc cầu khi và chỉ khi ∀a,b,c A thì aRb và bRc thì aRc

* Nếu sử dụng ma trận logic để biểu diễn qua hệ 2 ngôi trên một tập hợp thì ta

có các nhận xét sau đây:

Trang 2

- Một quan hệ có tính phản xạ khi và chỉ khi ma trận biểu diễn nó có tất cả phần

tử trên đường chéo chính đều bằng 1

- Một quan hệ có tính chất đối xứng khi và chỉ khi ma trận biểu diễn nó là một

ma trận đối xứng qua đường chéo chính

- Một quan hệ có tính chất bắc cầu khi và chỉ khi ma trận biễu diễn nó có =1 và

=1 thì =1

2.2.2 Ví dụ minh họa

Cho tập hợp A = {1, 2, 3, 4, 5}, ta định nghĩa quan hệ R trên A như sau: ∀a, b∈ A ta nói aRb khi và chỉ khi a + b là một số lẻ, khi đó quan hệ R có thể được biểu diễn bằng các phương pháp sau:

- Quan hệ R được xác định bởi tập hợp sau:

R(A) = {(1, 2), (2, 1), (1, 4), (4, 1), (2, 3), (3, 2), (3, 4), (4, 3), (2, 5), (5, 2), (4, 5), (5, 4)}

- Ma trận logic của quan hệ R được xác định như sau:

2.2.3 Cài đặt thuật toán kiểm tra các tính chất của quan hệ (phản xạ, đối xứng, bắc cầu)

2.2.3.1 Thuật toán kiểm tra tính phản xạ

- Input: Ma trận logic n x n thể hiện quan hệ R

- Output: Cho kết quả là 1 nếu quan hệ có tính phản xạ, ngược lại trả về 0 j =0

kq = 1

begin

Nhập n và mảng a

i = 0

i < m?

Trang 3

Nguyễn Đức Phương – Lớp 53K1- Khoa CNTT Page 13

return kq

return 0

Đ

a[i][j]=1?

i = j?

j < n?

Đ

Đ

S S

S

j ++

end

Đ

S

i ++

Trang 4

2.2.3.2 Thuật toán kiểm tra tính đối xứng

- Input: Ma trận logic n x n thể hiện quan hệ R

- Output: Cho kết quả là 1 nếu quan hệ có tính đối xứng, ngược lại trả về 0

begin

kq=1

i = 0

i < m?

j = 0

j < n?

[i][j]=a[j][i]?

i ++

j ++

end

Nhập n và mảng a

return 0

return kq

S

Đ Đ

S

S

Đ

Trang 5

2.2.3.3 Thuật toán kiểm tra tính bắc cầu

- Input: Nhập vào ma trận logic n x n

- Output: Cho kết quả là 1 nếu quan hệ có tính bắc cầu, ngược lại trả về 0

Đ

S

S

S

S

S

S

Đ

Đ

Đ

Đ Đ

begin

kq=1

i = 0

i < m?

j = 0

j < n?

a[i][j]=1?

k = 0

k < n?

a[j][i]=1?

a[i][k]=1?

k ++

j ++

i ++

end

Nhập n và mảng a

return 0

return kq return 0

Trang 6

2.2.3.4 Chương trình

#include "conio.h"

#include <stdio.h>

void nhapmang(int a[50][50], int n)

{

int i,j,tg;

printf("\n moi nhap cac phan tu mang\n");

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{ printf("a[%d][%d]=",i,j);

scanf("%d",&tg);

a[i][j]=tg;

} }

void hienmang(int a[50][50], int n)

{

int i,j;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

int phanxa(int a[50][50], int n)

Trang 7

int i,j,kq=1;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if((i==j)&&( a[i][j]!=1))return 0;

return kq;

}

int doixung(int a[50][50], int n)

{

int i,j,kq=1;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if (a[i][j]!=a[j][i]) return 0;

return kq;

}

int baccau(int a[50][50], int n)

{

int i,j,k,kq=1;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if(a[i][j]==1)

for(k=0;k<n;k++)

if((a[j][k]==1)&&(a[i][k]!=1))return 0;

return kq;

}

void main()

Trang 8

int n, a[50][50];

clrscr();

printf("moi nhap kich thuoc cho mang:");

scanf("%d”,&n);

nhapmang(a,n);

hienmang(a,n);

if(phanxa(a,n)==1) printf("\nquan he co tinh phan xa");

else

printf("\nquan he khong co tinh phan xa");

if(doixung(a,n)==1) printf("\nquan he co tinh doi xung");

else

printf("\nquan he khong co tinh doi xung");

if(baccau(a,n)==1) printf("\nquan he co tinh bac cau");

else

printf("\nquan he khong co tinh bac cau");

getch();

}

2.2.3.5 Dữ liệu và kết quả test:

Nhập các ma trận:

- Ma trận a[5][5]

Kết quả:

Trang 9

- Ma trận a[4][4]

Trang 10

Kết quả:

- Ma trận a[3][3]

Trang 11

Kết quả:

Trang 12

KẾT LUẬN

Công nghệ thông tin là công cụ đắc lực, là lĩnh vực có nhiều ứng dụng phục vụ cho nhiều ngành khác nhau trong đời sống xã hội Qua quá trình làm đề tài em đã có dịp củng cố, bổ sung kiến thức và thu được những kinh nghiệm quý báu, phục vụ cho việc học tập và làm việc sau này như là các kiến thức về tìm kiếm thông tin thông dụng hiện nay, nâng cao khả năng làm việc theo nhóm, nâng cao kiến thức về ngôn ngữ lập trình C, cấu trúc dữ liệu và giải thuật và cách tổ chức giải quyết yêu cầu của một bài toán cụ thể…

Tuy nhiên do hạn chế về trình độ, thời gian không nhiều nên những kết quả đạt được vẫn chưa đầy đủ và có thể có nhiều sai sót Rất mong được sự đóng góp ý kiến của các thầy cô giáo và các bạn để đề tài của em được hoàn thiện hơn

Cuối cùng chúng em xin chân thành cảm ơn ThS Nguyễn Thị Hồng Anh đã giúp đỡ nhiệt tình cho em hoàn thiện đề tài này

Trang 13

TÀI LIỆU THAM KHẢO

[1] Đỗ Đức Giáo, “Toán rời rạc” NXB Đại học quốc gia Hà Nội

[2] Gs.Phạm Văn Ất, “Kỹ Thuật Lập trình C Cơ sở và Nâng cao” NXB Thời Đại

Ngày đăng: 29/08/2021, 19:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w