Mô phỏng thuật toán bằng đồ thị

82 1K 0
Mô phỏng thuật toán bằng đồ thị

Đ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

LỜI CAM ĐOAN Tôi xin cam đoan, kết quả luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS. Hồ Cẩm Hà. Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ. Học viên Nguyễn Thị Chinh Trang 3 LỜI CẢM ƠN Trước hết, tôi muốn gửi lời cảm đến các Thầy, Cô trong khoa Công nghệ thông tin- Trường Đại học Công nghệ - Đại học Quốc gia Hà nội đã truyền đạt các kiến thức quý báu cho tôi trong suốt thời gian học tập tại trường. Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc tới cô giáo hướng dẫn TS Hồ Cẩm Hà, người đã tận tình chỉ bảo và hướng dẫn về mặt chuyên môn cho tôi trong suốt quá trình thực hiện luận văn này. Cũng qua đây, tôi xin gửi lời cảm ơn đến Ban Giám hiệu trường THPT Chuyên Đại học Sư phạm Hà Nội, nơi tôi đang công tác đã tạo mọi điều kiện thuận lợi cho tôi trong thời gian học tập cũng như trong suốt quá trình thực hiện luận văn tốt nghiệp. Cuối cùng, tôi xin cảm ơn gia đình, bạn bè, đồng nghiệp đã luôn ủng hộ, động viên tôi rất nhiều để tôi yên tâm nghiên cứu và hoàn thành luận văn. Trong suốt quá trình làm luận văn, bản thân tôi đã cố gắng tập trung tìm hiểu, nghiên cứu và tham khảo thêm nhiều tài liệu liên quan. Tuy nhiên, do thời gian hạn chế và bản thân còn chưa có nhiều kinh nghiệm trong nghiên cứu khoa học, chắc chắn bản luận văn vẫn còn nhiều thiếu sót. Tôi rất mong được nhận sự chỉ bảo của các Thầy Cô giáo và các góp ý của bạn bè, đồng nghiệp để luận văn được hoàn thiện hơn. Hà Nội, ngày 12 tháng 06 năm 2011 Nguyễn Thị Chinh Trang 4 MỤC LỤC LỜI NÓI ĐẦU 7 Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN 9 1. Khái niệm bài toán Tin học 9 2. Khái niệm thuật toán 9 3. Các tính chất của thuật toán 10 4. Độ phức tạp và xác định độ phức tạp của thuật toán 11 5. Chi phí thực hiện thuật toán 15 6. Ba bài toán trên mô hình đồ thị được đưa vào giảng dạy trong trường Trung học Phổ thông Chuyên 15 6.1. Một số khái niệm cơ bản về đồ thị 15 6.1.1. Khái niệm đồ thị (Graph) 15 6.1.2. Các khái niệm cơ bản 16 6.2. Bài toán tìm kiếm trên đồ thị 18 6.2.1. Phát biểu bài toán 18 6.2.2. Giới thiệu thuật toán tìm kiếm DFS và BFS 19 6.2.3. Độ phức tạp tính toán của thuật toán DFS và BFS 21 6.3. Bài toán tìm đường đi ngắn nhất trên đồ thị có trọng số 21 6.3.1. Phát biểu bài toán 21 6.3.2. Giới thiệu thuật toán Ford - Bellman 22 6.2.3. Giới thiệu thuật toán thuật toán Dijkstra 23 6.3.4. Độ phức tạp 25 6.4. Các thuật toán tìm kiếm trên cây khung 25 6.4.1. Bài toán cây khung 25 6.4.2. Giới thiệu thuật toán Prim 26 6.4.3. Giới thiệu thuật toán Kruskal 27 6.4.5. Độ phức tạp 28 6.5. Bài toán tìm chu trình Hamilton qua tất cả các đỉnh của đồ thị 29 6.5.1. Phát biểu bài toán 29 6.5.2. Giới thiệu thuật toán tìm chu trình Hamilton: 30 Chương 2 MÔ PHỎNG THUẬT TOÁN 31 1. Khái niệm và chức năng của mô phỏng 31 2. Lịch sử của mô phỏng thuật toán 32 3. Hiệu quả của mô phỏng thuật toán trong giảng dạy 34 4. Một số yêu cầu đối với mô phỏng thuật toán 38 4.1. Mô phỏng đúng theo thuật toán 38 4.2. Cho phép thực hiện theo từng bước 38 4.3. Mô phỏng thuật toán phải có tính động 38 4.4. Có thể thực thi với mọi bộ dữ liệu đầu vào 40 4.5. Có sự phân cấp người học 40 5. Quy trình mô phỏng thuật toán 40 5.1. Nghiên cứu và phân tích giải thuật 40 5.2. Mô phỏng dữ liệu vào và kết quả đầu ra 41 5.3. Chia thuật toán thành nhiều bước nhỏ rồi mô phỏng theo từng bước 42 5.4. Tổng hợp mô phỏng theo các bước 44 5.5. Sơ đồ cấu trúc chung của hệ thống mô phỏng 44 Trang 5 6. Đề xuất lựa chọn công cụ để phát triển chương trình mô phỏng thuật toán 45 6.1. Một số hệ thống mô phỏng thuật toán chung 46 6.2. Sử dụng công cụ mô phỏng thuật toán riêng biệt 50 6.3. Xây dựng hệ thống từ đầu 51 Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG MÔ PHỎNG MỘT SỐ THUẬT TOÁN TRÊN ĐỒ THỊ 52 1. Mục đích 52 2. Những yêu cầu thực tế 52 3. Đề xuất cho hệ thống mới 53 4. Thiết kế hệ thống mô phỏng một số thuật toán trên đồ thị 54 4.1. Lựa chọn công cụ lập trình 55 4.2. Chức năng mô phỏng của các thuật toán được cài đặt 57 4.2.1 Mô phỏng thuật toán tìm kiếm 57 4.2.2. Mô phỏng thuật toán Dijkstra 59 4.2.3. Mô phỏng thuật toán Ford – Bellman 61 4.2.4. Mô phỏng thuật toán Prim 61 4.2.5. Mô phỏng thuật toán Kruskal 63 4.2.6. Thuật toán tìm chu trình Hamilton 64 5. Giới thiệu chương trình 64 5.1. Tổng quan về hệ thống 64 5.1.1. Các đối tượng xây dựng cấu trúc đồ thị 65 5.1.2. Công cụ vẽ hình ảnh để mô phỏng 68 5.1.3.Chức năng chi tiết của các công cụ hỗ trợ cho quá trình mô phỏng 68 5.2. Giới thiệu các công cụ hỗ trợ mô phỏng do người dùng cài đặt 69 Chương 4 KẾT LUẬN 78 1. Những kết quả đạt được 78 2. Hướng phát triển 79 DANH MỤC TÀI LIỆU THAM KHẢO 80 PHỤ LỤC 82 Trang 6 LỜI NÓI ĐẦU Cách đây gần ba thập kỉ (khoảng những năm 80 của thế kỉ XX), ở nhiều nước trên thế giới mô phỏng thuật toán đã được sử dụng trong việc giảng dạy các môn Khoa học máy tính như một công cụ hữu hiệu để mô tả thuật toán một cách trực quan, khoa học. Không những vậy nó còn cho người học biết chi tiết từng bước hoạt động của thuật toán cùng với cấu trúc dữ liệu đi kèm thông qua việc mô tả bằng đồ họa. Những năm gần đây, ở Việt Nam môn Tin học đã được đưa vào chương trình của học sinh trung học phổ thông như là một môn học chính thức. Tuy nhiên trên thực tế, một số trường chuyên trên cả nước đã tuyển sinh học sinh chuyên Tin từ cuối những năm 80 của thế kỉ XX. Những học sinh này cần nắm chắc kiến thức cơ bản về Tin học như: các cấu trúc dữ liệu trừu tượng: stack, queue, cây, cây nhị phân, cây nhị phân tìm kiếm, các chiến lược thiết kế thuật toán: tham lam, quay lui, quy hoạch động… Trong đó, lý thuyết về đồ thị và thuật toán trên đồ thị là một lĩnh vực rộng và phức tạp. Việc hiểu và cài đặt tốt các thuật toán đó đòi hỏi thời gian và công sức rất lớn. Hiện nay, việc truyền đạt các thuật toán trên đồ thị cho học sinh chuyên Tin gặp rất nhiều khó khăn. Có nhiều rất nhiều lý do: Các thuật toán đó khó hình dung, việc tổ chức dữ liệu cho nó cũng phức tạp, thời gian giảng dạy trên lớp có hạn, tài liệu tham khảo có thể tự đọc, tự học vẫn còn ít…. Trong khuôn khổ đề tài này, chúng tôi xây dựng một chương trình nhằm mô phỏng hoạt động của ba thuật toán giải ba bài toán cơ bản trên đồ thị theo phân phối chương trình của Bộ Giáo dục với hai mục đích: để học sinh có thể dễ dàng nắm bắt tư tưởng cũng như từng bước hoạt động cụ thể của các thuật toán, để giáo viên có thể làm cho bài giảng về các thuật toán này trở nên dễ hiểu, dễ tiếp thu hơn. Nội dung luận văn được chia thành 3 chương: Trang 7 Chương I. Những kiến thức cơ bản về thuật toán. Ở chương này, chúng tôi trích nêu khái niệm về bài toán và thuật toán. Các tính chất của thuật toán, xác định độ phức tạp của thuật toán…Cuối cùng, chúng tôi giới thiệu ba thuật toán quan trọng trên đồ thị mà học sinh THPT sẽ được học. Chương II. Mô phỏng thuật toán. Chương này chúng tôi trình bày khái niệm mô phỏng, các chức năng của mô phỏng và các vấn đề liên quan như: lịch sử mô phỏng, nghiên cứu về hiệu quả của nó trong giảng dạy và một số yêu cầu đối với việc mô phỏng thuật toán nói chung. Chương III. Phân tích thiết kế hệ thống mô phỏng một số thuật toán trên đồ thị. Ở chương 3, chúng tôi trình bày về quá trình phân tích, thiết kế và xây dựng hệ thống mô phỏng trên ba thuật toán: thuật toán tìm kiếm (tìm kiếm theo chiều sâu và tìm kiếm theo chiều rộng), thuật toán tìm đường đi ngắn nhất (thuật toán Dijsktra) và thuật toán tìm cây khung cực tiểu trên đồ thị vô hướng có trọng số (thuật toán Prim)… Trang 8 Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN 1. Khái niệm bài toán Tin học Trong phạm vi tin học, người ta quan niệm bài toán là một công việc nào đó mà con người muốn máy tính thực hiện. [xem 1] Khi dùng máy tính để giải bài toán, ta cần quan tâm tới 2 vấn đề: Dữ liệu cần được đưa vào máy tính (Input) là gì và cần lấy ra (Output) thông tin gì? Nói một cách khác, cho một bài toán là việc mô tả rõ Input và Output của bài toán. Vấn đề còn lại là: Làm thế nào để từ Input ta có được Output? 2. Khái niệm thuật toán Khác với Toán học (các yêu cầu của bài toán thường là chứng minh sự tồn tại đáp án chứ không yêu cầu tìm một cách chi tiết để tìm ra đáp án đó), giải một bài toán Tin học là việc đi tìm một lời giải cụ thể, tường minh để đưa ra Output của bài toán dựa trên Input đã cho. Việc chỉ ra một cách tìm Output của bài toán được gọi là một thuật toán. Có nhiều cách phát biểu khái niệm về thuật toán. Dưới đây là cách phát biểu được chọn để đưa vào sách giáo khoa Tin học phổ thông: Khái niệm về thuật toán: thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự nhất định để sau khi thực hiện dãy các thao tác đó, từ input ta có output cần tìm [xem 1]. Trong lĩnh vực máy tính, cụm từ “thuật toán” đôi khi người ta dùng bằng một từ khác: “giải thuật”. Ví dụ về một thuật toán: Nhập vào một số nguyên dương N, kiểm tra số đó có là số nguyên tố hay không? Lời giải: Input: Số nguyên dương N. Trang 9 Output: Có/không tương ứng với N có là nguyên tố hay không? Ý tưởng: Một số nguyên gọi là nguyên tố khi nó chỉ có ước là 1 và chính nó. Từ định nghĩa suy ra: - Nếu N = 1 thì thông báo là N không nguyên tố rồi kết thúc; - Nếu 1< N < 4 thì thông báo N là số nguyên tố rồi kết thúc; - Nếu N ≥ 4 và không có ước trong khoảng từ 2 đến ][ N thì N là nguyên tố. Thuật toán: Có nhiều cách mô phỏng khác nhau. Dưới đây là cách mô phỏng thuật toán dạng liệt kê các bước: Bước 1. Nhập số nguyên dương N; Bước 2. Nếu N = 1 thì thông báo là N không nguyên tố rồi kết thúc; Bước 3. Nếu N < 4 thì thông báo N là số nguyên tố rồi kết thúc; Bước 4. i ← 2; Bước 5. Nếu (*) ][ Ni > thì thông báo N là nguyên tố rồi kết thúc; Bước 6. Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc; Bước 7. i ← i + 1 rồi quay lại bước 5; 3. Các tính chất của thuật toán Dựa trên khái niệm về thuật toán và ví dụ ở trên ta thấy các thao tác trong thuật toán phải được mô tả đủ chi tiết để một đối tượng cứ tiến hành thực hiện theo đúng thứ tự các thao tác đó là có thể cho ra output dựa trên input tương ứng. Một thuật toán phải đảm bảo được các tính chất sau: Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để thực hiện tiếp theo. Trang 10 Tính đúng đắn: Sau khi thực hiện thuật toán ta phải nhận được đúng Output cần tìm. Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện. Tính tổng quát: Thuật toán là đúng đắn với mọi bộ dữ liệu đầu vào của bài toán. Tính hiệu quả: - Hiệu quả về thời gian: Ta quan tâm tới thời gian cần thiết để thực hiện xong thuật toán đó. Thời gian đó phải nằm trong giới hạn cho phép. - Hiệu quả về không gian: Dung lượng bộ nhớ cần thiết để lưu trữ các đối tượng như bộ Input, bộ Output, kết quả trung gian và chương trình được dùng để thực hiện thuật toán. - Dễ cài đặt: thuật toán đó liệu có chuyển được thành chương trình bằng một ngôn ngữ lập trình nào đó hay không. Trước khi xây dựng thuật toán cho một bài toán nào đó, trước tiên phải xác định được Input và Output là gì, thử trên một số ví dụ cụ thể để định hướng cho việc xây dựng thuật toán. [xem 1] 4. Độ phức tạp và xác định độ phức tạp của thuật toán Một thuật toán chỉ có thể giải một bài toán, nhưng một bài toán có thể giải bằng nhiều thuật toán khác nhau. Làm thế nào để lựa chọn một thuật toán tốt để giải một bài toán đã cho? Tất nhiên, người lập trình thường chọn thuật toán dễ hiểu, dễ cài đặt. Theo đó, chương trình viết ra ít có khả năng có lỗi, việc nâng cấp chương trình dễ dàng và nhiều người có thể thực hiện được. Nhưng nếu hiệu quả của thuật toán (về mặt thời gian và không gian nhớ) là yêu cầu quan trọng thì cần chọn một thuật toán chạy nhanh và sử dụng tài nguyên có sẵn một cách hiệu quả. Như vậy dựa vào đâu để có thể kết luận thuật toán này “nhanh” hơn thuật toán kia? Trang 11 Có một cách để biết được thuật toán nào nhanh hơn bằng cách viết các chương trình bằng cùng một ngôn ngữ lập trình cho các thuật toán rồi so sánh trên các bộ Input giống nhau trên cùng một hệ thống để kết luận thuật toán nào nhanh, thuật toán nào chậm. Tuy nhiên cách này không chính xác và tốn nhiều thời gian. Một cách khác để đánh giá thuật toán là dựa vào tiêu chí mỗi câu lệnh của chương trình nguồn sẽ thực hiện bao nhiêu lần trên một tập dữ liệu vào. Việc đánh giá đó không chỉ đánh giá, so sánh trong việc lựa chọn thuật toán mà còn có thể hiệu chỉnh, cải tiến thuật toán đã có tốt hơn. Khi đánh giá thời gian thực hiện thuật toán ta chú ý đặc biệt đến các phép toán mà số lần thực hiện không ít hơn các phép toán khác – ta gọi là phép toán tích cực của thuật toán. Cách đánh giá thời gian thực hiện thuật toán độc lập với hệ thống máy tính dẫn đến khái niệm về Độ phức tạp của thuật toán. Thời gian thực hiện một thuật toán bằng chương trình máy tính phụ thuộc vào rất nhiều yếu tố. Một yếu tố cần chú ý nhất đó là kích thước của dữ liệu đầu vào. Dữ liệu càng lớn thì thời gian xử lý càng chậm. Nếu gọi n là kích thước dữ liệu đưa vào thì thời gian thực hiện của một thuật toán có thể biểu diễn một cách tương đối như một hàm của n: T(n). Thực tế, T(n) không những chỉ phụ thuộc vào kích thước n mà còn phụ thuộc vào đặc tính, tình trạng thực tế của bộ dữ liệu đầu vào. Ví dụ, với thuật toán sắp xếp dãy số đã cho thành dãy tăng dần thì thời gian sắp xếp còn phụ thuộc vào dãy đầu vào đã là dãy tăng dần, dãy được sinh ngẫu nhiên hay được sắp xếp theo thứ tự ngược lại. Vì thế cần phải xem xét các trường hợp tốt nhất, trung bình và xấu nhất. [Xem 2] Việc xác định độ phức tạp của một thuật toán bất kỳ có thể rất phức tạp. Tuy nhiên, trong thực tế, đối với một số thuật toán ta có thể phân tích bằng một số quy tắc đơn giản: 4.1. Quy tắc max Trang 12 [...]... 4 Một số yêu cầu đối với mô phỏng thuật toán 4.1 Mô phỏng đúng theo thuật toán Để mô phỏng một thuật toán nào đó, các bước thực hiện chỉ dẫn trên đồ họa phải phản ánh đúng theo nội dung của thuật toán đã đưa ra để đảm bảo rằng người học học đúng thuật toán mình yêu cầu 4.2 Cho phép thực hiện theo từng bước Thông thường, khi học một thuật toán phải dùng đến chương trình mô phỏng để minh họa trong lúc... nhỏ nhất của đồ thị, và bài toán đó gọi là bài toán xây dựng cây khung nhỏ nhất Dưới đây ta sẽ xét một trong hai thuật toán thông dụng để giải bài toán cây khung nhỏ nhất của đơn đồ thị vô hướng có trọng số 6.4.2 Giới thiệu thuật toán Prim Một trong hai thuật toán quan trọng để giải bài toán tìm cây khung nhỏ nhất là thuật toán Prim Thuật toán đó có thể phát biểu hình thức như sau: Đơn đồ thị vô hướng... đổi đồng thời ở từng bước bằng đồ hoạ Ta có thể quan sát bằng hình vẽ dưới đây: Trang 31 Hình 1 Mô phỏng một bước hoạt động của thuật toán Bên cạnh việc giúp người dùng hiểu rõ thuật toán, mô phỏng thuật toán cũng có thể dùng để gỡ lỗi chương trình một cách dễ dàng hơn Để sử dụng mô phỏng thuật toán trong việc gỡ lỗi, người dùng ghi chú các trạng thái thực trên chương trình của họ để đưa ra các lệnh mô. .. đỉnh của V Một số hình ảnh của đồ thị: Đồ thị vô hướng Đồ thị có hướng 6.1.2 Các khái niệm cơ bản Có thể phân loại đồ thị theo đặc tính và số lượng của tập các cạnh E: Cho đồ thị G = (V, E) Ta có một số khái niệm sau [xem 3- tập 1]: Đơn đồ thị: G được gọi là đơn đồ thị nếu giữa hai đỉnh u, v của V có nhiều nhất là 1 cạnh trong E nối từ u tới v Đa đồ thị: G được gọi là đa đồ thị nếu giữa hai đỉnh u, v của... Vấn đề này đưa về một bài toán liệt kê mà yêu cầu của nó là không được bỏ sót hay lặp lại bất kỳ đỉnh nào Vì vậy, cần phải xây dựng những thuật toán cho phép duyệt một cách hệ thống các đỉnh, những thuật toán như vậy gọi là những thuật toán tìm kiếm trên đồ thị Trong lý thuyết đồ thị, người ta quan tâm đến hai thuật toán cơ bản nhất: thuật toán tìm kiếm theo chiều sâu và thuật toán tìm kiếm theo chiều... phép thực thi các thuật toán song song Leonardo là hệ thống mô phỏng các chương trình C Nó tích hợp phát triển với mô phỏng của các chương trình C vào cùng một môi trường CATAI mô phỏng các chương trình C++ Nó dựa trên kĩ thuật đối tượng phân phối và cho phép nhiều người dùng chia sẻ cùng một mô phỏng thông qua “lớp” ảo Việc giao tiếp và đồng bộ giữa các trạm và thuật toán được mô phỏng được đảm bảo... động của thuật toán Mô phỏng thuật toán sử dụng đồ hoạ để biểu diễn sự thay đổi trạng thái của cấu trúc dữ liệu cho từng bước hoạt động của nó một cách trực quan, khoa học Trong suốt quá trình biểu diễn, người dùng có thể quan sát việc thực thi thuật toán theo từng bước để có thể biết chi tiết về thuật toán cũng như hiểu một cách tường tận về thuật toán đó Ví dụ: Một chương trình mô phỏng thuật toán phân... để dạy về thuật toán BINOMIAL HEAP – một dạng cấu trúc đặc biệt của HEAP Một nhóm tự học thuật toán bằng cách dùng phần mềm mô phỏng, một nhóm học bằng cách đọc sách có các hình vẽ mô tả Kết quả chỉ ra rằng nhóm học qua phần mềm có khả năng cài đặt thuật toán tốt hơn nhóm còn lại (nhưng không phải là tất cả các thành viên đều như vậy) và họ nói rằng nhờ có mô phỏng mà họ có thể hiểu thuật toán nhanh... một thuật toán có độ phức tạp cấp đa thức, người ta thường ký hiệu là O(nk) d) Một thuật toán có cấp là các hàm như 2n, n!, nn được gọi là một thuật toán có độ phức tạp hàm mũ Những thuật toán như vậy trên thực tế thường có tốc độ rất chậm Các thuật toán có cấp là các hàm đa thức hoặc nhỏ hơn hàm đa thức thì thường nhanh hơn các thuật toán hàm mũ Tuy nhiên, khi chọn một thuật toán để giải một bài toán. .. toán sau mỗi bước thực hiện Ngoài ra, chương trình càng hiệu quả hơn nếu nó cho phép quan sát lại các bước đã thực hiện 4.3 Mô phỏng thuật toán phải có tính động Vì công việc của mô phỏng là mô tả sự thay đổi về cấu trúc dữ liệu sau mỗi bước thực hiện của thuật toán nên hình ảnh mô phỏng cấu trúc đó cũng phải thay đổi theo từng bước để người học nắm bắt được ý tưởng của thuật toán Ví dụ: với việc mô . liên quan. Tuy nhiên, do thời gian hạn chế và bản thân còn chưa có nhiều kinh nghiệm trong nghiên cứu khoa học, chắc chắn bản luận văn vẫn còn nhiều thi u sót. Tôi rất mong được nhận sự chỉ. phân tìm kiếm, các chiến lược thi ́t kế thuật toán: tham lam, quay lui, quy hoạch động… Trong đó, lý thuyết về đồ thi và thuật toán trên đồ thi là một lĩnh vực rộng và. thuật toán tìm kiếm trên cây khung 25 6.4.1. Bài toán cây khung 25 6.4.2. Giới thi u thuật toán Prim 26 6.4.3. Giới thi u thuật toán Kruskal 27 6.4.5. Độ phức tạp 28 6.5. Bài toán tìm chu trình

Ngày đăng: 02/07/2014, 21:30

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN

    • 1. Khái niệm bài toán Tin học

    • 2. Khái niệm thuật toán

    • 3. Các tính chất của thuật toán

    • 4. Độ phức tạp và xác định độ phức tạp của thuật toán

    • 5. Chi phí thực hiện thuật toán

    • 6. Ba bài toán trên mô hình đồ thị được đưa vào giảng dạy trong trường Trung học Phổ thông Chuyên

      • 6.1. Một số khái niệm cơ bản về đồ thị

        • 6.1.2. Các khái niệm cơ bản

        • 6.2. Bài toán tìm kiếm trên đồ thị

        • 6.3. Bài toán tìm đường đi ngắn nhất trên đồ thị có trọng số

        • 6.4. Các thuật toán tìm kiếm trên cây khung

        • 6.5. Bài toán tìm chu trình Hamilton qua tất cả các đỉnh của đồ thị

          • 6.5.1. Phát biểu bài toán

          • 6.5.2. Giới thiệu thuật toán tìm chu trình Hamilton:

          • Chương 2 MÔ PHỎNG THUẬT TOÁN

            • 1. Khái niệm và chức năng của mô phỏng

            • 2. Lịch sử của mô phỏng thuật toán

            • 3. Hiệu quả của mô phỏng thuật toán trong giảng dạy

            • 4. Một số yêu cầu đối với mô phỏng thuật toán

              • 4.1. Mô phỏng đúng theo thuật toán

              • 4.2. Cho phép thực hiện theo từng bước

              • 4.3. Mô phỏng thuật toán phải có tính động

              • 4.4. Có thể thực thi với mọi bộ dữ liệu đầu vào

              • 4.5. Có sự phân cấp người học

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

Tài liệu liên quan