So sánh ngôn ngữ ampl và cples

Hãy xem xét ví dụ sau. Công ty sơn Berkeley sản xuất hai màu sơn, xanh dương và vàng. Sơn xanh được bán với giá

$10 mỗi gallon, trong khi sơn vàng được bán với giá $15 mỗi gallon. Công ty có một nhà máy và mỗi lần chỉ có thể

sản xuất một màu sơn. Tuy nhiên, sơn xanh lam dễ sản xuất hơn nên nhà máy có thể sản xuất 40 ga-lông mỗi giờ sơn

xanh, nhưng chỉ có 30 ga-lông mỗi giờ sơn vàng. Ngoài ra, bộ phận tiếp thị nói với nhà sản xuất rằng họ có thể

bán tối đa 860 gallon sơn vàng và 1000 gallon sơn xanh. Nếu một tuần là 40 giờ và sơn không thể được lưu trữ cho

đến tuần sau, chúng ta cần xác định cần tạo ra bao nhiêu gallon sơn xanh và vàng; sao cho tổng doanh thu là lớn

nhất.

tiêu chuẩn:

AMPL là một ngôn ngữ mạnh mẽ được thiết kế dành riêng cho lập trình toán học. AMPL có nhiều tính năng và tùy

chọn; tuy nhiên hướng dẫn này bao gồm một tập hợp con nhỏ của these1. Các phần từ 1 đến 5 cung cấp phần giới

thiệu về lập mô hình các bài toán Quy hoạch tuyến tính [LP] với AMPL. Phần 6 và 7 lần lượt giới thiệu các khả

năng lập mô hình của AMPL cho Lập trình số nguyên [IP] và Lập trình phi tuyến tính [NLP].

tối đa 10P aintB + 15P aintG

Để tạo một tệp văn bản, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào mà bạn cảm thấy thoải mái. Ví

dụ: bạn có thể sử dụng Notepad, được tìm thấy trên mọi hệ thống Windows 95 và Windows NT. Để tạo tệp chương

trình sau, hãy khởi động Notepad và nhập văn bản sau.

Đặt P aintB đại diện cho số gallon sơn xanh chúng ta sẽ tạo ra và P aintG đại diện cho số gallon sơn vàng mà

chúng ta sẽ tạo ra. Sau đó, vấn đề được xây dựng như LP sau:

AMPL được thiết kế để cho phép nhập các chương trình toán học theo một cú pháp rất gần với ký hiệu đại số mà

bạn thấy ở trên. Để sử dụng AMPL, chúng ta cần tạo một tệp văn bản có mã chương trình toán học.

1 Mô hình LP đơn giản

Giới thiệu về AMPL

Hướng dẫn฀

฀ Hướng dẫn này ban đầu được chuẩn bị bởi P. Kaminsky. Phiên bản gốc sau đó được sửa đổi và mở rộng bởi D. Rajan.

1Để biết thêm thông tin, hãy xem cuốn sách

AMPL: Ngôn ngữ lập mô hình cho lập trình toán học của R. Fourer, DM Gay và BW Kernighan [1993: Boyd & Fraser]

  • Tên phải là duy nhất. Một biến và một ràng buộc không thể có cùng tên.
  • Các biến phải được khai báo bằng từ khóa var.

####### Ngoài ra, đôi khi Notepad tự động thêm phần mở rộng .txt vào tệp, vì vậy bạn có thể phải đổi tên tệp để loại bỏ phần

####### mở rộng .txt. Ví dụ: một số phiên bản Notepad sẽ tự động lưu tệp từ ví dụ trước dưới dạng z:\my฀ iles\examp 1.mod, vì

####### vậy bạn có thể phải chỉnh sửa tên tệp để sử dụng phần mở rộng bổ sung.

####### Đừng quên kết thúc mọi lệnh bằng dấu chấm phẩy. Mỗi khi bạn khởi động AMPL, bạn cần chọn một bộ giải bằng cách sử

####### dụng lệnh bộ giải tùy chọn này. Hiện tại, chúng tôi sẽ luôn sử dụng cplex, nhưng sau này chúng tôi sẽ tìm hiểu về các bộ

####### giải khác.

####### Nếu bạn nhập đúng mô hình, bạn sẽ không nhận được thông báo lỗi nào. Nếu bạn mắc lỗi, hãy sửa tệp mô hình. Trước khi tải

####### lại mô hình, trước tiên bạn phải đặt lại AMPL bằng cách nhập:

####### Sau khi tệp được tạo, tệp sẽ được lưu với phần mở rộng .mod. Đối với các ví dụ sau, tệp được lưu trên ổ đĩa z: trong

####### thư mục myFiles dưới dạng z:\myFiles\examp 1. Lưu ý rằng không thể sử dụng tên tệp dài với AMPL. Tên tệp bạn chọn phải

####### có nhiều nhất tám ký tự theo sau là phần mở rộng ba ký tự.

  • Biểu tượng # cho biết bắt đầu bình luận. Mọi thứ sau biểu tượng đó đều bị bỏ qua.

####### mô hình z:\myFiles\examp_1;

  • Mục tiêu bắt đầu bằng phóng to hoặc thu nhỏ, tên và dấu chấm phẩy [:]. Sau đó,

####### menu bắt đầu thích hợp. Sau khi một số văn bản xuất hiện, bạn sẽ thấy lời nhắc AMPL, đó là ampl:.

####### Để tải lại mô hình, hãy nhập:

####### tuyên bố khách quan xuất hiện.

  • Tất cả các dòng mã phải kết thúc bằng dấu chấm phẩy.

####### Sau khi tệp được tạo và bạn đã kiểm tra tên tệp, hãy chạy chương trình AMPL bằng cách chọn tệp đó từ

####### cài lại;

####### ## Ví dụ Một var

####### PaintB; # lượng màu xanh lam var

####### PaintG; # lượng vàng

####### bất đẳng thức xuất hiện.

####### Trước tiên, bạn phải chọn một bộ giải, là chương trình mà AMPL gọi để thực sự giải toán

####### bộ giải tùy chọn cplex;

  • Mỗi ràng buộc bắt đầu bằng chủ đề, tên và dấu chấm phẩy. Sau đó, phương trình hoặc

####### chương trình. Chúng tôi sẽ sử dụng bộ giải có tên là cplex cho những ví dụ này, vì vậy hãy nhập:

####### Lưu ý những điều sau đây về ngôn ngữ AMPL:

  • AMPL phân biệt chữ hoa chữ thường. Từ khóa phải ở dạng chữ thường.

####### Bây giờ, hãy nhập lệnh sau, lệnh này sẽ yêu cầu AMPL đọc trong tệp bạn đã tạo.

####### tối đa hóa lợi nhuận: 10PaintB + 15PaintG; tùy

####### thuộc vào thời gian: [1/40]*PaintB + [1/30]*PaintG

Chủ Đề