سامانه مدل‌سازی چندبعدی تعاملی پیشرفته - ویکی‌پدیا، دانشنامهٔ آزاد

AIMMS (مخفف Advanced Interactive Multidimensional Modeling System به معنی سامانه مدل‌سازی چندبعدی تعاملی پیشرفته) یک سیستم نرم‌افزاری طراحی شده برای مدل‌سازی و حل مشکلات از نوع مقیاس بزرگ بهینه‌سازی و برنامه‌ریزی است. آن شامل یک زبان مدل‌سازی جبری و محیط توسعه یکپارچه برای هر دو مدل ویرایشی که اولی ایجاد یک رابط کاربر گرافیکی در اطراف این مدل، و دومی یک محیط کاربر نهایی گرافیکی است می‌باشد. AIMMS به چندین حل‌کننده از طریق حل‌کننده واسطه باز AIMMS بستگی دارد، با حل‌کننده واسطه بازCOIN-OR گیج نشده‌است که برخلاف AIMMS OSI یک پروژه متن باز هستند. حل کننده‌های پشتیبانی شده عبارتند از: CPLEX, Gurobi MOSEK, CBC, Conopt, MINOS, IPOPT, SNOPT, KNITRO و CP Optimizer. AIMMS به عنوان یکی از پنج زبان مهم مدل‌سازی جبری در نظر گرفته می‌شود. (دیگران: AMPL, GAMS, LINDO / LINGO و MPL)، و خالقش (یوهانس J. Bisschop) برای کار خود را در این زبان با جایزه تأثیرگذار INFORMS تقدیر شده‌است.

ویژگی‌ها[ویرایش]

ویژگی‌های AIMMS مخلوطی از سبک‌های برنامه‌نویسی اعلانی و ضروری است. فرمولاسیون مدل‌ها بهینه‌سازی از طریق عناصر اعلانی زبان مانند مجموعه و شاخص‌ها صورت می‌گیرید، به خوبی پارامترهای عددی و چند بعدی، متغیرها و محدودیت‌ها، که به تمام زبان‌های مدل‌سازی جبری معمول هستند و برای توضیحات مختصر از بسیاری مشکلات در حوزه بهینه‌سازی ریاضی اجازه می‌دهد. واحدهای اندازه‌گیری به صورت بومی در زبان پشتیبانی می‌شوند، و تجزیه و تحلیل واحدهای کامپایل برای تشخیص خطاها مدل‌سازی به کار گرفته می‌شوند.

روش‌ها و اظهارات کنترل جریان در AIMMS برای موارد زیر در دسترس هستند

تبادل اطلاعات با منابع داده خارجی مانند صفحات گسترده، پایگاه داده، XML و فایل‌های متنی
قبل داده و پس از پردازش وظایف در اطراف مدل بهینه‌سازی
کاربران دست زدن به رویداد رابط
ساخت و ساز از الگوریتم ترکیبی برای نوع مشکل برای حل آن هیچ مستقیم کارآمد در دسترس هستند.
برای حمایت از استفاده مجدد از قطعات مدل‌سازی مشترک، AIMMS اجازه می‌دهد تا طراحان به سازماندهی مدل خود را در کتابخانه مدل کاربر.

پشتیبانی AIMMS از طیف گسترده‌ای از انواع مسائل بهینه‌سازی ریاضی: برنامه‌ریزی خطی
برنامه‌نویسی درجه دوم
برنامه‌ریزی غیر خطی
برنامه‌نویسی مختلط عدد صحیح
برنامه‌ریزی غیر خطی عدد صحیح مختلط
بهینه‌سازی جهانی
مشکلات مکمل (MPECs)
برنامه‌نویسی تصادفی
بهینه‌سازی قوی
برنامه‌نویسی محدودیت

مدل نمونه[ویرایش]

یک مشکل حمل و نقل از George Dantzig برای ارائه یک مدل AIMMS مورد استفاده قرار می‌گیرد.

MAIN MODEL Main_Transport 
 DECLARATION SECTION 
 QUANTITY:  identifier: QuantityLength  base unit: mile ; 
 QUANTITY:  identifier: QuantityCurrency  base unit: $ ; 
 SET:  identifier: Plants  index: p ; 
 SET:  identifier: Markets  index: m ; 
 PARAMETER:  identifier: Capacity  index domain: p ; 
 PARAMETER:  identifier: Demand  index domain: m ; 
 PARAMETER:  identifier: Distance  index domain: (p,m)  unit: 1000 * mile ; 
 PARAMETER:  identifier: Freight  unit: $/(۱۰۰۰ * mile) ; 
 PARAMETER:  identifier: TransportCost  index domain: (p,m)  unit: 1000 * $  definition: Freight * Distance(p,m) ; 
 VARIABLE:  identifier: Shipment  index domain: (p,m)  range: nonnegative ; 
 CONSTRAINT:  identifier: SatisfyCapacity  index domain: p  definition: sum(m, Shipment(p,m)) <= Capacity(p) ; 
 CONSTRAINT:  identifier: MeetDemand  index domain: m  definition: sum(p, Shipment(p,m))>= Demand(m) ; 
 VARIABLE:  identifier: TotalCost  unit: 1000 * $  definition: sum((p,m), TransportCost(p,m)*Shipment(p,m)) ; 
 MATHEMATICAL PROGRAM:  identifier: TransportModel  objective: TotalCost  direction: minimize  constraints: AllConstraints  variables: AllVariables ; 
 ENDSECTION ; 
 PROCEDURE  identifier: MainInitialization  body:  Plants := data { seattle, san-diego };  Markets := data { new-york, Chicago, topeka }; 
 Capacity(p) := data { seattle: 350, san-diego: 600 };  Demand(m) := data { new-york: 325, Chicago: 300, topeka: 275 }; 
 Distance(p,m) := data  { (seattle, new-york): 2.5, (seattle, Chicago): 1.7, (seattle, topeka): 1.8,  (san-diego, new-york): 2.5, (san-diego, Chicago): 1.8, (san-diego, topeka): 1.4 }; 
 Freight := ۹۰ [$/(۱۰۰۰*mile)]; 
 ENDPROCEDURE ; 
 PROCEDURE  identifier: MainExecution  body:  solve TransportModel; 
 ENDPROCEDURE ; 
ENDMODEL Main_Transport ; 

منابع[ویرایش]

We are moving forward, from now on you can call us AIMMS", http://business.aimms.com/moving-forward-now-can-call-us-aimms/%7B%7Bسخ}}[پیوند مرده] Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. ISBN 978-1-4020-7547-6.
Roelofs, Marcel (2010). AIMMS Language Reference (PDF). lulu.com. ISBN 978-0-557-42456-6.

Roelofs, Marcel (2010). AIMMS User's Guide (PDF). lulu.com. ISBN 978-0-557-06360-4.

Paragon Decision Technology (2009). "AIMMS Open Solver Interface API"