Các chiến lược tham lam, được coi là trong chương trước, xây dựng một giải pháp cho một vấn đề tối ưu hóa mảnh bằng mảnh, luôn luôn thêm một mảnh tối ưu tại địa phương đến một giải pháp xây dựng một phần. Trong chương này, chúng tôi thảo luận về một cách tiếp cận khác nhau để thiết kế thuật toán cho các vấn đề tối ưu hóa. Nó bắt đầu với một số giải pháp khả thi (một giải pháp đáp ứng tất cả các khó khăn của vấn đề) và tiền thu được để cải thiện nó bằng các ứng dụng lặp đi lặp lại của một số bước đơn giản. Bước này thường liên quan đến một sự thay đổi nhỏ, bản địa hóa năng suất một giải pháp khả thi với một giá trị được cải thiện của hàm mục tiêu. Khi không có thay đổi như vậy cải thiện giá trị của hàm mục tiêu, các thuật toán trả về các giải pháp khả thi cuối nhưtối ưu và dừng lại.Có thể có một số trở ngại cho việc thực hiện thành công của ý tưởng này. Trước tiên, chúng tôi cần một giải pháp khả thi ban đầu. Đối với một số vấn đề, chúng tôi luôn luôn có thể bắt đầu với một giải pháp nhỏ hoặc sử dụng một giải pháp tương đối thu được bằng một số khác (ví dụ như, tham lam) thuật toán. Nhưng đối với những người khác, việc tìm kiếm một giải pháp ban đầu có thể yêu cầu càng nhiều nỗ lực như giải quyết vấn đề sau khi một giải pháp khả thi đã được xác định. Thứ hai, nó không phải luôn luôn là rõ ràng những gì thay đổi nên cho phép trong một giải pháp khả thi để chúng tôi có thể kiểm tra hiệu quả cho dù giải pháp hiện hành là địa phương tối ưu và, nếu không, thay thế nó bằng một một tốt hơn. Thứ ba — và điều này là khó khăn đặt cơ bản-là một vấn đề của địa phương so với toàn cầu extremum (tối đa hoặc tối thiểu). Suy nghĩ về vấn đề của việc tìm kiếm điểm cao nhất trong khu vực đồi núi với bản đồ không vào một ngày sương mù. Một điều hợp lý để làm sẽ là để bắt đầu đi bộ "lên đồi" từ điểm bạn đang ở cho đến khi nó trở nên không thể làm như vậy bởi vì không có hướng sẽ dẫn. Bạn sẽ đạt đến một điểm cao nhất địa phương, nhưng vì một khả năng giới hạn, sẽ có không có cách nào đơn giản để nói cho dù vấn đề là cao nhất (toàn cầu tối đa bạn là sau khi) trong toàn bộ khu vực.May mắn thay, có những vấn đề quan trọng mà có thể được giải quyết bằng thuật toán lặp đi lặp lại cải tiến. Quan trọng nhất trong số đó là tuyến tính lập trình. 345 346 cải thiện lặp đi lặp lạiChúng tôi đã có gặp chủ đề này trong phần 6.6. Ở đây, trong phần 10,1, chúng tôi giới thiệu các phương pháp simplex, thuật toán cổ điển cho lập trình tuyến tính. Phát hiện bởi nhà toán học người Mỹ George B. này là Dantzig năm 1947, thuật toán này đã chứng tỏ là một trong những thành tựu đặt do hậu quả trong lịch sử của algorithmics.Trong phần 10.2, chúng tôi xem xét vấn đề quan trọng của tối đa hóa số lượng lưu lượng mà có thể được gửi thông qua một mạng lưới với các liên kết giới hạn khả năng. Vấn đề này là một trường hợp đặc biệt của tuyến tính lập trình. Tuy nhiên, cấu trúc đặc biệt của nó làm cho nó có thể giải quyết vấn đề bằng thuật toán hiệu quả hơn so với các phương pháp simplex. Chúng tôi phác thảo các thuật toán lặp đi lặp lại cải thiện cổ điển cho vấn đề này, do nhà toán học người Mỹ, L. R. Ford, Jr., và D. R. Fulkerson phát hiện trong những năm 1950.
đang được dịch, vui lòng đợi..