آموزش برنامه نویسی با سیپلکس
درس 32: آموزش برنامه نویسی با سیپلکس (بخش دوم)
تهیه شده توسط گروه بهینه یاب
آ
مقدمه
در این مثال می خواهیم به چند نکته مهم در برنامه نویسی با محیط ویژال بیسیک بپردازیم. نکته اول، توسعه یک مدل ریاضی را به صورت برداری تعریف کنیم که در مدل ها در مقیاس واقعی بسیار کاربرد دارد. در بخش دوم به نحوی استفاده از قابلیت تولید عدد تصادفی در برنامه نویسی ویژال بیسیک می پردازیم و در یک مثال نشان می دهیم که چطور در یک مدل بهینه سازی می توان استفاده کرد. نکته سوم، تعیین زمان یافتن جواب بهینه است که در پژوهش های تحقیق در عملیات بسیار اهمیت دارد و زمان حل یک مدل یکی از ویژگی های مهم است که می بایستی در گزارشات علمی گزارش داده شود. نکته اخر، در خصوص نحوه یافتن خطا در زبان ویژال بیسیک است که برای بررسی درستی عملکرد مدل بسیار مهم است.
ارایه یک مدل خطی برداری
در این درس، به بررسی مدل زیر می پردازیم.
در برنامه تعداد متغیرها (m) و تعداد محدودیت ها (n) با متغیر numberofvariable و numberofconstraint مشخص می شود. مقدار سمت راست (bi) و aij را به صورت اعداد تصادفی تعیین می کنیم. با توجه به اهمیت بخش های مختلف برنامه این مثال، به صورت دقیق هر بخش از کل توضیح داده می شود.
در ابتدا یک فرم به صورت زیر ایجاد می شود و سپس یک دکمه برای اجرای مدل با عنوان Run ایجاد می شود.
روی دکمه Run دو بار کلیک می کنیم و کد زیر را وارد می کنیم.
Dim cplex As New Cplex
Dim var(0)() As INumVar
Dim rng(0)() As IRange
Dim experssion(10) As ILOG.Concert.IIntExpr
Dim numberofvariable As Integer
Dim numberofconstraint As Integer
numberofvariable = 15
numberofconstraint = 15
Dim coffobj(numberofvariable) As Double
Dim coff(numberofconstraint, numberofvariable) As Double
Dim rhs(numberofconstraint) As Double
For i = 1 To numberofvariable
coffobj(i) = Rnd() * 4
Next
For i = 1 To numberofconstraint
For j = 1 To numberofvariable
coff(i, j) = Rnd() * 10
Next
Next
For i = 1 To numberofconstraint
rhs(i) = Rnd() * 2000
Next
Dim x(numberofvariable) As INumVar
For vc = 0 To numberofvariable
x(vc) = cplex.NumVar(0, Double.MaxValue, ILOG.Concert.NumVarType.Float)
Next
var(0) = x
برای مشاهده ادامه پیاده سازی این مثال که در ان به نحوه تبادل با فایل متنی در برنامه ویژوال بیسیک بسته های آموزشی این درس را به شرح ذیل تهیه نمایید.