NIÊN LUẬN TÌM CHU TRÌNH EULER TRÊN đồ THỊ vô HƯỚNG: Những lý thuyết cơ bản của lý thuyết đồ thị được đề xuất từ thế kỷ XVIII, bắt đầu từ bài báo cuarv Euler công bố năm 1736 liên quan đến lời giải bài toán nổi tiếng về các cây cầu ở Königsberg. Tuy nhiên, cho tới nay mối quan tam đến lý thuyết đồ thị không hề suy giảm. lý do của sự quan tâm ấy chính là do sự vận dụng hết sức rộng rãi của đồ thị trong rất nhiều lĩnh vực khác nhau, bao gồm cả tin học, hóa học, vận trù học, kỷ thuật điện, ngôn ngữ và kinh tế…
Trang 1TRƯỜNG ĐẠI HỌC BẠC LIÊU
KHOA CÔNG NGHỆ THÔNG TIN
NIÊN LUẬN 1
CHU TRÌNH EULER
MSĐT:NL1-TH….
Nội Dung: Tìm Chu Trình Euler Trên Đồ Thị Vô Hướng
(Có giao diện đồ họa)
Giáo viên hướng dẫn: ths THS TRẦN …………
Sinh viên thực hiện: ĐẶNG ………
MSSV: 1T…….
Bạc Liêu, Ngày … Tháng … Năm ……
C
DA
B
Trang 2ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN 1
TÊN ĐỀ TÀI: TÌM CHU TRÌNH EULER TRÊN ĐỒ THỊ VÔ HƯỚNG
MÃ SỐ ĐỀ TÀI: NL1-TH043
GIÁO VIÊN HƯỚNG DẪN: THS TRẦN ………
SINH VIÊN THỰC HIỆN : ĐẶNG …………
I HÌNH THỨC: (tối đa 1,0 điểm)
Bìa: ( tối đa 0.5 điểm)………
Các tiêu đề:
Loại đồ án, tên đề tài, giáo viên hướng dẫn, thong tin về sinh viên thực hiện, năm thực hiện
Bố cục:(tối đa 0.5 điểm)………
Trang nhận xét của GVHD và GV chấm (cấu trúc chương mục, tiểu mục), phụ lục (nếu có) tài liệu tham khảo
II NỘI DUNG: (nội ndung tối đa 4.5 điểm)
II.1 Giới thiệu (tối đa 0,5 điểm)………
Giới thiệu tổng quan
Mục tiêu cần đạt:
II.2 Lý thuyết: (tối đa 1 điểm)………
Các khái niệm sử dụng trong đề tài:
Kết quả vận dụng lý thuyết vào đề tài:
II.3 Ứng dụng:(tối đa 2.5 điểm) ………
Kết quả/lưu đồ
Giới thiệu chương trình:
II.4 Kết luận: (tối đa 0.5 điểm)………
Kết quả thực hiện đúng với kết quả của phần ứng dụng
IV.THƯỞNG: (tối đa 1.0 điểm)………
TỔNG CỘNG:………
BẠC LIÊU, ngày tháng năm ………
GV CHẤM
Trang 3PHẦN NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 4
MỤC LUC
PHẦN I: TỔNG QUAN
I GIỚI THIỆU CHUNG:
II MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT
1 Mục tiêu cần đạt
2 Hướng giải quyết
PHẦN II: ỨNG DỤNG
I CƠ SỞ LÝ THUYẾT
II CẤU TRÚC DỮ LIỆU MỚI VÀ CHƯƠNG TRÌNH CON
III MÔ HÌNH, LƯU ĐỒ, CHƯƠNG TRÌNH CON, KẾT QUẢ ĐẠT
ĐƯỢC
PHẦN III: KẾT LUẬN
I NHẬN XÉT KẾT QUẢ ĐẠT ĐƯỢC
II NHỮNG MẶT HẠN CHẾ
III HƯỚNG PHAT TRIỂN
TÀI LIỆU THAM KHẢO
Trang 5NỘI DUNG
I GIỚI THIỆU :
I.1 GIỚI THIEU TỔNG QUAN:
Những lý thuyết cơ bản của lý thuyết đồ thị được đề xuất từ thế kỷ XVIII, bắt đầu từ bài báo cuarv Euler công bố năm 1736 liên quan đến lời giải bài toán nổi tiếng về các cây cầu ở Königsberg Tuy nhiên, cho tới nay mối quan tam đến
lý thuyết đồ thị không hề suy giảm lý do của sự quan tâm ấy chính là do sự vận dụng hết sức rộng rãi của đồ thị trong rất nhiều lĩnh vực khác nhau, bao gồm cả tinhọc, hóa học, vận trù học, kỷ thuật điện, ngôn ngữ và kinh tế…
Một số bài toán thực tế như bài toán người đưa thư, bài toán người đi du lịch, dẫn đến việc nghiên cứu một số dạng đặc biệt của đồ thị là đồ thị Euler và đồ thị Hamilton Trong phần này chúng ta sẽ tìm hiểu chu trình Euler với đồ thị vô hướng
Vào năm 1736, tại thành phố Königsberg nước Đức có sông Pregel bao quanh 2 đảo lớn Hai đảo này được nối với các vùng đất thành phố bởi 7 cây cầu
Cư dân thành phố đặt ra bài toán: có thể xuất phát tại một điểm và đi qua 7 cây cầu, mỗi cây cầu chỉ được đi qua đúng một lần, và trở về điểm xuất phát được không ?
Và nhà toán học L.Euler đã trả lời trọn vẹn cho bài toán này Người ta lấy tên cho bài toán trên là tên của nhà toán học Euler
II.1 Các khái niệm sử dụng trong đề tài:
Định nghĩa đồ thị Euler: Một chu trình (vô hướng) trên đồ thị vô hướng G
đi qua tất cả các cạnh của G và đi qua mỗi cạnh đúng một lần gọi là chu trình Euler Một đồ thị vô hướng có chứa chu trình Euler gọi là đồ thị Euler
Định lý Euler:
G=[X,U] là đồ thị vô hướng hữu hạn
G là đồ thị Euler khi và chỉ khi G là đồ thị liên thông và mọi đỉnh G đều có bậc chẳn
Đồ thị liên thông:
G=[X,U] là đồ thị
Đồ thị G được gọi là liên thông nếu với mỗi cặp đỉnh i,j bất kỳ thì luôn tìm được đường đi nối giữa i và j
Một số hàm thông dụng thao tác trên file
II.2 Kết quả vận dụng lý thuyết vào đề tài:
Trang 61 Vận dụng vào xét chu trình Euler, vẽ chu trình Euler,đọc file dồ thị.
gt()hd()
Trang 7S
Đ S
Đ
Fscanf(f,”%d”,sodinh)
Continuei++
i<sodinh
j<sodinhi<sodinhF=null ĐS
Trang 8
Đ
i<sodinh
Đ
kt==1
SS
Đj<sodinh
Trang 9Void Timeuler
begin
m=0,e=0,u=0,k=1,l=1,i=baclonnhatm<t
Trang 11Giới thiệu chương trình:
- Chương trình con vẽ cạnh
- Chương trình con in đỉnh
- Chương trình con tìm chu trình Euler
- Chương trình con tìm chu trình Euler với tất cả các đỉnh có bậc bằng 2
- Chương trình con tính tọa độ
- Chương trình con vẽ đỉnh
- Chương trình con nhập chuỗi
- Chương trình con nhạp file và kiểm tra file
- Chương trình con xét Euler
Trang 12- Mô phỏng được đường đi chu trình Euler nếu có.
2 Hạn chế:
- Giải thuật chưa tối ưu
- Chưa xét được đi từ 1 đỉnh bất kỳ
- Còn một số đồ thị không thỏa Euler chưa mô phỏng đồ thị nhập vào được
#define path "c:\\tc\\bgi"
// - Khai bao bien
-typedef struct chitietdinh
Trang 16outtextxy(30,90,"Huong dan :");
setcolor(15);
line(25,100,30+textwidth("HUONG DAN :"),100);
setcolor(19);
outtextxy(30,110,"Nhap vao ten file co chua ma tran ke.");
outtextxy(30,130,"Kiem tra ma tran dau vao.");
Trang 17outtextxy(30,150,"Mo phong dang do thi nhap vao.");
outtextxy(30,170,"Tim va in ra duong di chu trinh euler neu co.");
delay(500);
}f=fopen(file,"r");
outtextxy(30+textwidth("Exit ")+4*i,460,".");
delay(500);
}return;
Trang 21for (i=0; i<1; i++)
Trang 22outtextxy(20,20,"TRUONG DAI HOC BAC LIEU");
outtextxy(20,40,"KHOA CONG NGHE THONG TIN");
Trang 24outtext("CHUONG TRINH TIM CHU TRINH EULER TREN DO THI
outtextxy(80,210,"1 Gioi Thieu.");
outtextxy(80,230,"2 Huong Dan.");
outtextxy(80,250,"3 Tim Chu Trinh Euler.");
line(95,40,390+textwidth("Nhap vao ten file :"),40);
outtextxy(50,100,"Bai toan tim chu trinh euler dc nha toan hoc L.Euler dat
outtextxy(30,200,"cung quay ve dia diem xuat phat khong?");
outtextxy(50,240,"Tu do hinh thanh bai toan tim chu trinh euler la lam sao
de di qua tat ");
outtextxy(30,260,"ca cac canh va cuoi cung quay ve dinh xuat phat.");getch();
Trang 25}
//=======================================================void hd()
line(220,40,170+textwidth("Nhap vao ten file :"),40);
outtextxy(50,100,"De su dung chuong trinh truoc tien ta tao file ma tran ke voi duoi txt");
outtextxy(30,120,"Neu ta nhap ten file khong dung thi chuong trinh thong bao khong tim thay ");
outtextxy(30,140,"file, nguoc lai chuong trinh bao da tim thay file tiep theoxet file nhap");
outtextxy(30,160,"vao co thoa ma tran ke khong,neu khong thoa thi dung lai va xuat ra thong");
outtextxy(30,180,"bao ma tran nhap vao khong thoa,neu thoa thi xet xem cophai la chu trinh ");
outtextxy(30,200,"euler khong? neu phai thi xuat ra thong bao va ve do thi sau do chuong");
outtextxy(30,220," trinh tu dong mo phong duong di cua chu trinh Euler.");getch();
return;
}
//=======================================================void tam_biet()
Trang 261 Để sử dung chương trình này trước tiên ta phải tạo file.txt, nội dung chứa
ma trận kề trên cùng là số đỉnh Các giá trị bên dưới là mối liên hệ giữa các đỉnh, giữa hai đỉnh có cạnh nói thì có giá trị 1, ngược lài thì mang giátrị 0
2 Khi chạy DEMO ta se thấy giao diện của Menu chinh Ta bấm 1 phím bất kỳ để thực hiện
3 Sau đó chương trình thực thi công việc sẽ hiện ra Ta chọn 1 trong 4 lệnh
để thực hiện chương trình Các lện từ “1” đến “4” lần lược có ý nghĩa như sau:
Trang 27“1”:Mở void gt() (phần này là đoạn văn bản giới thiệu sơ lược về bài toán
Euler) Sau đó bấm pím enter để quay về cửa sổ thực thi công việc
“2”: Mở void hd() (phần này là là đoạn văn bản hướng dẫn sử dụng) Sau
đó bấm pím enter để quay về cửa sổ thực thi công việc
“3”: Mở void text() (phần này là phần trọng tâm của chương trình) Tiếp
sau đó ta nhập tên file chứa ma trận kề (ma trận mô phỏng đồ thị vô hướng mà ta cần xét) Sau đó chương trình tự xét đồ thị có phải là đồthị euler hay không Nếu có thì mô phỏng đường đi của chu trình và kết thúc
“3”: Mở void tam_biet() (thoát khoi chương trình)
Trang 28DANH MỤC TÀI LIỆU THAM KHẢO
1 Toán rời rạc (NSB: đại học sư phạm)
2 Toán rời rạc 4 (Trường đại học Cần Thơ)
3 Tập Slide bài giảng Đồ Thị của thạc sĩ Nguyễn Viết Hưng
4 Tập Slide bài giảng đồ thị Euler và đồ thị Hamilton của thầy Nguyễn Ngọc Trung