1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cải tiến thuật toán tối ưu hàm lồi bằng tìm kiếm tam phân và quy hoạch động

13 0 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,26 MB

Nội dung

Ưu điểm của tìm kiếm tam phđn so với tìm kiếm nhị phđn, tính toân độ phức tạp tìmkiếm tam phđn để qua đó thấy sự hiệu quảtrong việctìmcực trị của Hăm lồi.. Trong toân học, mộthămcó giâ t

Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH YSC5.F004 CẢI TIẾN THUẬT TOÁN TỐI ưu HÀM LÒI BẰNG TÌM KIẾM TAM PHÂN VÀ QUY HOẠCH ĐỌNG TRẦN LỘC1*, LÂM QUANG PHÚ1, TRƯƠNG CÔNG ĐẠT1, NGUYỄN GIALÂM1, TRẦN TRỌNG TRÍ1, MAI THỊ DIỆU MY1, PHAN TẤN TÀI1, LÊ PHÚC LŨ1, NGUYỄN HỮU TÌNH1 }Khoa Công nghệ Thông tin, TrườngĐại học Công nghiệp Thành phổ Hồ Chỉ Minh *tranlocỉ20603@gmail com Tóm tăt Trong lĩnh vực tối ưu, các bài toán liên quan đến hàm lồi cũng như độ hiệu quả về thời gian tính toán của chúng chiếm một vị hí quan họng Tính chất của hàm lồi là đạt cực đại hoặc cực tiểu tại một vị trí duy nhất trong miền xác định, mà ở đây ta quan tâm miền của bài toán là tập hợp rời rạc Khi đó, có hai cách tiếp cận nổi bật là thuật toán chia để hị và quỵ hoạch động, đều có đặc điểm chung là phân tích vấn đề lớn thành các vấn đề con đồng dạng nhưng có kích thước nhỏ hơn để giải quyết độc lập Trong bài báo này, nhóm sẽ tìm hiểu tập hung về một dạng chia để trị độc đáo là tìm kiếm tam phân cũng như đề xuất các cách cải tiến quỵ hoạch động dùng bao lồi và Alien trick Từ đó, nhóm sẽ ứng dụng các kỹ thuật này vào giải quyết một số bài toán tối ưu nổi bật trong khoa học máy tính Từ khóa Hàm lồi, Chia để trị, Tìm kiếm tam phân, Quỵ hoạch động bao lồi, Alien trick IMPROVEMENT OF CONVEX OPTIMIZATION USING TERNARY SEARCH AND DYNAMIC PROGRAMMING Abstract In optimization scope, the class of problems involving convex functions as well as theữ computational time efficiency play an important role The property of a convex function is to reach a maximum or a minimum at a single position in a given domain, where we are interested in a discrete set There are two prominent approaches, divide and conquer algorithms and dynamic programming, both of which have die common feature of analyzing a large problem into smaller subproblems to be solved independently In this article, the group will focus on a unique divide-and-conquer form of ternary search and propose the ways to improve dynamic programming using convex hulls and the Alien hick From there, we will apply these techniques to solve some outstanding optimization problems in computer science Keywords Convex function, Divide-and-Conquer, Ternary search, Convex DP, Alien trick 1 GIỚI THIEL Trong lĩnh vực tối ưu, các bài toán liên quan đến hàm lồi xuất hiện khá phổ biến và có vai trò qua họng Ta xem xét giải quyết chúng dựa hên tính chính xác của thuật toán cũng như độ hiệu quả về thời gian tính toán Trong nghiên cứu này, chúng tôi sẽ đưa ra các nội dung: 1 Tổng quan lỷ thuyết, các tỉnh chất về hàm lồi' Trình bày tổng quan về các lý thuyết, tính chất Từ các tính chất đó đề xuất các cách tối ưu Hàm lồi để giải quyết bài toán chính 2 Giới thiệu phương pháp tìm kiếm tam phân\ Phân tích, hình bày việc tối ưu tìm kiếm cực trị so với cách làm thông thường Ưu điểm của tìm kiếm tam phân so với tìm kiếm nhị phân, tính toán độ phức tạp tìm kiếm tam phân để qua đó thấy sự hiệu quả trong việc tìm cực trị của Hàm lồi Tính ứng dụng của tìm kiếm tam phân thông qua Ternary Search Tree 3 Quy hoạch động: Trình bày các lý thuyết, bài toán, vấn đề mô tả cho phương pháp giải bằng quỵ hoạch động, quỵ hoạch động bao lồi Qua tính chất của Hàm lồi, đề xuất cách tối ưu quỵ hoạch động bằng các thủ thuật như “Aliens Trick”, từ đó giảm thiểu thời gian tính toán, cho ra kết quả nhanh chóng và một số bài toán mang tính ứng dụng thực tế qua thủ thuật “Aliens Trick” 40 © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH Chúng tôi sẽ cải tiến thuật toán tối ưu hàm lồi bằng cách kết hợp tìm kiếm tam phân và quy hoạch động Phương pháp này đã được chứng minh là hiệu quả trong việc tối ưu hóa các bài toán, thường được đặt trong khoa học máy tính và các cuộc thi giải thuật Từ đó, góp phần đề xuất các cách tối ưu các vấn đề thực tế 2 Cơ SỞ LÝ THUYẾT 2.1 Hàm lồi và các tính chất Một tập hợp X trong không gian vectơ là tập lồi nếu với bất ki a> b e X, đoạn thẳng nối a và b cũng thuộc X Điều này có nghĩa là với mọi Ả e [0,1], ta có: [1] Ả.a + (1 - X).b e x>v a>b e X (1) Hình 1: Ví dụ về tập lồi Tập họp đầu tiên (bên trái) không phải là tập lồi do tồn tại các đoạn thẳng không nằm trong tập họp Hai tập còn lại là tập lồi vì mọi đường thẳng nối hai điểm bất kỳ trong tập đều nằm trong tập hợp đó Trong toán học, một hàm có giá trị thực định nghĩa một khoảng cách chiều n được gọi là lồi nếu đoạn thẳng ở giũa, nối bất kỳ hai điểm nào của đồ thị của hàm số nằm phía trên đồ thị giữa hai điểm Tương tự, một hàm là Hàm lồi nếu tập hợp các điểm ở trên hoặc phía trên đồ thị hàm số (epigraph) là một tập lồi Nó được định nghĩa trên một tập họp các điểm trong không gian Euclid bằng cách yêu cầu rằng mỗi đoạn thẳng giữa hai điểm bất kỳ trên tập hợp đó phải nằm hoàn toàn trên hoặc bên trên tập hợp đó Hàm đạo hàm cấp hai của một biến đơn là hàm lồi nếu và chỉ nếu đạo hàm cấp hai của nó là không âm trên toàn bộ miền giá trị của nó Một hàm lồi có thể được biểu diễn như sau: fụ.x + (1 -Â).y) < Àf(%) + (1 7Ấ)./(ỵ),VẤ E [0,1] (2) Hình biểu diễn trong hệ trục (x,/■(%)) Ta thấy hàm f là hàm lồi thì chắc chắn rằng mọi giá trị của f trong đoạn [%, y] luôn nhỏ hơn (nằm dưới) đoạn thẳng nối giữa 2 điểm (%, /(%)) và (y, f(yỴ) Hình 2: Ví dụ về Hàm lồi Hàm f được gọi lồi chặt nếu bất đẳng thức (2) là dấu «}■ Khi đó, để kiểm tra xem hàm này có đơn điệu không, có lồi/lõm không, ta không thể dùng phép tính đạo hàm được, ta sẽ kiểm tra trực tiếp như sau: • Hàm đơn điệu biến: Ô(f) = f(n + 1) - f(n), nếu luôn có ó'(/) < 0 thì hàm nghịch bi ến, còn nếu luôn có ố'(/) >0 thì có hàm đồng biến Đậ lượng nạp tương tự đạo hàm cấp 1 cùa hàm f • Hàm lồi: = f(n + 1) - f(n) - (/(n) - f(n - 1)) = f(n + 1) + f(n - 1) - 2f(n) và nếu ố'(ô(/")j > 0 thì ta có hàm lồi, còn nếu luôn âm thì ta có hàm lõm Đại lượng nậy tương tự đạo hàm cấp 2 cũahàm f và thường được dùng trong các bài toán thực tế đề ki ểm tra tính chất của hàm trên tập rời rạc (do việc tìm cực trị cũng thường xét đối với các hàm nại’-) Điểm uốn: nếu một hàm số có đạo hàm liên tục trên một miền xác định, thì điểm uốn cùa hàm số đó phấ nằm giữa hai điểm cực trị của hàm số đó Kết hợp hàm lồi: một tổng có trọng số của các hàm lồi cũng là một hàm lồi Tích của hàm lồi và một số dương là một hàm lồi [3] 2.3 Tim kiếm tam phân 2.3.1 Định nghĩa Tim kiếm tam phân (Ternary search) là một thuật toán chia để trị (Divide and conquer) được sử dụng để giãi quyết bài toán tối uu hàm đơn điệu (Ưnimodal function) Một hàm đơn điệu là một hàm mà chĩ có một điểm cực trị duy nhất và giá trị cũa hàm tăng hoặc gi ãm đơn điệu từ hai phía của điểm cực trị đó Thuật toán tìm kiếm tam phân hoạt động bằng cách chọn hai điểm chốt trong khoảng tìm kiếm ban đầu và so sánh giá trị cùa hàm tậ hai điểm chốt nạp để loại bõ một phần cùa khoảng tìm kiếm không chứa điểm cực trị Quá trình nạp được lặp lại cho đến khi khoảng tìm kiếm thu hẹp xuống dưới một ngưỡng cho trước Điều này được thực hiện bằng cách chia kho âng tìm kiếm thành ba phần b ẳng cách sử dụng tỷ lệ cắt và còn 1 ậ, và xác định kho âng chứa điểm cực trị dựa trên so sánh gi á trị cũa hàm tại các điểm chốt [4] Cho một hàm F(x) trong đoạn [z,r] thỏ a mãn: F tăng chặt tới một cực đậ (điểm/ỉ) rồi giâm chặt Yêu cầu tìm điểm đạt giá trị lớn nhất (điểm H") Xét hai vị trí ma, m2 trong [z, r] sao cho l < m2 < m.2 < T Rõ ràng cực trị có thể nằm 1 trong 3 phần: Hình 3: Các hình ảnh m ô tã cho ba trương hợp của thuật toán ♦ Khi ta chắc chắn sẽ có F(m2) > F(m.2) ♦ m2] Ta chưa thể rút ra kết luận gì về F(m2) và F(t722) ♦ [m-2> r] Tương tự trường hợp đầu, chắc chắn F(m2) < F(m.2) Ngược lại, bằng việc so sánh F(m2) và F(m2), ta có thể rút ra kết luận như sau: ♦ Nếu F(m2) < F(mì): Ta biết chắc chắn H nằm trong ♦ F(m2) > F(mi): Ta biết chắc chắn H nằm trong [ỉ,m2] ♦ F(m2) = F(m2): H nằm trong (Lưu ý: trường hợp này khi xét 2 số thực, thường bỏ qua trường hợp này, để tránh sai số, và do trên thực tế 2 số thực hầu như không bao giờ bằng nhau) Do đó, dựa vào việc so sánh F ở hai điểm m2, m2 ta có thể thay đổi và giảm không gian tìm kiếm [z,r] xuống một khoảng không gian nhỏ hơn [r,r'] Nếu ta chọn: ♦ m2 = ỉ + 42 © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH _ (r-V) • m2 = r — —-— thì sau môi lân, độ lớn của đoạn [/, r] giảm xuông còn lân Nếu ta lặp đi lặp lại K lần, thì độ lớn của [/, r] sẽ chỉ còn là Ví dụ với ỉ = - 109, r = 109, ta lặp lại K = 100 lần, thì đoạn [/, r] thu về chỉ còn độ dài là (|)100 * (2.109) < 5.10-9, đủ chính xác với hầu hết các bài Độ phức tạp là O(logT) với T là độ chính xác mà ta cần thực hiện 2.3.2 So sánh tìm kiếm tam phân và tìm kiếm nhị phân Giống: Cả hai thuật toán tìm kiếm nhị phân (Binary search) và tìm kiếm tam phân (Ternary search) đều là các thuật toán tìm kiếm hên đoạn so (Range query) Tìm kiếm tam phân cũng tương tự như tìm kiếm nhị phân nhưng tìm kiếm tam phân là cải tiến của tìm kiếm nhị phân Phuưng pháp Ternary Search Binary Search Chia không gian tìm kiếm thành 3 phần Chia không gian tìm kiếm thành hai bằng cách sử dụng hai chỉ số, tức là l và r phần và so sánh phần tử mục tiêu với Nó so sánh phần tử mục tiêu với hai phần phần tử ở giữa của mảng con hiện tại tử ở giữa (một ở gần l và một ở gần r) và dựa trên kết quả so sánh đó để xác định phần nào của không gian tìm kiếm chứa phần tử mục tiêu Độ phức tạp C(/0£3/2n> 0 (log li) Hiệu suất Tìm kiếm tam phân hoạt động trên các Tìm kiếm nhị phân hoạt động tốt trên mảng đã được sắp xếp Nó hiệu quả hơn các mảng đã được sắp xếp Nó là một binary search hong một số hường hợp, thuật toán đơn giản và hiệu quả, nhưng nhưng không phải lúc nào cũng như vậy yêu cầu mảng đầu vào đã được sắp xếp Tìm kiếm tam phân tạo ra nhiều phân vùng trước hơn, do đó có thể tốn nhiều thời gian hơn Tìm kiếm nhị phân không tìm được để thực hiện so sánh Tìm kiếm tam phân cực hị hên hàm Lồi có thể tìm kiếm cực hị hên hàm lồi 2.4 Quy hoạch động Quỵ hoạch động là một phương pháp tính toán được sử dụng để giải quyết các vấn đề tối ưu hóa trong lĩnh vực khoa học máy tính và toán học Phương pháp này tập hung vào việc phân tách các vấn đề lớn thành các vấn đề con nhỏ hơn, từ đó tìm ra giải pháp tối ưu cho từng vấn đề con, sau đó kết hợp chúng lại để tạo ra một giải pháp tối ưu cho toàn bộ vấn đề lớn hơn [5] Dưới đây là một bài toán minh họa: Vỉ dụ: Cho một bảng gồm N hàng và M cột Các hàng và cột được đánh số từ trên xuống dưới và từ hái qua phải O hàng thứ i và cột thứ j được đánh dấu là ô Có K vật cản nằm hên một số ô nhất định Ta đang đứng ở ô (1,1) Hãy tính toán xem có bao nhiêu cách di chuyển đến ô (V, Af) biết chỉ được phép di chuyển sang phải hoặc xuống dưới và không được di chuyển đến ô có vật cản Gọi F[x,y] là số cách để đi đến được ô (x,y) Đe di chuyển đến ô (x,ý) nào đó, ta có thể di chuyển từ ô (x- 1, y) xuống dưới hoặc ô (x, y- 1) sang phải Vậy nếu ta biết được số cách di chuyển đến ô (x-1, ý) và ô (x, y- 1) thì ta sẽ có số cách di chuyển đến ô (x, ý) hay F[x,y] = F[x-l,y] + F[x,y-1] Neu ô (x,ý) có vật cản thì F[x,y] = 0 Chẳng hạn ta có bảng 4 hàng 6 cột và hai ô có vật cản là (3,3), (2, 5) được mô tả dưới ảnh sau: © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 43 Hội nghị ỉữioa học trẻ lần 5 năm 2023(YSC2023)-ỈUH " - Hàng Cột 1 2 3 4 5 6 1 Start 2 X 3 X 4 End Hình 4: Bảng di chuyền 4 hàng ố cột trong bài toán trên Dưới đây là đoạn mã C++ đề giải bài trên: //Đánh dầu các ô hàng 1 chỉ có một cách di chuyến for (int i = 1; i

Ngày đăng: 10/03/2024, 08:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w