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

Slide

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.35 MB, 28 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 6:</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 (phần 3)</b>



<b>1. Bài tốn tìm đường đi ngắn nhất:</b>



 <b>Giải thuật Dijsktra.</b>


<b>2. Giới thiệu bài toán TSP.</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>Bài tốn tìm đường đi </b>


<b>ngắn nhất</b>



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

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


<b>Đồ thị có trọng số</b>



Chương 6: Đồ thị 4


<b>Weighted graph</b>




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

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


<b>Đồ thị có trọng số</b>



<b><sub>Liên quan:</sub></b>



 <b>Thời gian.</b>


 <b>Khoảng cách.</b>


 <b>Chi phí.</b>


 <b>…</b>


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

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


<b>Đồ thị có trọng số</b>



<b><sub>Độ dài </sub></b>

<b><sub>(</sub></b>

<b><sub>length</sub></b>

<b><sub>) của đường đi có trọng số:</sub></b>



<b>Tổng</b>

<b>trọng số của </b>

<b>các cạnh </b>

<b>trên đường đi.</b>



<b>Đường đi ngắn nhất: đường đi có độ dài nhỏ </b>


<b>nhất trong số các đường đi có thể có.</b>



<b>Lưu ý:</b>



<b>Khác với khái niệm độ dài là </b>

<b>tổng số cạnh</b>

<b>.</b>



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

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



<b>Bài tốn tìm đường đi ngắn nhất</b>



<b><sub>Shortest path </sub></b>

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



<b>Tìm ra đường đi có độ dài nhỏ nhất giữa 2 đỉnh </b>


<i>s</i>

<b>(</b>

<b>source</b>

<b>) và </b>

<i>t</i>

<b>(</b>

<b>destination</b>

<b>).</b>



<b>Các thuật tốn:</b>



 <b>Dijsktra (giữa 2 đỉnh, khơng cạnh âm).</b>


 <b>Floyd-Warshall (mọi cặp đỉnh).</b>


 <b>Bellman-Ford (có cạnh âm).</b>


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

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


<b>Bài tốn tìm đường đi ngắn nhất</b>



<b><sub>Nhận xét:</sub></b>



 <b>Có thể bỏ bớt các cạnh bội, chỉ giữ lại cạnh có trọng </b>
<b>số nhỏ nhất.</b>


 <b>Có thể bỏ đi các khun có trọng số khơng âm.</b>


 <b>Nếu có khun trọng số âm: có thể khơng</b> <b>có lời giải.</b>


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

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



<b>Bài tốn tìm đường đi ngắn nhất</b>



<b><sub>Biểu diễn đồ thị dạng ma trận kề:</sub></b>



<i>a</i>

<i><sub>ij</sub></i>

=



 <b>Trọng số cạnh nhỏ nhất nối i</b> <b>đến j</b> <b>nếu có.</b>


 0 <b>nếu khơng có cạnh nối i</b> <b>đến j</b> <b>nếu có.</b>


<b>Phải kiểm tra giá trị </b>0 <b>trong ma trận.</b>


<b>Tổng quát hơn: thay </b>0 <b>bằng </b>+<b>∞.</b>


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

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


<b>Nguyên lý Bellman</b>



<b>Gọi </b>

<i>P</i>

<b>là đường đi </b>

<b>ngắn nhất </b>

<b>từ </b>

<i>i</i>

<b>đến </b>

<i>j</i>

<b>, </b>

<i>k</i>

<b>là một </b>


<b>đỉnh nằm giữa </b>

<i>i</i>

<b>và </b>

<i>j</i>

<b>trên </b>

<i>P</i>

<b>thì:</b>



 <b>Đường đi P</b><sub>1</sub> <b>từ </b><i>i</i> <b>đến </b><i>k</i> <b>cũng chính là đường đi ngắn </b>


<b>nhất từ i</b> <b>đến k.</b>


 <b>Đường đi P</b><sub>2</sub> <b>từ </b><i>k</i> <b>đến </b><i>j</i> <b>cũng chính là đường đi ngắn </b>


<b>nhất từ k</b> <b>đến j.</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 toán Dijsktra</b>



<b><sub>Ý tưởng: </sub></b>



 <b>Giải thuật Dijsktra chủ yếu </b>
<b>dựa trên nguyên lý gán </b>


<b>nhãn (labeling).</b>


 <b>Tác giả: Edsger Dijkstra</b>
<b>Công bố: 1959</b>


Chương 6: Đồ thị 11


</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 tốn Dijsktra</b>



<b><sub>Điều kiện:</sub></b>



 <b>Đồ thị G = </b>(<i>V, E</i>)<b>.</b>


 <b>Có hướng hoặc vơ hướng.</b>


 <b>Khơng có cạnh âm.</b>


</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 toán Dijsktra</b>



<b><sub>Ý tưởng:</sub></b>



<b>Dựa trên một dãy các bước </b>

<b>lặp</b>

<b>:</b>



 <b>Bắt đầu từ tập chỉ chứa đỉnh xuất phát </b><i>a.</i>


 <b>Mỗi bước lặp thêm 1 đỉnh vào tập đỉnh đã ghé qua.</b>


 <b>Gán nhãn cho các đỉnh trong mỗi bước lặp:</b>


<b>Nhãn của đỉnh w</b> <b>là độ dài của đường đi ngắn nhất </b>
<b>từ a</b> <b>đến nó (thơng qua các đỉnh trong tập đã thăm).</b>


 <b>Bước lặp tiếp:</b>


<b>Chọn một đỉnh đã được gán nhãn (có giá trị nhãn </b>
<b>nhỏ nhất) để tiếp tục.</b>


</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 tốn Dijsktra</b>



<b>Ví dụ: tìm đường đi từ </b>

<i>s</i>

<b>đến </b>

<i>t</i>

<b>.</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>

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


<b>Example</b>



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

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


<b>Thuật toán Dijsktra</b>



<b><sub>Cài đặt thuật tốn Dijsktra:</sub></b>



<b>Trình bày - Nhóm (thời gian: </b>

<b>tuần 9</b>

<b>):</b>



<b>1. Liêu Tấn Đạt - MSSV: 1131200001.</b>


<b>2. Hoàng Trung Thành - MSSV: 1131200016.</b>
<b>3. Lê Trọng Hà - MSSV: 1131200006.</b>


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

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


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


<b>Bài toán TSP</b>



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

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


<b>Bài toán TSP</b>



Chương 6: Đồ thị 19


<b>The travelling salesman problem</b>

<b>:</b>




<i><b>“Cho m</b></i>

<i><b>ộ</b></i>

<i><b>t danh sách</b></i>

<i><b>các thành ph</b></i>

<i><b>ố</b></i>

<i><b>và</b></i>



<i><b>kho</b></i>

<i><b>ả</b></i>

<i><b>ng cách</b></i>

<i><b>đ</b></i>

<i><b>ườ</b></i>

<i><b>ng đi gi</b></i>

<i><b>ữ</b></i>

<i><b>a m</b></i>

<i><b>ỗ</b></i>

<i><b>i c</b></i>

<i><b>ặ</b></i>

<i><b>p thành</b></i>


<i><b>ph</b></i>

<i><b>ố</b></i>

<i><b>, tìm đ</b></i>

<i><b>ườ</b></i>

<i><b>ng đi</b></i>

<i><b>ng</b></i>

<i><b>ắ</b></i>

<i><b>n nh</b></i>

<i><b>ấ</b></i>

<i><b>t</b></i>

<i><b>có th</b></i>

<i><b>ể</b></i>

<i><b>sao cho</b></i>


<i><b>m</b></i>

<i><b>ỗ</b></i>

<i><b>i thành ph</b></i>

<i><b>ố</b></i>

<i><b>đ</b></i>

<i><b>ượ</b></i>

<i><b>c ghé qua</b></i>

<i><b>đúng m</b></i>

<i><b>ộ</b></i>

<i><b>t</b></i>

<i><b>l</b></i>

<i><b>ầ</b></i>

<i><b>n”.</b></i>



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

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


<b>Bài toán TSP</b>



 <b>The travelling salesman problem:</b>


 <b>Bài tốn “lớn+khó” (NP-hard) trong tối ưu tổ hợp </b>


<b>(combinatorial optimization).</b>


 <b>Được nghiên cứu trong vận trù học</b> <b>(operations research) và </b>
<b>khoa học máy tính lý thuyết (theoretical computer science).</b>


 <b>Nguồn gốc thật sự: unknown.</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>Bài toán TSP</b>



<b><sub>Ứng dụng:</sub></b>



 <b>Lập quy hoạch.</b>



 <b>Ngành hậu cần.</b>


 <b>Sản xuất vi mạch.</b>


 <b>Xử lý chuỗi DNA.</b>


 <b>….</b>


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

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


<b>Bài toán TSP</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>Bài toán TSP</b>



 <b>Lược sử nghiên cứu (với sự trợ giúp của máy tính):</b>


 <b>1950s, 1960s: phổ biến ở châu Âu, châu Mỹ.</b>


 <b>Phương pháp mặt phẳng cắt.</b>


 <b>1972: Richard Karp chứng minh độ khó của TSP.</b>


 <b>Cuối 1970s, đầu 1980s: giải được trường hợp 2392 thành </b>
<b>phố (Grötschel, Padberg, Rinaldi).</b>


 <b>2005: Cook và cộng sự đã giải được một trường hợp có </b>


<b>33810 thành phố, xuất phát từ một bài toán thiết kế vi mạch.</b>



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

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


<b>Bài toán TSP</b>



<b><sub>Giải pháp: </sub></b>



<b>Các phương pháp “xấp xỉ”, là sự kết hợp giữa:</b>



 <b>Lý thuyết đồ thị.</b>


 <b>Phương pháp tối ưu hóa trong KHMT:</b>


•<b>Giải thuật di truyền.</b>


•<b>Các giải thuật tìm kiếm cục bộ (local search): Tabu </b>
<b>search, giải thuật leo đồi, giải thuật mô phỏng </b>


<b>luyện kim, đế chế đàn kiến,…</b>


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

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


<b>Bài toán TSP</b>



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

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


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



Chương 6: Đồ thị 26



<b>1</b>


<b>2</b>


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

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


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



Chương 6: Đồ thị 27


<b>3</b> <b>4</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 Dijsktra</b>



Chương 6: Đồ thị 28


<b>5</b>


</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
×