Tiểu luận môn toán ứng dụng trong công nghệ Chu trình Euler và bài toán người đưa thư.DOC

16 880 1
Tiểu luận môn toán ứng dụng trong công nghệ Chu trình Euler và bài toán người đưa thư.DOC

Đ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

0 GIỚI THIỆU Lý thuyết đồ thị ngành khoa học phát triển từ lâu lại có nhiều ứng dụng đại Những ý tưởng đưa từ kỷ XVIII nhà toán học Thụy sĩ tên Leonhard Euler Lý thuyết đồ thị dùng để giải toán nhiều lĩnh vực khác Chúng ta xác định hai máy tính mạng trao đổi thơng tin với hay khơng nhờ mơ hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường ngắn hai thành phố mạng giao thông Chúng ta cịn sử dụng đồ thị để giải tốn lập lịch, thời khóa biểu, phân bố tần số cho trạm phát truyền hình… Ngày Lý thuyết đồ thị phát triển thành ngành Tốn học ứng dụng có vị trí đặc biệt quan trọng mặt lý thuyết ứng dụng Trong nội dung tiểu luận nhóm chúng tơi xin trình bày “Chu trình Euler tốn người đưa thư” Đồng Hới, tháng 05 năm 2012 Toán ứng dụng Chu trình Euler tốn người đưa thư - Đề tài: Chu trình Euler tốn người đưa thư - Nhóm: người STT Họ tên Nguyễn Duy Linh Nguyễn Thị Hà Phương Nguyễn Trần Sỹ Võ Phi Thanh Hoàng Cơng Tiến Hồng Đình Tuyền Tiểu luận nhóm Cơng việc (theo mục lục) Chữ ký Nhận xét giáo viên Trang Tốn ứng dụng Chu trình Euler toán người đưa thư CHƯƠNG ĐẠI CƯƠNG VỀ ĐỒ THỊ (Sỹ) Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler tốn người đưa thư CHƯƠNG CHU TRÌNH EULER VÀ BÀI TỐN NGƯỜI ĐƯA THƯ (Thanh+ Phương) 2.1 Định nghĩa Cho đồ thị G=(V,E), V tập hợp đỉnh, E tập hợp cạnh Chu trình Euler chu trình qua cạnh đỉnh đồ thị, cạnh không lần Đường Euler đường qua cạnh đỉnh đồ thị, cạnh khơng q lần Cho đồ thị có hướng G=(V,E) Chu trình có hướng Euler chu trình có hướng qua cung đỉnh đồ thị, cung khơng q lần Đường có hướng Euler đường có hướng qua cung đỉnh đồ thị, cung không lần Đồ thị chứa chu trình Euler gọi Đồ thị Euler Ví dụ Đồ thị Có chu trình Euler khởi đầu từ đỉnh 1, qua tất cạnh dỉnh đồ thị, cạnh không lần lại đỉnh 1: (1, 3, 6, 5, 2, 4, 3, 2, 1) Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler tốn người đưa thư 2.2 Điều kiện cần đủ 2.2.1 Định lý (Định lý Euler) Đồ thị G có chu trình Euler G liên thông đỉnh có bậc chẵn khác Chứng minh (i) (): Giả sử G có chu trình Euler v đỉnh G Khi chu trình Euler đến v theo cạnh e khỏi v cạnh e’  e Do bậc v phải số chẵn G hiển nhiên liên thông (ii) (): Giả sử G liên thơng đỉnh có bậc chẵn khác Ta chứng minh G có chu trình Euler quy nạp theo số cạnh m G  m = 1: Vì G liên thơng đỉnh bậc chẵn nên G có đỉnh khun Khun tạo thành chu trình Euler  Giả sử G có m cạnh, số đỉnh n > đồ thị liên thơng có số cạnh nhỏ m với đỉnh bậc chẵn có chu trình euler + Trường hợp n = hiển nhiên tồn chu trình Euler + Trường hợp n > Vì bậc đỉnh chẵn  2, chọn đỉnh a, b, c với cạnh x = (a,b), y = (a,c) - Giả sử G chứa cạnh z = (b,c) Xét đồ thị G’ thu từ G cách loại bỏ ba cạnh x,y,z Sẽ xảy ba khả sau:  G’ liên thông Vì số cạnh G’ nhỏ m đỉnh có bậc chẵn nên theo giả thiết quy nạp tồn chu trình Euler C’ G’ Nối chu trình (x,y,z) với C’ ta thu chu trình Euler C G  G’ có thành phần liên thơng G1 G2 Khơng tính tổng quát giả sử G1 chứa a, G2 chứa b c G1 có chu trình Euler C1, G2 có chu trình Euler C2 Ta xây dựng chu trình Euler C G sau Xuất phát từ đỉnh a theo chu trình C quay a, sau theo cạnh x = (a,b) đến đỉnh b, từ b theo chu trình C2 quay b, sau theo cạnh z = (b,c) y = (c,a) quay a Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler tốn người đưa thư  G’ có thành phần liên thơng G , G2 G3 Khơng tính tổng quát giả sử G1 chứa a, G2 chứa b G3 chứa c G1 có chu trình Euler C1, G2 có chu trình Euler C2 , G3 có chu trình Euler C3 Ta xây dựng chu trình Euler C G sau Xuất phát từ đỉnh a theo chu trình C quay a, sau theo cạnh x=(a,b) đến đỉnh b, từ b theo chu trình C quay b, sau theo cạnh z=(b,c) đến đỉnh c, từ c theo chu trình C quay c, sau theo cạnh y=(c,a) quay a - Giả sử G không chứa cạnh z = (b,c) Xét đồ thị G’ thu từ G cách loại bỏ cạnh x,y thêm cạnh z Sẽ xảy hai khả sau:  G’ liên thơng Vì số cạnh G’ nhỏ m đỉnh có bậc chẵn nên theo giả thiết quy nạp tồn chu trình Euler C’ G’ Thay cạnh z C’ cạnh x y ta thu chu trình Euler C G  G’ có thành phần liên thơng G1 G2 Khơng tính tổng quát giả sử G1 chứa a, G2 chứa b c G1 có chu trình Euler C1, G2 có chu trình Euler C2 Ta xây dựng chu trình Euler C G sau Thay cạnh zC2 cạnh x y ta có chu trình C 2’ Nối C2’ với C1 ta thu chu trình Euler C G (đpcm) 2.2.2 Định lý Cho đồ thị G có k đỉnh bậc lẻ Khi số đường tối thiểu phủ G k/2 Chứng minh Ta biết số đỉnh bậc lẻ chẵn, k=2n Chứng minh quy nạp theo n (i) n=1: Nối đỉnh bậc lẻ với cạnh z ta thu đồ thị G’ thoả định lý Euler Như G’ có chu trình Euler C’ Bỏ cạnh z C’ ta thu đường Euler phủ G (ii) Giả sử G có số đỉnh bậc lẻ 2n định lý với k dO(v)} T = {u  V : dI(v) < dO(v)} Từ bổ đề bắt tay ta có d vV O (v ) =  d (v ) I vV    d (v )  d I O vS (v )  =  d O (v )  d I (v )  vT Ta ký hiệu k=   d (v )  d I O vS (v )  =  d O (v )  d I ( v )  vT 2.2.3 Định lý (i) Đồ thị có hướng G có chu trình có hướng Euler G liên thông yếu đỉnh có nửa bậc vào nửa bậc ra, tức S =  T = (ii) Nếu S  , số đường có hướng tối thiểu phủ G k Các đường nối đỉnh T đến đỉnh tập S Ví dụ: Đồ thị A B D C Đồ thị có chu trình Euler: (A,B,C,D,A) Ví dụ: Đồ thị A D Khơng có chu trình Euler Ta có B C R={u  V | dI(v) = dO(v) =  } Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler toán người đưa thư S= {u  V | dI(v) > dO(v) } = {C, D} T= { u  V | dI(v) < dO(v) } = {A, B} Và k=   d (v )  d I vS O (v )  =  d vT O (v )  d I (v )  = Vậy số đường có hướng tối thiểu phủ đồ thị k=2, ví dụ đường sau (A,C,D,A,B,C) (B,D) 2.3 Các thuật tốn tìm chu trình Euler 2.3.1 Thuật tốn + Đầu vào Đồ thị G  , khơng có đỉnh lập + Đầu Chu trình Euler C G, kết luận G khơng có chu trình Euler + Phương pháp (1) Xuất phát: Đặt H := G, k := 1, C :=  Chọn đỉnh v  G (2) Xuất phát từ v, xây dựng chu trình Ck H Nếu tồn Ck , nối Ck vào C, C := C  Ck Sang bước (3) Nếu khơng tồn Ck , kết luận khơng có chu trình Euler, kết thúc (3) Loại khỏi H chu trình Ck Nếu H chứa đỉnh lập loại chúng khỏi H Sang bước (4) (4) Nếu H = , kết luận C chu trình Euler, kết thúc Ngược lại sang bước (5) (5) Nếu H C khơng có đỉnh chung, kết luận khơng có chu trình Euler, kết thúc Nếu H C có đỉnh chung Chọn v đỉnh chung H C Đặt k := k+1 Quay lại bước (2) + Ví dụ Cho G đồ thị Thanh mã tấu Mohammed a e b Tiểu luận nhóm c d j f i h g Trang k Tốn ứng dụng Chu trình Euler toán người đưa thư Ta áp dụng thuật toán để tìm chu trình Euler (1) Đặt H := G, k := 1, C := , v := f (2) Ta xây dựng chu trình C1 H: C1 = (f,g,k,h,i,e,b,c,d,f) Đặt C = C  C1 = (f,g,k,h,i,e,b,c,d,f) (3) Loại C1 khỏi H, ta đồ thị H sau a e b j f h g d c i k Các đỉnh c k đỉnh lập, ta loại chúng khỏi H nhận đồ thị H sau a e b d j f i h g (5) Chọn đỉnh chung H C v := f Đặt k := k+1 = Quay lại bước (2) (2) Ta xây dựng chu trình C2 H: Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler toán người đưa thư C2 = (f,i,j,h,g,d,b,a,e,f) Nối C2 vào C ta chu trình C sau C = C  C2 = (f,g,k,h,i,e,b,c,d,f)  (f,i,j,h,g,d,b,a,e,f) = (f,g,k,h,i,e,b,c,d,f,i,j,h,g,d,b,a,e,f) (3) Loại C2 khỏi H, ta đồ thị H gồm tồn đỉnh lập Loại nốt đỉnh lập ta có H =  (4) Vì H = , ta kết luận C chu trình Euler, kết thúc 2.3.2 Thuật toán (Fleury) + Đầu vào Đồ thị G  , khơng có đỉnh lập + Đầu Chu trình Euler C G, kết luận G khơng có chu trình Euler + Phương pháp (1) Chọn đỉnh xuất phát v0 Đặt v1 := v0 , C := (v0) H := G (2) Nếu H = , kết luận C chu trình Euler, kết thúc Ngược lại sang bước (3) (3) Chọn cạnh tiếp: - Trường hợp đỉnh v1 đỉnh treo: Tồn đỉnh v2 kề v1 Chọn cạnh (v1 , v2 ) Sang bước (4) - Trường hợp đỉnh v1 không đỉnh treo: Nếu cạnh liên thuộc v1 cầu, khơng có chu trình Euler, kết thúc Ngược lại, chọn cạnh (v1 , v2 ) cầu H Thêm vào đường C đỉnh v2 Sang bước (4) (4) Xoá cạnh vừa qua, xố đỉnh lập: Loại khỏi H cạnh (v1 , v2 ) Nếu H có đỉnh lập, loại chúng khỏi H Đặt v1 := v2 Sang bước (2) Tiểu luận nhóm Trang Tốn ứng dụng Chu trình Euler tốn người đưa thư + Ví dụ v1 Cho G đồ thị hình sau v2 v3 v5 v4 v6 v7 Đồ thị liên thơng có đỉnh bậc chẵn Ta có chu trình Euler sau (v6, v4, v7, v5, v1, v3, v4, v2, v1, v4, v5, v2, v3, v6) + Ví dụ Domino hình chữ nhật chia thành hình vng hình mang số 0,1,2,3,4,5,6 Hai hình vng domino mang số Ví dụ 4 Có tất 28 qn Dơmino khác Chứng minh ta xếp domino thành hình trịn cho hai hình vng kề domino khác mang số Giải: Ta lập đồ thị đỉnh v0, v1, v2, v3, v4, v5, v6 Mỗi đỉnh vi ứng với số i, i=0, ,6 Mỗi đỉnh nối với đỉnh cịn lại để tạo thành domino Ta có đồ thị sau Tiểu luận nhóm Trang 10 Tốn ứng dụng Chu trình Euler tốn người đưa thư Liên thơng với tất đỉnh có bậc chẵn Do tồn chu trình Euler Mỗi chu trình Euler cho tương ứng cách xếp 2.4 Thiết kế cấu trúc liệu giải thuật tìm đường đi, chu trình Euler Chương trình thiết kế ngôn ngữ tựa Pascal Cấu trúc liệu: - Biểu diễn đồ thị G cấu trúc liệu ma trận trọng số Anxn Trong n số đỉnh - Sử dụng ngăn xếp Stack[max] để lưu đỉnh qua - Sử dụng ngăn xếp CE[max] để lưu chu trình Euler tìm Giải thuật : Bước 1: Kiểm tra đồ thị có phải đồ thị liên thông hay không, đồ thị liên thơng chuyển sang bước Hàm lienthong(): Boolean trả kết (True) nều dồ thị liên thông, sai (False) đồ thị không liên thông Bước : Kiểm tra đồ thị đồ thị Euler hay đồ thị Euler (dựa vào bậc đỉnh) Hàm kiemtraEuler() : Boolean để kiểm tra đồ thị Euler - Tìm bậc tất đỉnh đồ thị G, bậc chẵn G đồ thị Euler, ngược lại khơng phải Bước : Nếu đồ thị Euler ta tìm chu trình Euler Thủ tục EULER(dothi G) dùng để tìm chu trình Euler, sau tìm chu trình Euler lưu ngăn xếp CE Thủ tục EULER (G: Matran) thiết kế sau Procedure EULER(G: Matran, CE: Nganxep); Begin v, x, top: Int //bien top: dinh stack top=1; stack[top]=u; // tim chu trinh bat dau tu dinh u Do Tiểu luận nhóm Trang 11 Tốn ứng dụng Chu trình Euler toán người đưa thư Begin V := stack[top]; // v la dinh dau stack x:=1; While (xn) // neu khong dinh x nao ke dinh v Begin //lay dinh v khoi stack va dua dinh v vao ngan xep CE dCE :=dCE+1; // CE[dCE] :=v; top :=top-1; End Else // co dinh x ke dinh v Begin // dua dinh x vao stack dong thoi xoa canh (v,x) khoi thi top:=top+1; stack[top]:=x; A[v,x]:=A[x,v]:=0; End End while(top0); // Ham Euler thuc hien stack chua rong End 2.5 Bài tốn người đưa thư Tiểu luận nhóm Trang 12 Tốn ứng dụng Chu trình Euler toán người đưa thư CHƯƠNG III CÀI ĐẶT BÀI TỐN NGƯỜI ĐƯA THƯ (Linh+Tuyền) Tiểu luận nhóm Trang 13 Tốn ứng dụng Chu trình Euler tốn người đưa thư KẾT LUẬN Trên sở nghiên cứu kiến thức từ giáo trình “Tốn ứng dụng” Thầy giáo PGS.TSKH Trần Quốc Chiến số tài liệu liên quan, nhóm chúng tơi thực đề tài “Chu trình Euler tốn người đưa thư ” đạt kết sau: - Tìm hiểu thuật tốn tìm chu trình Euler thuật tốn tìm chu trình ngắn qua tất cạnh đồ thị cho trước toán người đưa thư - Đề xuất cấu trúc liệu biểu diễn hai tốn - Cài đặt hồn chỉnh thuật tốn tốn người đưa thư ngơn ngữ Pascal Chúng xin chân thành cảm ơn Thầy giáo PGS.TSKH Trần Quốc Chiến tận tình giúp đỡ chúng tơi hồn thành tiểu luận Do trình độ thời gian hạn chế nên không tránh khỏi khiếm khuyết, mong nhận góp ý Thầy, Cơ bạn để tiểu luận hoàn thiện Tiểu luận nhóm Trang 14 Tốn ứng dụng Chu trình Euler toán người đưa thư TÀI LIỆU THAM KHẢO PGS TSKH Trần Quốc Chiến, Giáo trình Tốn ứng dụng, Đại học Đà Nẵng 2010 PGS TSKH Trần Quốc Chiến, Giáo trình Lý thuyết đồ thị, Đại học Đà Nẵng 2005 Nguyễn Đức Nghĩa, Nguyễn Tô Thành Toán rời rạc Nhà xuất Giáo dục, 1999 Tiểu luận nhóm Trang 15 ... Ham Euler thuc hien stack chua rong End 2.5 Bài toán người đưa thư Tiểu luận nhóm Trang 12 Tốn ứng dụng Chu trình Euler toán người đưa thư CHƯƠNG III CÀI ĐẶT BÀI TỐN NGƯỜI ĐƯA THƯ (Linh+Tuyền) Tiểu. .. b Tiểu luận nhóm c d j f i h g Trang k Tốn ứng dụng Chu trình Euler toán người đưa thư Ta áp dụng thuật toán để tìm chu trình Euler (1) Đặt H := G, k := 1, C := , v := f (2) Ta xây dựng chu trình. .. Tiểu luận nhóm Công việc (theo mục lục) Chữ ký Nhận xét giáo viên Trang Tốn ứng dụng Chu trình Euler toán người đưa thư CHƯƠNG ĐẠI CƯƠNG VỀ ĐỒ THỊ (Sỹ) Tiểu luận nhóm Trang Tốn ứng dụng Chu trình

Ngày đăng: 24/03/2015, 08:51

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1. ĐẠI CƯƠNG VỀ ĐỒ THỊ

  • (Sỹ)

  • CHƯƠNG 2. CHU TRÌNH EULER VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ

    • 2.1. Định nghĩa

    • 2.2. Điều kiện cần và đủ

    • 2.2.1. Định lý 1 (Định lý Euler)

    • 2.3. Các thuật toán tìm chu trình Euler

    • 2.4. Thiết kế cấu trúc dữ liệu và giải thuật tìm đường đi, chu trình Euler

    • 2.5. Bài toán người đưa thư

Tài liệu cùng người dùng

Tài liệu liên quan