فراخوانی ماتریس سه بعدی از اکسل در CPLEX

اخیرا سوالات و مشکلات زیادی در خصوص نحوه‌ی تعامل نرم‌افزار CPLEX با نرم‌افزار اکسل دریافت نموده‌ایم. در این پست قصد داریم نحوه‌ی ارتباط اساسی این دو نرم‌افزار و نحوه‌ی ورود و فراخوانی پارامترهای سه بعدی از نرم‌افزار اکسل را تشریح کنیم.

تنها سه دستور برای حصول این تعامل وجود دارد:

SheetConnection جهت اتصال فایل اکسل به نرم‌افزار CPLEX
SheetRead جهت خواندن اطلاعات از فایل اکسل و دورن‌ریزی در پارامتر
SheetWrite جهت نوشتن تنیجه‌ی یک متغیر در فایل اکسل

حال نحوه فراخوانی یک پارامتری سه بعدی از نرم‌افزار اکسل به CPLEX چگونه اتفاق می‌افتد؟ برای پاسخ به این سوال پارامتر سه‌بعدی زیر که در محیط OPL نوشته شده را در نظر بگیرید.

Parameter3D =
              [
                   [ [x x x x x]
                     [x x x x x]
                     [x x x x x]
                     [x x x x x] ]
                   [ [y y y y y]
                     [y y y y y]
                     [y y y y y]
                     [y y y y y] ]
                   [ [z z z z z]
                     [z z z z z]
                     [z z z z z]
                     [z z z z z] ]
                                    ];

در نرم‌افزار اکسل، ابتدا اطلاعات موجود را به نحوی تجمیع می‌کنیم که یک ماتریس دوبعدی حاصل شود.

 

 

توجه شود که در فایل اکسل تجمیع شده (برای این مثال) ۱۲ سطر وجود دارد. سپس این اطلاعات را به کمک دستورات زیر در فایل dat فراخوانی نمایید:

// .dat file
SheetConnection Favorite_name("excel_file_name.xlsx"); 
parameter2D from SheetRead (Favorite_name, "sheet!A2:E13");

عباراتی که با رنگ قرمز مشخص شده‌اند، دلخواه هستند. در نهایت در فایل mod عکس عمل قبلی بایستی اتفاق افتد: تبدیل اطلاعات دوبعدی به سه‌بعدی.

// .mod file
int N1 = 3;
int N2 = 4;
int N3 = 5;
range set1 = 1..N1;
range set2 = 1..N2;
range set3 = 1..N3;
int parameter2D [1..N1*N2][1..N3] = ...;
int parameter3D [i in set1][j in set2][k in set3] = 
parameter2D [you should purchase to know this!][k];


 

کد این مسئله به همراه منابع تکمیلی در لینک زیر قابل خرید است.

 

پست‌های مشابه

2
دیدگاه بگذارید

2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
ghaedrahmat5324

با سلام و وقت بخیر و عرض تشکر
در این مثال علاوه بر موارد گفته شده اگر بخواهیم N1 وN2 و N3 را هم از اکسل بعنوان مجموعه بخونه، چطور باید دستور را نوشت؟

عباس

سلام جناب دكتر
با تشكر از راهنمايي جهت نحوه ورود اطلاعات و اينكه لطف كرديد و اين موضوع را مدنظر قرار داديد.
اميدوارم شركت IBM راه مناسبتري را براي تعريف پارامترهاي چند بعدي معرفي كنند. در نرم افزارهاي بهينه سازي مشابه مانند گمز و … ورود ديتاهاي چند بعدي بسيار ساده و تنها از طريق معرفي بعد ماتريس انجام ميشه.

سپاس