سامانه مدلسازی چندبعدی تعاملی پیشرفته
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"