Tải bản đầy đủ (.pdf) (29 trang)

Slides

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 29 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Giảng viên: ThS. Trần Quang Khải



<b>TOÁN RỜI RẠC</b>



<b>Chương 7:</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Toán rời rạc: 2011-2012


<b>Nội dung</b>



<b>1. Giới thiệu:</b>


<b>Định nghĩa.</b>


<b>Thuật ngữ.</b>


<b>2. Cây khung:</b>



<b>Cây khung nhỏ nhất.</b>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Toán rời rạc: 2011-2012


Giảng viên: ThS. Trần Quang Khải



<b>Giới thiệu</b>



Chương 7: Cây 3


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Toán rời rạc: 2011-2012


<b>CÂY?</b>



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Toán rời rạc: 2011-2012



<b>Giới thiệu</b>



Chương 7: Cây 5


<b>TREE</b>



<b>Cây là m</b>

<b>ộ</b>

<b>t đ</b>

<b>ồ</b>

<b>th</b>

<b>ị</b>

<b>vô h</b>

<b>ướ</b>

<b>ng, liên thông </b>

<b>và </b>



<b>khơng ch</b>

<b>ứ</b>

<b>a </b>

<b>chu trình đ</b>

<b>ơ</b>

<b>n.</b>



<b>Ứng dụng trong KHMT:</b>



<b>Các thuật tốn tìm kiếm.</b>



<b>Thiết kế mạng máy tính.</b>



<b>Sắp xếp.</b>



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Toán rời rạc: 2011-2012


<b>Example</b>



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Toán rời rạc: 2011-2012


<b>Đâu là CÂY?</b>



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Toán rời rạc: 2011-2012


<b>Giới thiệu</b>




<b><sub>Rừng (forest): </sub></b>



<b>Là đồ thị vô hướng, </b>

<b>không liên thơng </b>

<b>và khơng </b>


<b>chứa chu trình đơn.</b>



<b>Rừng gồm nhiều cây.</b>



Chương 7: Cây 8


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Tốn rời rạc: 2011-2012


<b>Cây</b>



<b><sub>Tính chất:</sub></b>



<b>Giữa </b>

<b>2 đỉnh </b>

<b>bất kz có </b>

<b>duy nhất </b>

<b>1 đường đi đơn</b>

<b>.</b>



<b>Cây n</b>

<b>đỉnh </b>

<b>sẽ có n</b>

– 1 cạnh

<b>.</b>



<b>Nếu thêm 1 cạnh tùy { </b>

<b>Tạo ra 1 chu trình.</b>



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Tốn rời rạc: 2011-2012


<b>Cây có gốc</b>



Chương 7: Cây 10


<b>Rooted tree</b>



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

Toán rời rạc: 2011-2012



<b>Thuật ngữ</b>



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

Toán rời rạc: 2011-2012


<b>Thuật ngữ</b>



Chương 7: Cây 12

<i><b>(Tổ tiên)</b></i>



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Toán rời rạc: 2011-2012


<b>Thuật ngữ</b>



Chương 7: Cây 13

<i><b>(Đỉnh nội, </b></i>



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Toán rời rạc: 2011-2012


<b>Thuật ngữ</b>



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

Toán rời rạc: 2011-2012


<b>Example</b>



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Tốn rời rạc: 2011-2012


<b>Cây có gốc </b>

<i>m</i>

<b>-phân</b>



Chương 7: Cây 16



<b>M</b>

<b>ộ</b>

<b>t cây có g</b>

<b>ố</b>

<b>c g</b>

<b>ọ</b>

<b>i là m-phân (m</b>

<b>-ary</b>

<b>) n</b>

<b>ế</b>

<b>u m</b>

<b>ọ</b>

<b>i </b>


<b>đ</b>

<b>ỉ</b>

<b>nh trong c</b>

<b>ủ</b>

<b>a nó có </b>

<b>khơng ít h</b>

<b>ơ</b>

<b>n </b>

<i>m con.</i>



<b>Cây g</b>

<b>ọ</b>

<b>i là m-ary </b>

<b>đ</b>

<b>ầ</b>

<b>y đ</b>

<b>ủ</b>

<b>n</b>

<b>ế</b>

<b>u m</b>

<b>ọ</b>

<b>i đ</b>

<b>ỉ</b>

<b>nh trong </b>


<b>c</b>

<b>ủ</b>

<b>a nó có </b>

<b>chính xác</b>

<i>m con.</i>



<b>V</b>

<b>ớ</b>

<b>i m </b>

= 2

<b>: cây nh</b>

<b>ị</b>

<b>phân (</b>

<b>binary</b>

<b>).</b>



<b>Một cây </b>

<i>m</i>

-ary đầy đủ với

<i>i</i>

<b>đỉnh trong có </b>



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

Tốn rời rạc: 2011-2012


<b>Example</b>



</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

Toán rời rạc: 2011-2012


<b>Ứng dụng của CÂY</b>



<b><sub>Khoa học máy tính:</sub></b>



<b>Thiết kế mạng.</b>



<b>Cây quyết định.</b>



<b>Giải thuật nén.</b>



<b>Lưu trữ dữ liệu trên ổ cứng.</b>



<b>…</b>




<b>Khác:</b>



<b>Sơ đồ tổ chức hoạt động.</b>



<b>Cơng thức hóa học.</b>



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

Toán rời rạc: 2011-2012


Giảng viên: ThS. Trần Quang Khải



<b>Cây khung</b>



Chương 7: Cây 19


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

Toán rời rạc: 2011-2012


<b>Giới thiệu</b>



<b><sub>Sau trận sóng thần tại Miyagi, Nhật Bản (2011), </sub></b>



<b>cần dọn sạch một số con đường để xe cứu hộ </b>


<b>có thể đi tới mọi điểm trong thành phố?</b>



<b>Một công ty viễn thông cần xây dựng đường </b>


<b>trục cáp chính (back-bone), làm thế nào để nối </b>



<i>n</i>

<b>thành phố sao cho tổng chiều dài đường dây </b>



<b>cáp là ngắn nhất?</b>




</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

Toán rời rạc: 2011-2012


<b>Cây khung – Giới thiệu</b>



Chương 7: Cây 21

<b>Spanning tree: Cho G</b>

<b>là m</b>

<b>ộ</b>

<b>t đ</b>

<b>ồ</b>

<b>th</b>

<b>ị</b>



<b>M</b>

<b>ộ</b>

<b>t đ</b>

<b>ồ</b>

<b>th</b>

<b>ị</b>

<b>con c</b>

<b>ủ</b>

<b>a G</b>

<b>và ch</b>

<b>ứ</b>

<b>a </b>

<b>t</b>

<b>ấ</b>

<b>t c</b>

<b>ả</b>

<b>các </b>



<b>đ</b>

<b>ỉ</b>

<b>nh</b>

<b>c</b>

<b>ủ</b>

<b>a G</b>

<b>g</b>

<b>ọ</b>

<b>i là </b>

<i><b>cây khung </b></i>

<b>c</b>

<b>ủ</b>

<b>a G.</b>



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

Tốn rời rạc: 2011-2012


<b>Tìm cây khung</b>



<b><sub>Giải thuật </sub></b>

<b><sub>Prim</sub></b>

<b><sub>:</sub></b>


<b>Input</b>

<b>: Đồ thị </b>

<i>G</i>

<b>.</b>



<b>Output</b>

<b>: Cây khung </b>

<i>H</i>

<b>(khởi tạo </b>

<i>H</i>

=

<b>).</b>



<b>Bước 1: Chọn tùy { 1 đỉnh của </b>

<i>G</i>

<b>đặt vào </b>

<i>H</i>

<b>.</b>



<b>Bước 2: Nếu mọi đỉnh của </b>

<i>G</i>

<b>đều nằm trong </b>

<i>H</i>

<b>thì </b>


<b>dừng.</b>



<b>Bước 3: Tìm 1 đỉnh của </b>

<i>G</i>

<b>mà không nằm trong </b>

<i>H</i>

<b>và </b>



<b>có nối với 1 đỉnh trong </b>

<i>H</i>

<b>bằng một cạnh. Thêm đỉnh </b>




<b>này và cạnh tương ứng vào </b>

<i>H</i>

<b>. Quay lại bước 2.</b>



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

Toán rời rạc: 2011-2012


<b>Cây khung nhỏ nhất</b>



Chương 7: Cây 23

<b>Minimum spanning tree</b>



<b>Cho G</b>

<b>là m</b>

<b>ộ</b>

<b>t đ</b>

<b>ồ</b>

<b>th</b>

<b>ị</b>

<b>liên thơng có tr</b>

<b>ọ</b>

<b>ng s</b>

<b>ố</b>

<b>c</b>

<b>ạ</b>

<b>nh.</b>


<b>Cây khung nh</b>

<b>ỏ</b>

<b>nh</b>

<b>ấ</b>

<b>t là cây khung có </b>

<b>t</b>

<b>ổ</b>

<b>ng</b>

<b>tr</b>

<b>ọ</b>

<b>ng </b>


<b>s</b>

<b>ố</b>

<b>các c</b>

<b>ạ</b>

<b>nh là </b>

<b>nh</b>

<b>ỏ</b>

<b>nh</b>

<b>ấ</b>

<b>t </b>

<b>trong t</b>

<b>ấ</b>

<b>t c</b>

<b>ả</b>

<b>các cây </b>



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Tốn rời rạc: 2011-2012


<b>Tìm cây khung nhỏ nhất</b>



<b><sub>Giải thuật </sub></b>

<b><sub>Prim</sub></b>

<b><sub>:</sub></b>


<b>Input</b>

<b>: Đồ thị </b>

<i>G</i>

<b>.</b>



<b>Output</b>

<b>: Cây khung </b>

<i>H</i>

<b>(khởi tạo </b>

<i>H</i>

=

<b>).</b>



<b>Bước 1: Chọn tùy { 1 đỉnh của </b>

<i>G</i>

<b>đặt vào </b>

<i>H</i>

<b>.</b>



<b>Bước 2: Nếu mọi đỉnh của </b>

<i>G</i>

<b>đều nằm trong </b>

<i>H</i>

<b>thì </b>


<b>dừng.</b>



<b>Bước 3: Tìm 1 đỉnh của </b>

<i>G</i>

<b>mà không nằm trong </b>

<i>H</i>

<b>và </b>



<b>có nối với 1 đỉnh trong </b>

<i>H</i>

<b>bằng một cạnh có </b>

<b>trọng số </b>




<b>nhỏ nhất</b>

<b>. Thêm đỉnh này và cạnh tương ứng vào </b>

<i>H</i>

<b>. </b>



<b>Quay lại bước 2.</b>



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Tốn rời rạc: 2011-2012


<b>Tìm cây khung nhỏ nhất</b>



<b><sub>Giải thuật Prim - Ví dụ:</sub></b>



</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Tốn rời rạc: 2011-2012


<b>Tìm cây khung nhỏ nhất</b>



<b><sub>Giải thuật </sub></b>

<b><sub>Kruskal</sub></b>

<b><sub>:</sub></b>



<b>Input</b>

<b>: </b>

<b>Đồ thị </b>

<i>G = (V, E)</i>

<b>.</b>



<b>Output</b>

<b>: </b>

<b>Cây khung nhỏ nhất </b>

<i>H</i>

<b>.</b>



<b>Bước 1: Sắp xếp các cạnh theo thứ tự tăng dần và </b>


<b>khởi tạo </b>

<i>H</i>

=

<b>.</b>



<b>Bước 2: Lần lượt lấy từng cạnh </b>

<i>e</i>

<b>thuộc danh sách </b>



<b>đã sắp xếp. Nếu </b>

<i>H+{e}</i>

<b>không tạo chu trình thì gán </b>


<i>H=H+{e}.</i>



<b>Bước 3: Nếu </b>

<i>H</i>

<b>đủ </b>

<i>n –</i>

1

<b>phần tử thì dừng. Ngược lại </b>




<b>quay lại bước 2.</b>



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

Tốn rời rạc: 2011-2012


<b>Tìm cây khung nhỏ nhất</b>



<b><sub>Giải thuật </sub></b>

<b><sub>Kruskal </sub></b>

<b><sub>- Ví dụ</sub></b>



</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Toán rời rạc: 2011-2012


<b>Bài tập – Giải thuật Kruskal</b>



Chương 6: Đồ thị 28


<b>1</b>



</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Toán rời rạc: 2011-2012


<b>Bài tập – Giải thuật Kruskal</b>



Chương 6: Đồ thị 29


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×