Thực tế có nhiều cách tiếp cận khác nhau cho giai đoạn I trong phương pháp đơn giản. Đặc biệt, có các thuật toán pha I sử dụng các phép lặp đơn giản prx đơn giản và các thuật toán pha I khác sử dụng các phép lặp đơn giản kép. Đây là một cách tiếp cận rất chung có thể dễ dàng được điều chỉnh để sử dụng một giải pháp khả thi đã biết. Phiên bản này sử dụng phương pháp đơn giản kép trong giai đoạn I và phương pháp đơn giản nguyên thủy trong giai đoạn II, nhưng có một biến thể sử dụng các lần lặp đơn giản nguyên thủy trong giai đoạn I và lặp lại đơn giản kép trong giai đoạn II mà tôi sẽ đề cập ở cuối. Cách tiếp cận mà tôi sẽ mô tả ở đây được thảo luận trong nhiều sách giáo khoa về lập trình tuyến tính. Ví dụ, xem văn bản của Robert Vanderbei's .
Giả sử rằng chúng ta đang giải quyết
maxcx
tùy thuộc vào
Ax=b
l≤x≤u
Trong đó có kích thước bằng . Để đơn giản, giả sử rằng các hàng của là độc lập tuyến tính (điều này có thể được thực hiện bằng hệ số tiết lộ thứ hạng.)m n AAmnA
- Chọn một cơ sở ban đầu. Đây là một bộ sưu tập của biến để các cột tương ứng của tạo thành một không ít ma trận . Các biến không quan trọng còn lại có thể được đặt thành giới hạn trên hoặc dưới của chúng (hoặc bằng 0 nếu một biến không có giới hạn nào cả.) A BmAB
Một cách dễ dàng để thực hiện điều này từ giải pháp ban đầu của bạn là chọn các biến cơ bản là các biến số xa nhất trong giới hạn của chúng trong giải pháp khả thi đã biết và sau đó xác minh rằng là số ít. Bạn có thể phải sửa đổi cơ sở để làm cho không đơn. Vấn đề ở đây là có nhiều cơ sở có thể, nhưng cái này có các biến cơ bản là các biến có vẻ đúng từ giải pháp khả thi của bạn. BBB
Giải các phương trình để thu được các giá trị của các biến cơ bản. Ax=b
- Giải pháp cơ bản mà bạn có được có khả năng là không thể thực hiện được theo nghĩa là một số biến số nguyên thủy nằm ngoài giới hạn của chúng. Nó cũng có khả năng là không khả thi theo nghĩa là một số chi phí giảm của các biến không cơ bản có dấu hiệu sai (ví dụ: các biến không bazơ ở giới hạn thấp hơn với chi phí giảm tích cực hoặc biến không bazơ ở giới hạn trên với chi phí giảm âm).
Chúng tôi sẽ khắc phục vấn đề này bằng cách thay đổi hàm mục tiêu thành một tính khả thi kép. Đối với mỗi biến không dao động ở giới hạn dưới của nó, trừ đi một đại lượng từ hệ số hàm mục tiêu. Đối với mỗi biến không quan trọng ở giới hạn trên của nó, thêm một đại lượng dương vào hệ số. Điều này đảm bảo rằng từ điển là khả thi kép. MMM
Điểm quan trọng của việc sửa đổi chức năng mục tiêu này là cố gắng làm việc theo hướng khả thi nguyên thủy nhưng cũng hướng tới sự tối ưu đối với chức năng mục tiêu ban đầu. Bạn muốn đủ lớn để bạn có tính khả thi kép, nhưng bạn muốn giữ ảnh hưởng nhiều nhất có thể từ hàm mục tiêu ban đầu. M
Thực hiện các phương pháp đơn giản kép để có được một giải pháp cơ bản, cả khả thi nguyên thủy (tất cả các biến cơ bản trong boudns) và khả thi kép (tất cả các chi phí giảm đều có dấu hiệu mong muốn.) Giải pháp này là tối ưu cho vấn đề giai đoạn I.
Thay thế hàm mục tiêu pha I đã sửa đổi bằng hàm mục tiêu ban đầu. Bây giờ bạn sẽ có một giải pháp cơ bản khả thi nguyên thủy (thay đổi chức năng mục tiêu không ảnh hưởng đến điều này) nhưng không khả thi kép. Thực hiện các bước lặp đơn giản nguyên thủy để lấy lại sự tối ưu.
Một cách thay thế rõ ràng cho cách tiếp cận này là sửa đổi phía bên phải b khi bắt đầu giai đoạn I, sử dụng các bước lặp đơn giản nguyên thủy trong giai đoạn I để đạt được sự tối ưu, sau đó đưa phía bên phải ban đầu trở lại cho giai đoạn II và sử dụng các bước lặp đơn giản kép trong giai đoạn II.