อัปเดต: ดูแพ็คเกจ GEKKOใหม่ที่เราเพิ่งเปิดตัว
APM Pythonเป็นกล่องเครื่องมือเพิ่มประสิทธิภาพฟรีที่มีส่วนต่อประสานกับ APOPT, BPOPT, IPOPT และตัวแก้ไขอื่น ๆ มันให้ข้อมูล (Jacobian) แรกและข้อมูลที่สอง (Hessian) แก่นักแก้ปัญหาและให้เว็บอินเตอร์เฟสที่เป็นตัวเลือกเพื่อดูผลลัพธ์ APM Python ไคลเอ็นต์ถูกติดตั้งด้วย pip:
pip install APMonitor
นอกจากนี้ยังสามารถติดตั้งในสคริปต์ Python ด้วย:
try:
from APMonitor.apm import *
except:
# Automatically install APMonitor
import pip
pip.main(['install','APMonitor'])
from APMonitor.apm import *
เราได้ทำการทดสอบเกณฑ์เปรียบเทียบสมรรถนะสองครั้งแล้วและพบว่าการรวมกันของ APOPT (วิธีการตั้งค่าที่ใช้งานอยู่) และ IPOPT (วิธีการจุดภายใน) สามารถแก้ปัญหาการวัดประสิทธิภาพได้เป็นจำนวนมาก มีปัญหาตัวอย่างจำนวนมากที่มาพร้อมกับไฟล์ zip ดาวน์โหลด สิ่งที่คุณอาจต้องการเริ่มต้นคือปัญหา Hock Schittkowski # 71 มันเป็นตัวอย่างที่ง่ายที่สุดและแสดงให้เห็นถึงวิธีการแก้ปัญหาการเพิ่มประสิทธิภาพที่มีข้อ จำกัด
มีส่วนต่อประสานของเบราว์เซอร์และ API เป็น Python / MATLAB API เป็น Python เป็นสคริปต์เดียว (apm.py) ที่สามารถดาวน์โหลดได้จากหน้าแรกของ apmonitor.com เมื่อสคริปต์โหลดลงในรหัส Python มันจะให้ความสามารถในการแก้ปัญหาของ:
- สมการไม่เชิงเส้น
- การเขียนโปรแกรมแบบไม่เชิงเส้นจำนวนเต็มแบบผสม
- สมการเชิงอนุพันธ์และพีชคณิต
- กำลังสองน้อยที่สุดรุ่นที่เหมาะสม
- การเคลื่อนย้ายการประมาณเส้นขอบฟ้า
- การควบคุมการทำนายตัวแบบไม่เชิงเส้น
- เป็นต้น
สำหรับผู้ใช้ใหม่ซอฟต์แวร์ APM Python มีฟอรัม Google Groups ที่ผู้ใช้สามารถโพสต์คำถาม มีการสัมมนาผ่านเว็บที่แสดงปัญหาการเพิ่มประสิทธิภาพในการวิจัยการดำเนินงานและวิศวกรรม
ด้านล่างเป็นตัวอย่างของปัญหาการปรับให้เหมาะสม (hs71.apm)
Model
Variables
x[1] = 1, >=1, <=5
x[2] = 5, >=1, <=5
x[3] = 5, >=1, <=5
x[4] = 1, >=1, <=5
End Variables
Equations
x[1] * x[2] * x[3] * x[4] > 25
x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 = 40
minimize x[1] * x[4] * (x[1]+x[2]+x[3]) + x[3]
End Equations
End Model
ปัญหาการปรับให้เหมาะสมจะได้รับการแก้ไขด้วยสคริปต์ Python ต่อไปนี้:
from APMonitor.apm import *
server = 'http://byu.apmonitor.com'
# Application name
app = 'eqn'
# Clear previous application
apm(server,app,'clear all')
# Load model file
apm_load(server,app,'hs71.apm')
# Option to select solver (1=APOPT, 2=BPOPT, 3=IPOPT)
apm_option(server,app,'nlc.solver',3)
# Solve on APM server
solver_output = apm(server,app,'solve')
# Display solver output
print(solver_output)
# Retrieve results
results = apm_sol(server,app)
# Display results
print('--- Results of the Optimization Problem ---')
print(results)
# Display Results in Web Viewer
url = apm_var(server,app)
print("Opened Web Viewer: " + url)
APM Python เป็นบริการบนเว็บฟรีสำหรับการเพิ่มประสิทธิภาพ ปัญหาการปรับให้เหมาะสมจะได้รับการแก้ไขบนรีโมตเซิร์ฟเวอร์และผลลัพธ์จะถูกส่งคืนไปยังสคริปต์ Python แบบโลคัล เซิร์ฟเวอร์ภายในของ APMonitor พร้อมให้ดาวน์โหลดเพื่อไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต ( ดาวน์โหลดเซิร์ฟเวอร์ ) เราเพิ่งเพิ่มการสนับสนุนการประมวลผลแบบขนานสำหรับทั้ง MATLAB และ Python โมดูล Python เข้ากันได้กับ Python 2.7 หรือ Python 3+