intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Nghiên cứu khoa học: Cây 2-3-4 - Lý thuyết và mô phỏng

Chia sẻ: Nguyễn Hồng Hạnh | Ngày: | Loại File: PDF | Số trang:36

56
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đề tài nghiên cứu khoa học "Cây 2-3-4 - Lý thuyết và mô phỏng" được thực hiện nhằm tìm hiểu và đánh giá các thuật toán trên cây 2-3-4, đồng thời xây dựng một phần mềm mô phỏng các thuật toán này nhằm hỗ trợ cho việc học, nghiên cứu và tiến tới dạy các thuật toán trên cây 2-3-4. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Nghiên cứu khoa học: Cây 2-3-4 - Lý thuyết và mô phỏng

Cây 2-3-4 – Lý thuyết và mô phỏng<br /> <br /> Nghiên Cứu Khoa Học<br /> <br /> MỤC LỤC----------------------------------------------------------------------------------1<br /> LỜI MỞ ĐẦU<br /> I.<br /> LÝ DO CHỌN ĐỀ TÀI---------------------------------------------------2<br /> II.<br /> MỤC ĐÍCH NGHIÊN CỨU ĐỀ TÀI-----------------------------------2<br /> III.<br /> NHIỆM VỤ NGHIÊN CỨU ĐỀ TÀI-----------------------------------3<br /> IV. ĐỐI TƢỢNG NGHIÊN CỨU--------------------------------------------3<br /> V.<br /> PHƢƠNG PHÁP NGHIÊN CỨU----------------------------------------3<br /> PHẦN NỘI DUNG-------------------------------------------------------------------------4<br /> CHƢƠNG 1. LÝ THUYẾT CÂY 2-3-4---------------------------------------------4<br /> I.<br /> Giới thiệu về cây 2-3-4.-----------------------------------------------------4<br /> II.<br /> Tổ chức cây 2-3-4.----------------------------------------------------------6<br /> III.<br /> Tìm kiếm.---------------------------------------------------------------------8<br /> IV.<br /> Tách node.-------------------------------------------------------------------8<br /> 1. Tách node con.------------------------------------------------------------8<br /> 2. Tách node gốc.----------------------------------------------------------11<br /> 3. Tách theo hướng đi xuống.--------------------------------------------12<br /> V.<br /> Chèn node.------------------------------------------------------------------14<br /> VI.<br /> Tính hiệu quả của Cây 2-3-4---------------------------------------------15<br /> VII. Chuyển từ cây 2-3-4 sang cây đỏ đen.----------------------------------16<br /> CHƢƠNG 2. MÔ PHỎNG THUẬT TOÁN TRÊN CÂY 2-3-4--------------21<br /> I.<br /> Tổng quan về mô phỏng thuật toán.-------------------------------------21<br /> 1. Khái niệm thuật toán và các đặc trưng của thuật toán.----------21<br /> 2. Khái niệm mô phỏng thuật toán.-------------------------------------21<br /> II.<br /> Các yêu cầu mô phỏng thuật toán.--------------------------------------22<br /> III.<br /> Quá trình thiết kế nhiệm vụ mô phỏng thuật toán.--------------------23<br /> IV.<br /> Mô phỏng thuật toán trên Cây 2-3-4------------------------------------23<br /> 1. Giới thiệu ngôn ngữ mô phỏng.--------------------------------------23<br /> 2. Phân tích và thiết kế thuật toán mô phỏng.------------------------24<br /> a. Phân tích.-----------------------------------------------------------24<br /> b. Thiết kế.-------------------------------------------------------------24<br /> TÀI LIỆU THAM KHẢO---------------------------------------------------------------36<br /> <br /> Sinh viên: Đỗ Thị Thùy Dương – Lớp A_K54_CNTT<br /> <br /> 1<br /> <br /> Cây 2-3-4 – Lý thuyết và mô phỏng<br /> <br /> Nghiên Cứu Khoa Học<br /> <br /> LỜI MỞ ĐẦU<br /> I. Lý do chọn đề tài<br /> Trong hai thập kỉ qua, mô phỏng thuật toán đã đƣợc các nhà sƣ phạm của<br /> ngành công nghệ thông tin sử dụng nhƣ một công cụ hỗ trợ cho việc giảng dạy các<br /> thuật toán trên máy tính. Nguyên nhân của việc mô phỏng thuật toán đƣợc sử dụng<br /> nhƣ một công cụ trợ giúp cho việc giảng dạy là do nó có thể cung cấp các mô<br /> phỏng động bằng đồ họa của một thuật toán và các thay đổi trong cấu trúc dữ liệu<br /> của nó trong suốt quá trình thực thi.<br /> Nhƣ một phần của quá trình học thuật toán, việc mô phỏng các thuật toán<br /> còn góp phần giúp các em học sinh, sinh viên khi mới bắt đầu làm quen với giải<br /> thuật có thể vừa dễ dàng theo dõi các bƣớc duyệt ở lý thuyết vừa nhìn thấy các<br /> bƣớc chạy ở thực tế nhƣ thế nào. Tƣ đó có thể giúp các em tƣ duy thuật toán<br /> nhanh hơn và ngày càng yêu thích giải thuật.<br /> Mô phỏng thuật toán ngày càng trở nên hữu ích và trở thành một giáo cụ<br /> trực quan rất quan trọng trong hầu hết các lĩnh vực, nhất là trong môi trƣờng giáo<br /> dục. Với các nhà sƣ phạm của ngành công nghệ thông tin thì mô phỏng thuật toán<br /> có tác dụng nhƣ một tài liệu hƣớng dẫn trong việc dạy các thuật toán bằng máy<br /> tính.<br /> Cây 2-3-4 là một cây nhị phân tìm kiếm giải quyết tốt hơn các trƣờng hợp<br /> xấu nhất cho cây nhị phân tìm kiếm bình thƣờng. Và đây còn là một nội dung khá<br /> mới mẻ và phức tạp đối với nhiều học sinh, sinh viên. Vì vậy vấn đề “Cây 2-3-4 –<br /> Lý thuyết và mô phỏng” đƣợc chọn làm đề tài nghiên cứu.<br /> II. Mục đích nghiên cứu đề tài<br /> Mục đích nghiên cứu của khóa luận này nhằm tìm hiểu và đánh giá các<br /> thuật toán trên Cây 2-3-4, đồng thời xây dựng một phần mềm mô phỏng các thuật<br /> toán này nhằm hỗ trợ cho việc học, nghiên cứu và tiến tới dạy các thuật toán trên<br /> Cây 2-3-4.<br /> Sinh viên: Đỗ Thị Thùy Dương – Lớp A_K54_CNTT<br /> <br /> 2<br /> <br /> Cây 2-3-4 – Lý thuyết và mô phỏng<br /> <br /> Nghiên Cứu Khoa Học<br /> <br /> III .Nhiệm vu nghiên cứu đề tài.<br /> Nghiên cứu tổng quan về mô phỏng thuật toán, các yêu cầu, phƣơng pháp<br /> tiếp cận, phƣơng pháp thiết kế một mô đun mô phỏng thuật toán.<br /> Thiết kế minh họa các mô đun minh họa các thuật toán trên Cây2-3-4.<br /> IV. Đối tượng nghiên cứu.<br /> Đề tài nghiên cứu đi sâu vào nghiên cứu và cài đặt một số thuật toán:<br /> - Thuật toán tìm kiếm trên Cây 2-3-4<br /> - Thuật toán chèn một node và chèn một giá trị vào Cây 2-3-4<br /> - Thuật toán tách node trên Cây 2-3-4<br /> - Thuật toán xóa node và xóa một giá trị trên Cây 2-3-4<br /> V. Phưong pháp nghiên cứu.<br /> Phƣơng pháp nghiên cứu chủ yếu tham khảo các tài liệu tham khảo liên<br /> quan đến Cây nhị phân tìm kiếm, Cây 2-3-4 thông qua các sách, tài liệu tham khảo<br /> và đặc biệt là nguồn tài liệu phong phú trên mạng Internet.<br /> <br /> Sinh viên: Đỗ Thị Thùy Dương – Lớp A_K54_CNTT<br /> <br /> 3<br /> <br /> Cây 2-3-4 – Lý thuyết và mô phỏng<br /> <br /> Nghiên Cứu Khoa Học<br /> <br /> PHẦN NỘI DUNG<br /> Chương I.<br /> <br /> Lý thuyết về Cây 2-3-4<br /> <br /> I. Giới thiệu về cây 2-3-4.<br /> Nhƣ chúng ta đã biết, các thuật toán về cây nhị phân luôn rất tốt cho nhiều<br /> ứng dụng, tuy nhiên chúng lại có những khuyết điểm trong trƣờng hợp xấu nhất.<br /> Chẳng hạn nhƣ trƣờng hợp Quicksort, trƣờng hợp xấu nhất của nó lại là trƣờng<br /> hợp dễ xuất hiện trong thực tế nếu ngƣời dùng không chú ý đến nó.<br /> Các tập tin đã đƣợc xắp xếp thứ tự, các tập tin với thứ tự ngƣợc, các tập các<br /> khoá lớn, nhỏ xen lẫn nhau hay các tập tin với sự phân đoạn lớn có cấu trúc đơn<br /> giản có thể làm thuật toán tìm trên cây hoạt động rất tồi.<br /> Với thuật toán QuickSort, cái mà chúng ta cần để cái tiến tình huống là sắp<br /> xếp lại để có trƣờng hợp ngẫu nhiên: bằng cách chọn một phần tử phân hoạch<br /> ngẫu nhiên, chúng ta có thể dựa vào quy luật xác xuất để tránh khỏi trƣờng hợp<br /> xấu nhất. Với tìm kiếm trên cây nhị phân thì may mắn hơn, bởi vì chúng ta có thể<br /> làm tốt hơn nhiều; có một kỹ thuật tổng quát cho phép chúng ta bảo đảm trƣờng<br /> hợp xấu nhất sẽ không xuất hiện. Kỹ thuật này gọi là Cân bằng đã đƣợc dùng làm<br /> cơ sở cho nhiều thuật toán khác nhau về “cây cân bằng”. Chúng ta sẽ xem xét kỹ<br /> một thuật toán thuộc loại đó và cùng nhau thảo luận tóm tắt về sự liên quan của nó<br /> đối với các phƣơng pháp khác.<br /> Để khử trƣờng hợp xấu nhất của cây tìm kiếm nhị phân, chúng ta cần dùng<br /> một vài linh động trong cấu trúc sẽ dùng. Để có sự linh động này, chúng ta giả sử<br /> rằng các node trong cây của chúng ta có chứa nhiều hơn một khóa. Cụ thể hơn,<br /> chúng ta sẽ thừa nhận các 3-node và 4-node mà có thể chứa tƣơng ứng hai và ba<br /> khóa. Một 3-node có ba liên kết ra khỏi nó, một liên kết cho tất cả các mẩu tin có<br /> khóa nhỏ hơn cả hai khóa của nó, một cho tất cả các mẩu tin có khóa nằm giữa hai<br /> khóa của nó, một cho tất cả các mẩu tin có khóa lớn hơn hai khóa của nó. Tƣơng<br /> tự với một 4-node có 4 liên kết đi ra khỏi nó.<br /> Chúng ta sẽ xem xét các đặc tính của cây 2-3-4 và mối quan hệ khá gần gũi<br /> giữa cây 2-3-4 và cây đỏ-đen.<br /> <br /> Sinh viên: Đỗ Thị Thùy Dương – Lớp A_K54_CNTT<br /> <br /> 4<br /> <br /> Cây 2-3-4 – Lý thuyết và mô phỏng<br /> <br /> Nghiên Cứu Khoa Học<br /> <br /> Hình 4.1 Trình bày một cây 2-3-4 đơn giản. Mỗi node có thể lƣu trữ 1, 2<br /> hoặc 3 mục dữ liệu.<br /> <br /> Hình 4.1 cây 2-3-4<br /> Các số 2, 3 và 4 trong cụm từ cây 2-3-4 có ý nghĩa là khả năng có bao nhiêu<br /> liên kết đến các node con có thể có đƣợc trong một node cho trƣớc. Đối với các<br /> node không phải là lá, có thể có 3 cách sắp xếp sau:<br /> Một node với một mục dữ liệu thì luôn luôn có 2 con.<br /> <br /> k<br /> <br /> Một node với hai mục dữ liệu thì luôn luôn có 3 con.<br /> <br /> k1 k2<br /> <br /> Một node với ba mục dữ liệu thì luôn luôn có 4 con.<br /> k1<br /> <br /> k2<br /> <br /> k3<br /> <br /> Nhƣ vậy, một node không phải là lá phải luôn luôn có số node con nhiều hơn<br /> 1 so với số mục dữ liệu của nó. Nói cách khác, đối với mọi node với số con là c và<br /> số mục dữ liệu là d, thì : c = d + 1. Sau đây là các ví dụ cụ thể:<br /> <br /> Sinh viên: Đỗ Thị Thùy Dương – Lớp A_K54_CNTT<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2