Lập trình mô phỏng một số thuật toán trên đồ thị

53 11 0
  • Loading ...
1/53 trang

Thông tin tài liệu

Ngày đăng: 25/11/2016, 20:29

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI NGUYỄN THỊ CHIỀU LẬP TRÌNH MÔ PHỎNG MỘT SỐ THUẬT TOÁN TRÊN ĐỒ THỊ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ MÁY TÍNH Ngƣời hƣớng dẫn khoa học: TS Trần Minh Tƣớc Hà Nội, 2014 LỜI CẢM ƠN Nhân dịp hoàn thành khóa luận, xin bày tỏ lòng biết ơn sâu sắc tới TS Trần Minh Tƣớc tận tình giúp đỡ trình hoàn thành khóa luận Tôi xin chân thành cảm ơn Ban giám hiệu, phòng Sau đại học, trƣờng Đại học Sƣ phạm Hà Nội nhƣ toàn thể thầy cô giáo trƣờng tạo điều kiện thuận lợi trình học tập nghiên cứu Trong trình thực công tác nghiên cứu không tránh khỏi hạn chế thiếu sót, xin chân thành cảm ơn ý kiến đóng góp thầy giáo, cô giáo bạn học viên Hà Nội, tháng 12 năm 2014 Tác giả Nguyễn Thị Chiều LỜI CAM ĐOAN Tôi xin cam đoan, kết luận văn hoàn toàn kết tự thân tìm hiểu, nghiên cứu dƣới hƣớng dẫn TS Trần Minh Tƣớc, khóa luận tốt nghiệp “LẬP TRÌNH MÔ PHỎNG MỘT SỐ THUẬT TOÁN TRÊN ĐỒ THỊ” đƣợc hoàn thành, không trùng với khóa luận khác Trong trình làm khóa luận, kế thừa thành tựu nhà khoa học với trân trọng biết ơn Hà Nội, tháng 12 năm 2014 Tác giả Nguyễn Thị Chiều MỤC LỤC Trang DANH MỤC CÁC HÌNH MỞ ĐẦU Chƣơng KIẾN THỨC CHUẨN BỊ 10 1.1 Tổng quan thuật toán mô thuật toán 10 1.1.1 Tổng quan thuật toán 10 1.1.2 Mô thuật toán 11 1.2 Một số khái niệm đồ thị 13 1.2.1 Đồ thị 13 1.2.2 Biểu diễn đồ thị 15 1.3 Giới thiệu số toán đồ thị 21 1.3.1 Bài toán tìm kiếm 21 1.3.2 Bài toán tìm luồng lớn mạng vận tải 25 1.3.3 Bài toán tô màu đồ thị 33 Chƣơng BIỂU DIỄN DỮ LIỆU VÀ THIẾT KẾ HỆ THỐNG 37 2.1 Biểu diễn liệu 37 2.2 Phân tích thiết kế hệ thống 37 2.2.1 Mục đích 37 2.2.2 Những yêu cầu thực tế 37 2.2.3 Đề xuất cho hệ thống 38 2.2.4 Thiết kế mô số thuật toán đồ thị 38 2.3 Lựa chọn công cụ, ngôn ngữ lập trình Chƣơng CÀI ĐẶT CHƢƠNG TRÌNH 41 44 3.1 Hệ thống phân cấp mô-đun 44 3.2 Tạo giao diện ngƣời dùng 45 3.2.1 Mô thuật toán tìm kiếm DFS BFS 46 3.2.2 Thuật toán tìm luồng cực đại Ford–Fulkerson 48 3.2.3 Thuật toán tô màu Welsh–Powell 48 3.3 Hƣớng dẫn sử dụng chƣơng trình 49 KẾT LUẬN 51 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 52 DANH MỤC CÁC HÌNH 1.1 Biểu diễn đồ thị mặt phẳng 13 1.2 Biểu diễn đồ thị vô hƣớng G1 ma trận vuông 16 1.3 Biểu diễn đồ thị có hƣớng G2 ma trận vuông 16 1.4 Ví dụ đồ thị vô hƣớng đỉnh 17 1.5 Đồ thị cài đặt mảng 18 1.6 Đồ thị cài đặt danh sách móc nối 18 1.7 Danh sách kề mảng Adj gồm 12 phần tử 19 1.8 Danh sách móc nối đồ thị 19 1.9 Đồ thị vô hƣớng đỉnh, đỉnh xuất phát S=1 22 1.10 Minh họa ví dụ thuật toán DFS dạng bảng 23 1.11 Minh họa ví dụ thuật toán BFS dạng bảng 25 1.12 Tìm luồng cực đại mạng đỉnh phát S đỉnh thu t 28 1.13 Mạng vận tải với lần lặp 28 1.14 Mạng vận tải với lần lặp 29 1.15 Mạng vận tải với lần lặp 30 1.16 Mạng vận tải với lần lặp 31 1.17 Mạng vận tải với lần lặp 32 1.18 Mạng vận tải sau kết thúc thuật toán 33 1.19 Đồ thị liên thông gồm đỉnh chƣa tô màu 34 1.20 Đồ thị liên thông đỉnh sau đƣợc tô màu 36 2.1 Quy trình phân tích thiết kế nhiệm vụ trƣớc mô 39 2.2 Mô-đun mô số thuật toán đồ thị 39 2.3 Mô hình toán mô thuật toán 41 3.1 Mô-đun mô thuật toán DFS 44 3.2 Mô-đun mô thuật toán BFS 44 3.3 Mô-đun mô thuật toán Welsh–Powell 45 3.4 Giao diện chƣơng trình 45 3.5 Mô thuật toán BFS đồ thị có hƣớng liên thông 46 3.6 Mô thuật toán BFS đồ thị có hƣớng không liên thông 47 3.7 Mô thuật toán DFS đồ thị vô hƣớng liên thông 47 3.8 Mô thuật toán DFS đồ thị vô hƣớng không liên thông 47 3.9 Thuật toán Ford – Fulkerson với đỉnh nguồn 6, đỉnh đích 48 3.10 Thuật toán Welsh–Powell với đồ thị liên thông 49 3.11 Thuật toán Welsh–Powell với đồ thị không liên thông 49 MỞ ĐẦU Lý chọn đề tài Những năm gần đây, Việt Nam môn Tin học đƣợc đƣa vào chƣơng trình học sinh trung học sở trung học phổ thông nhƣ môn học thức Đối với khối học sinh chuyên Tin học học sinh giỏi Tin học vấn đề đồ thị đƣợc đề cập Tuy nhiên, lý thuyết đồ thị thuật toán đồ thị vấn đề rộng phức tạp Việc hiểu cài đặt tốt thuật toán đòi hỏi thời gian công sức lớn Nhƣ phần trình học thuật toán, việc mô thuật toán nhƣ công cụ trợ giúp ngƣời học theo dõi chi tiết bƣớc hoạt động thuật toán thay đổi cấu trúc liệu suốt trình thực thi Từ giúp ngƣời học tƣ thuật toán nhanh ngày yêu thích giải thuật Với bùng nổ công nghệ thông tin, việc mô thuật toán ngày trở nên hữu ích trở thành giáo cụ trực quan hầu hết lĩnh vực, môi trƣờng giáo dục nhƣ Trong phạm vi luận văn tốt nghiệp thạc sĩ chuyên ngành khoa học máy tính, từ đề xuất hƣớng nghiên cứu trực tiếp hƣớng dẫn TS Trần Minh Tƣớc, xác định nhiệm vụ đề tài nghiên cứu số thuật toán đồ thị, sau sử dụng ngôn ngữ lập trình để triển khai xây dựng chƣơng trình nhằm mô hoạt động số thuật toán đồ thị Từ đặt tên luận văn là: “Lập trình mô số thuật toán đồ thị” Nội dung luận văn đƣợc chia thành chƣơng: Chƣơng Kiến thức chuẩn bị Ở chƣơng trình bày tổng quan thuật toán mô thuật toán, số khái niệm đồ thị giới thiệu số toán đồ thị Chƣơng Biểu diễn liệu thiết kế hệ thống Chƣơng này, nói cách biểu diễn liệu chƣơng trình, trình phân tích, thiết kế xây dựng hệ thống mô thuật toán Chƣơng Cài đặt chƣơng trình Trong chƣơng trình bày nhóm thành phần chức theo cấp độ chƣơng trình, tạo giao diện hƣớng dẫn sử dụng chƣơng trình Với đề tài này, hy vọng giảng đồ thị trực quan, dễ hiểu Kết đề tài thể trình tập dƣợt nghiên cứu Mục đích nghiên cứu Mục đích đề tài là: - Nghiên cứu thuật toán đồ thị - Tìm hiểu Phân tích Thiết kế hệ thống, Kỹ thuật lập trình - Sử dụng ngôn ngữ lập trình để triển khai xây dựng chƣơng trình mô thuật toán đồ thị Nhiệm vụ nghiên cứu Tìm hiểu thuật toán đồ thị Xây dựng chƣơng trình mô thuật toán đồ thị Đối tƣợng phạm vi nghiên cứu 4.1 Đối tƣợng nghiên cứu - Đồ thị hữu hạn - Các kỹ thuật lập trình 4.2 Phạm vi nghiên cứu - Tìm hiểu thuật toán đồ thị: Thuật toán duyệt đồ thị; thuật toán tìm luồng cực đại Ford–Fulkerson; thuật toán tô màu đồ thị Welsh–Powell - Cài đặt chƣơng trình phần mềm mô thuật toán Phƣơng pháp nghiên cứu - Nghiên cứu lí thuyết - Triển khai cài đặt chƣơng trình: + Thiết kế thuật toán đồ thị Biểu diễn liệu + Viết chƣơng trình mô thuật toán đồ thị + Chạy thử nghiệm lƣu trữ kết đạt đƣợc, đánh giá lại kết Kết đạt đƣợc Xây dựng đƣợc chƣơng trình mô trình thực thuật toán nói Góp phần giúp cho việc giảng dạy thuật toán cách dễ hiểu trực quan 38 chức liệu cho phức tạp, thời gian giảng dạy lớp có hạn, tài liệu tham khảo tự học, tự đọc ít, … làm cho ngƣời dạy gặp nhiều khó khăn việc truyền đạt thuật toán đồ thị Để giúp học sinh tự chuẩn bị trƣớc thuật toán nhà giúp giáo viên làm rõ thắc mắc học sinh thuật toán cải tiến làm giảm độ phức tạp thuật toán cần phải có thêm công cụ giúp làm hiệu cho công việc chuẩn bị học sinh nhƣ dẫn giải giáo viên giảng Chƣơng trình mô hƣớng tới mục tiêu Mô cách có hệ thống thuật toán đồ thị mà học sinh chuyên học sinh giỏi Tin học học Đó thuật toán: DFS, BFS, Ford– Fulkerson Welsh–Powell 2.2.3 Đề xuất cho hệ thống Hệ thống cho phép ngƣời dùng quan sát hoạt động thuật toán đồng thời liệu mẫu, đoạn giả mã thuật toán Hệ thống cho phép chạy toàn thuật toán, chạy bƣớc, xem lịch sử thuật toán, điều chỉnh tốc độ thuật toán để tiện quan sát thay đổi đoạn giả mã liệu mẫu Hệ thống cho phép ngƣời học đƣa liệu vào theo thuật toán mà ngƣời học lựa chọn 2.2.4 Thiết kế mô số thuật toán đồ thị Mô hình đƣợc áp dụng cho chƣơng trình mô luận văn mô hình thác nƣớc Các bƣớc phân tích thiết kế gồm: 39 Hình 2.1 Quy trình phân tích thiết kế nhiệm vụ trƣớc mô Nghiên cứu phân tích giải thuật: Bƣớc trình giải toán Tin học xác định toán Ở bƣớc này, dựa phát biểu toán đặt ta phải xác định rõ Input Output toán mối quan hệ chúng Bài toán đặt đƣợc mô-đun hóa nhƣ sau: Mô số thuật toán đồ thị Thuật toán DFS Thuật toán BFS Thuật toán FordFulkerson Thuật toán Welsh–Powell Hình 2.2 Mô-đun mô số thuật toán đồ thị 40 Các mô-đun thuật toán rõ ràng, việc phân tích lựa chọn ngôn ngữ lập trình thích hợp cần đƣợc nghiên cứu cách cẩn thận để đảm bảo tính đắn tính đơn giản giải thuật Xây dựng mô hình mô liệu vào kết đầu ra: Mô liệu vào cách chọn hình thức hiển thị cho cấu trúc liệu tƣơng ứng với giải thuật Việc lựa chọn mô hình mô cho liệu vào định tính hiệu chƣơng trình mô Với chƣơng trình mô số thuật toán đồ thị, liệu vào đồ thị bao gồm tập đỉnh cạnh nối với Ta thể đỉnh hình tròn màu xanh, có tên đỉnh số Cạnh nối hai đỉnh đồ thị đƣờng thẳng (nếu có trọng số trọng số nằm đƣờng thẳng vị trí hai đỉnh) Nhƣ vậy, đồ đƣợc xây dựng trực quan ngƣời học quan sát dễ dàng thay đổi đồ thị thực bƣớc giải thuật Tách giải thuật mô thành nhiều bước nhỏ: Việc chia trình thực thuật toán thành nhiều bƣớc nhỏ có ý nghĩa việc lập trình Nó làm cho thuật toán ban đầu trở nên đơn giản, rõ ràng dễ hiểu Tổng hợp bước mô thành giải thuật hoàn chỉnh kiểm nghiệm giải thuật cách quan sát liệu bước nhỏ: Sau mô bƣớc thuật toán ta tiến hành ghép bƣớc mô lại để đƣợc mô hình mô hoàn chỉnh: thao tác đƣa liệu vào, tiến hành chạy theo bƣớc, quan sát thay đổi cấu trúc liệu sau bƣớc quan sát kết cuối thuật toán chạy xong Mô hình toán mô số thuật toán đồ thị đƣợc biểu diễn sơ đồ sau đây: 41 Hình 2.3 Mô hình toán mô thuật toán 2.3 Lựa chọn công cụ, ngôn ngữ lập trình Có ba cách tiếp cận để xây dựng hệ thống mô thuật toán Cách tiếp cận thứ lựa chọn hệ thống mô thuật toán cung cấp công cụ chung để xây dựng thành phần tƣơng tác cho hệ thống mô (sử dụng lại tài nguyên sẵn có) Cách tiếp cận thứ hai lựa chọn chƣơng trình mô thuật toán có (dạng open source), sửa đổi, nâng cấp thành hệ thống Cách tiếp cận cuối phân tích thiết kế hệ thống từ đầu Đối với luận văn lựa chọn cách tiếp cận thứ ba sử dụng ngôn ngữ lập trình Java để xây dựng chƣơng trình Java gì? Java ngôn ngữ lập trình hƣớng đối tƣợng (tự C  ) Sun Microsystem đƣa vào thập niên 90 Chƣơng trình viết ngôn ngữ lập trình Java chạy 42 hệ thống có cài máy ảo java (Java Virtual Machine) Một số đặc điểm bật Java Máy ảo Java (JVM - Java Virtual Machine): Tất chƣơng trình muốn thực thi đƣợc phải đƣợc biên dịch mã máy Mã máy kiến trúc CPU máy tính khác (tập lệnh mã máy CPU Intel, CPU Solarix, CPU Macintosh … khác nhau), trƣớc chƣơng trình sau đƣợc biên dịch xong chạy đƣợc kiến trúc CPU cụ thể Đối với CPU Intel chạy hệ điều hành nhƣ Microsoft Windows, Unix, Linux, OS/2, … Chƣơng trình thực thi đƣợc Windows đƣợc biên dịch dƣới dạng file có đuôi EXE Linux đƣợc biên dịch dƣới dạng file có đuôi ELF, trƣớc chƣơng trình chạy đƣợc Windows muốn chạy đƣợc hệ điều hành khác nhƣ Linux chẳng hạn phải chỉnh sửa biên dịch lại Ngôn ngữ lập trình Java đời, nhờ vào máy ảo Java mà khó khăn nêu đƣợc khắc phục Một chƣơng trình viết ngôn ngữ lập trình Java đƣợc biên dịch mã máy ảo java (mã java bytecode) Sau máy ảo java chịu trách nhiệm chuyển mã java bytecode thành mã máy tƣơng ứng Sun Microsystem chịu trách nhiệm phát triển máy ảo Java chạy hệ điều hành kiến trúc CPU khác Thông dịch: Java ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chƣơng trình nguồn viết ngôn ngữ lập trình Java có đuôi *.java đƣợc biên dịch thành tập tin có đuôi *.class sau đƣợc trình thông dịch thông dịch thành mã máy Độc lập nền: Một chƣơng trình viết ngôn ngữ Java chạy nhiều máy tính có hệ điều hành khác (Windows, Unix,Linux, …) có cài đặt máy ảo java (Java Virtual Machine) Viết lần 43 chạy nơi (write once run anywhere) Hướng đối tượng: Hƣớng đối tƣợng Java tƣơng tự nhƣ C  nhƣng Java ngôn ngữ lập trình hƣớng đối tƣợng hoàn toàn Tất thứ đề cập đến Java liên quan đến đối tƣợng đƣợc định nghĩa trƣớc, chí hàm chƣơng trình viết Java (đó hàm main) phải đặt bên lớp Hƣớng đối tƣợng Java tính đa kế thừa (multi inheritance) nhƣ C  mà thay vào Java đƣa khái niệm interface để hỗ trợ tính đa kế thừa Đa nhiệm - đa luồng (MultiTasking - Multithreading): Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiến trình chạy song song thời điểm tƣơng tác với Khả chuyển (portable): Chƣơng trình ứng dụng viết ngôn ngữ Java cần chạy đƣợc máy ảo Java chạy đƣợc máy tính, hệ điều hành có máy ảo Java “Viết lần, chạy nơi” (Write Once, Run Anywhere) Hỗ trợ mạnh cho việc phát triển ứng dụng: Java cung cấp nhiều công cụ, thƣ viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác 44 Chƣơng CÀI ĐẶT CHƢƠNG TRÌNH 3.1 Hệ thống phân cấp mô-đun Bài toán “Mô số thuật toán đồ thị” mô-đun chƣơng trình đƣợc chia nhỏ thành mô-đun con: thuật toán DFS, thuật toán BFS, thuật toán Ford–Fulkerson, thuật toán Welsh–Powell Mô-đun thuật toán DFS: Mô thuật toán tìm kiếm theo chiều sâu đồ thị G  V , E  vô hƣớng có hƣớng liên thông không liên thông Mô thuật toán DFS DFS có hƣớng Liên thông DFS vô hƣớng Không liên thông Liên thông Không liên thông Hình 3.1 Mô-đun mô thuật toán DFS Mô-đun thuật toán BFS: Tƣơng tự nhƣ mô thuật toán DFS ta có sơ đồ sau: Mô thuật toán BFS BFS có hƣớng Liên thông Không liên thông BFS vô hƣớng Liên thông Hình 3.2 Mô-đun mô thuật toán BFS Không liên thông 45 Mô-đun thuật toán Ford–Fulkerson: Mô thuật toán tìm luồng cực đại mạng vận tải nguyên với đỉnh nguồn (đỉnh phát) đỉnh đích (đỉnh thu) chƣơng trình mặc định ngƣời dùng tự định Mô-đun thuật toán Welsh–Powell: Mô thuật toán tô màu đồ thị vô hƣớng G  V , E  liên thông không liên thông Thuật toán Welsh–Powell Đồ thị liên thông Đồ thị không liên thông Hình 3.3 Mô-đun mô thuật toán Welsh–Powell 3.2 Tạo giao diện ngƣời dùng Hình 3.4 Giao diện chƣơng trình Giao diện chƣơng trình gồm có phần chính: Phần tạo đồ thị, phần trạng thái phần giả mã Tại khung tạo đồ thị: Cho phép ngƣời dùng nhập số đỉnh, tạo ma trận tự động, tạo ma trận trống để ngƣời dùng tạo đồ thị theo ý muốn chuột, tự điều chỉnh đồ thị ma trận kề lựa chọn loại đồ thị 46 vô hƣớng có hƣớng để mô thuật toán Tại khung trạng thái: + Hiển thị đồ thị theo lựa chọn khung tạo đồ thị: Hình ảnh đồ thị thay đổi theo bƣớc thuật toán thực qua Các đỉnh đƣợc thăm qua đƣợc đánh dấu màu xanh tô màu đỏ, đồng thời tô màu đƣờng để ngƣời học quan sát kết cách trực quan thuật toán + Điều chỉnh tốc độ chạy thuật toán cho đối tƣợng ngƣời học + Xem lại lịch sử trình chạy thuật toán + Ghi nhận hiển thị thay đổi tập đỉnh đƣợc thăm, đỉnh đƣợc xét, đỉnh chờ xét … Tại khung giả mã: Chứa đoạn giả mã thuật toán tƣơng ứng với lựa chọn ngƣời dùng Thuật toán thực đến bƣớc bƣớc đổi màu cho ngƣời dùng tiện quan sát 3.2.1 Mô thuật toán tìm kiếm DFS BFS Chúng tập trung vào trƣờng hợp đồ thị có hƣớng đồ thị vô hƣớng Lúc xảy trƣờng hợp sau: Hình 3.5 Mô thuật toán BFS đồ thị có hƣớng liên thông 47 Hình 3.6 Mô thuật toán BFS đồ thị có hƣớng không liên thông Hình 3.7 Mô thuật toán DFS đồ thị vô hƣớng liên thông Hình 3.8 Mô thuật toán DFS đồ thị vô hƣớng không liên thông 48 Chạy thử chƣơng trình kết chƣơng trình chạy mô đƣợc trực quan thuật toán 3.2.2 Thuật toán tìm luồng cực đại Ford–Fulkerson Thuật toán áp dụng mạng vận tải có tính chất đồ thị có hƣớng, có đỉnh S cung vào đỉnh t cung ra, khả thông qua cung số nguyên dƣơng (mạng vận tải nguyên dƣơng) Khi chạy chƣơng trình cho thấy mô thuật toán với tƣ tƣởng thuật toán Hình 3.9 Thuật toán Ford – Fulkerson với đỉnh nguồn 6, đỉnh đích 3.2.3 Thuật toán tô màu Welsh–Powell Tƣơng tự nhƣ thuật toán duyệt đồ thị, thuật toán Welsh– Powell áp dụng cho hai trƣờng hợp đồ liên thông đồ thị không liên thông 49 Hình 3.10 Thuật toán Welsh–Powell với đồ thị liên thông Hình 3.11 Thuật toán Welsh–Powell với đồ thị không liên thông Nhận thấy hai trƣờng hợp đỉnh đƣợc tô màu thoả mãn điều kiện đỉnh kề không đƣợc trùng màu chƣơng trình mô theo yêu cầu thuật toán 3.3 Hƣớng dẫn sử dụng chƣơng trình Để sử dụng toàn mã nguồn chƣơng trình ngƣời dùng cần có cài đặt: - Netbeans 8.0 để mở Project 50 - JDK (jre) 1.7 để chạy chƣơng trình Trong trƣờng hợp ngƣời dùng cần chƣơng trình chạy máy tính cần cài đặt JDK chép thƣ mục runProgram vào máy chạy file GraphSimulator1.jar 51 KẾT LUẬN Những kết đạt đƣợc Trải qua trình làm việc nghiêm túc, bƣớc đầu thu đƣợc số kết sau: Có đƣợc kiến thức tổng quan lí thuyết đồ thị, thuật toán đồ thị, kỹ thuật phân tích thiết kế hệ thống, kỹ thuật lập trình Đề xuất giải pháp xây dựng mô hình mô mới, có hệ thống thuật toán phức tạp Đây chƣơng trình phù hợp với công việc giảng dạy giáo viên nhƣ việc tự học, tự tìm hiểu kiến thức học sinh Xây dựng đƣợc chƣơng trình mô đƣợc trình thực thuật toán đồ thị gồm: - Thuật toán tìm kiếm theo chiều sâu DFS - Thuật toán tìm kiếm theo chiều rộng BFS - Thuật toán tìm luồng cực đại Ford–Fulkerson - Thuật toán tô màu đồ thị Welsh–Powell Hƣớng phát triển Triển khai chƣơng trình tới ngƣời học để ghi nhận tiến mặt hiểu chất cách thức hoạt động thuật toán Chuẩn hoá phần mềm để xây dựng hệ thống mô tất thuật toán đồ thị chƣơng trình bồi dƣỡng học sinh giỏi trung học phổ thông 52 DANH MỤC CÁC TÀI LIỆU THAM KHẢO [1] Hồ Sĩ Đàm – Trần Đỗ Hùng (2006), Chuyên đề bồi dưỡng học sinh giỏi tin học trung học phổ thông: Ứng dụng lí thuyết đồ thị, NXB Giáo dục, Công ty cổ phần in Sách giáo khoa TP-Hà Nội [2] Hồ Sĩ Đàm (Chủ biên) (2009), Tài liệu giáo khoa chuyên Tin, NXB Giáo dục Việt Nam [3] Lƣu Nguyễn Tất Đạt (2008), Teach yourself Java tập 1+2, NXB Hồng Đức [4] Lê Minh Hoàng (1999-2004), Bài giảng chuyên đề: Giải thuật lập trình, Đại học Sƣ phạm Hà Nội [5] Nguyễn Xuân Huy (2010), Sáng tạo thuật toán lập trình, Tủ sách tri thức Duy Tân [6] Nguyễn Đức Nghĩa - Nguyễn Tô Thành (2003), Toán rời rạc, NXB Đại học Quốc gia Hà Nội [7] Nguyễn Xuân My (chủ biên), Một số vấn đề chọn lọc Tin học (T1+T2), NXB Giáo dục [8] Trần Thông Quế (2012), Lý thuyết đồ thị, NXB Giáo dục Việt Nam, Công ty cổ phần In Phú Thọ [9] Hoàng Chí Thành (2007), Đồ thị thuật toán, NXB Giáo dục, Công ty in Thƣơng mại TIXVN [10] Ngô Đắc Tân (2003), Lý thuyết tổ hợp đồ thị, NXB Đại học Quốc Gia Hà Nội
- Xem thêm -

Xem thêm: Lập trình mô phỏng một số thuật toán trên đồ thị, Lập trình mô phỏng một số thuật toán trên đồ thị, Lập trình mô phỏng một số thuật toán trên đồ thị

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập