سامانه مدل‌سازی چندبعدی تعاملی پیشرفته

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)) = 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. .
Roelofs, Marcel (2010). AIMMS Language Reference (PDF). lulu.com. .
 Roelofs, Marcel (2010). AIMMS User's Guide (PDF). lulu.com. .
Paragon Decision Technology (2009). "AIMMS Open Solver Interface API"

رده:بهینه‌سازی ریاضی
رده:جبر محاسباتی
رده:زبان‌های برنامه‌نویسی عددی
رده:شرکت‌های نرم‌افزاری زنجیره تأمین
رده:مدل‌سازی ریاضی
رده:مدیریت زنجیره تأمین
رده:ویکی‌سازی رباتیک
رده:تجزیه و تحلیل زنجیره تأمین