دوست عزیز سلام!
لطفاً برای پرسیدن سوال، یکی از پستهای سایت را انتخاب کرده و سوال خود را مطرح نمایید و تنها برای سفارش پروژه، همکاری و آموزش با ادمین در تماس باشید.
سلام و ادب
تکلیف t در این محدودیت مشخص نیست. نمیشه هم در سور عمومی باشه و هم در سیگما، احتمالا اونی که در سیگما هست یک شرطی روش هست. معادله اصلی رو ببینید و تحلیل کنید مفهوم چیه
سلام وقت به خیر
آیا در نرم افزار گمز میشه از جواب های یک معادله در معادله دیگه استفاده کرد؟ اگر می شود چگونه می توان این کار را انجام داد
ممنون میشم راهنمایی ام بفرمایید
محمودی
در سپتامبر 4, 2024
سلام وقت بخیر
منظور شما از معادله چی هست؟
اگر منظور مدل هست، بله،
فرض کنیم جواب مدل اول شامل متغیر x باشه.
و در مدل دوم y=x+2 باید بشه. کافیه در معادله دوم به جای x از x.L استفاده کنین که مقدار بهینه مدل قبل رو استفاده کنه.
فردین
در فوریه 10, 2024
سلام و خسته نباشید.
ببخشید دکتر من یه سوالی داشتم این که در کد زیر
;ft= 100*(1+0.05)**5 +sum(d,tc(d)*xdd(d))
;f(i,j)= ——- + ((power((x(j)-xc(i)),2)+power((y(j)-yc(i)),2)+power((z(j)-zc(i)),2)) **0.5)
وقتی ft را در فرمول f(i,j) جایگذاری میکنم (در جای خالی) ، هنگام نشون دادن مقدار f(i,j) اون رو برابر مقدار ft نشون میده و وقتی برش میدارم مقدار درست f(i,j) رو نشون میده.
لطفا راهنمایی کنید که چطور این جایگذاری رو انجام بدم که به این مشکل بر نخوره و مقدار مجموع ft با f(i,j) را در f(i,j) نشون بده.
سلام وقت بخیر
لطفا بفرمایین اینا قبل از معادلات هستن (محدودیت هست یا خیر) و اینکه متغیر تصمیم هست داخل این فرمول؟ به چه شکل؟
امیر
در فوریه 9, 2024
با سلام و احترام بنده یک مشکل دارم اگه کمکم کنید ممنون میشم.
اگر iوj شاخص مربوط به مشتری ها باشد.
و k شاخص مربوط به وسیله نقلیه باشد.
و متغیر باینری Xijk مقدار یک بگیرد اگر مشتری i قبل از مشتری j توسط وسیله نقلیه k بازدید شود، در غیر اینصورت صفر.
سوال:
در یک محدودیت این متغیر به این صورت نوشته شود.
X0jk
این چگونه باید در گمز کد شود؟
تشکر
سلام وادب
شما اول باید یک مجموعه تعریف کنین که شامل دپو و مشتریها باشه. و i هم زیر مجموعه اون بشه.
Set n/i00,i01*i20/
I(n)/i01*i20/
;
بعد جایی که نیازه که دپو و مشتری داخل i باشن از n استفاده کنین و اگر فقط دپو بود x(“i00”,j,k)
Drik
در ژانویه 19, 2024
سلام. سوالم در مورد زمانی است که برای ژنراتور قید رزرو در نظر بگیریم. به اینصورت که 0<=Ri و Ri<=(Pimax_Pi)
(که Ri مقدار رزرو هر ژنراتور هست)، این قید در گمز اجرا میشود بعد از آن هزینه رزرو هم بدست میاد اما زمانی که هزینه رزرو با هزینه تولید و… جمع میشود و بخوایم هزینه کل را min کنیم آن موقع در جواب رزروی در نظر نمیگیرد.(فکر کنم نرم افزار به اینصورت عمل میکنه که قید رزرو رو یه قید الزامی در نظر نمیگیرد برعکس قید تعادل توان)
لطفاً اگر کسی راهکاری بلد هست بگه چکار کنم تا رزرو باشه و گمز اون رو صفر نکنه
سلام و روز بخير.
ممكنه اين مسئله وجود داشته باشه كه شما در قيود ديگر هزينه/توان و … داريد كه از نظر مدل صرفه اقتصادي بيشتري دارد كه انجام بشود و به همين خاطر اين قيد را در نظر نميگيره.
ايا متغيير موجود در اين قيد با ديگر متغييرها در ارتباط هست در محدوديتهاي ديگر؟
اگر R_{i} متغيير تصميم هست براي ان يك حد پايين غير صفر تعيين كنيد و نحوه عملكرد ان را در مدل ببينيد.
اين موارد را چك كنيد و قبل از همه مطمئن بشيد كه مدل شما اشكال محاسباتي و يا مدلسازي نداشته باشد.
مهناز
در نوامبر 27, 2023
با سلام و سپاس
آیا دستور ( sum(j,k(j) ,lambda(j)*x(i,j)) +lambda(p)*xo(i)=l=xo(i برای بیرون کشیدن ضریب lambda(p) درست است یا نه؟
ممنون میشم راهنمایی کنید.
سلام. منظورتون را دقيقتر بيان ميكنيد؟
به نظر معادله اشكال ساختاري دارد.
مهناز
در نوامبر 30, 2023
سلام.. منظور حل معادله زیر است.
sum(j,$p, lambda(j)*x(i,j))+lambda(p)*x(i,p)=l=x(i,p)
محمودی
در نوامبر 30, 2023
سلام و ادب
این معادله مربوط به تحلیل پوششی داده ها هست، اینکه لاندا جدا هست از سیگما یا خیر، باید چک کنید که فرمول مرجع چی هست، نه اینکه بیایم جداش کنیم، شرط پی اینجا مفهوم داره و باید دید که ارتباط بین پی و دو اندیس دیگه چی هست، اکر مقاله مرجع دارین منشن کنین
مهتاب
در سپتامبر 3, 2023
سلام استاد، برای حل یک مدل DEA سه مرحلهای، بهتر است از کدام SOLVER گمز استفاده کنیم؟
سلام و ادب
منظورتون از سه مرحله ای مراحل شبکه هست یا هر واحد به چند مرحله تقسیم میشه؟
اگر مدل خطی هست با cplex حل کنید
Alireza
در ژوئن 25, 2023
سلام و عرض ادب خسته نباشید سوال داشتم از خدمتتون ممنون میشم لطفا راهنماییم بفرمایید.
در تحلیل پوششی داده ها شبکه ایی مدلی با ۵ مرحله با مقادیر ورودی و خروجی و میانی متمایز دارم مراحل به صورت سری باهم در ارتباط اند و بین مراحل لینک مقدار میانی دارد. من به چه صورت مراحل و همین طورمقادیر ورودی و خروجی و میانی برای هر مرحله را جداگانه معرفی کنم که متوجه بشه مثلا مقدار ورودی مرحله سوم چنده و همینطور بتونم لینک بین مراحل را تعریف کنم مثلا از مرحله دو به سه یه مقدار میانی وجود داره (خروجی مرحله دوم شده ورودی مرحله سوم)
سلام روز بخیر
ببینید برای این مفاهیمی که بیان کردید مدل تحلیل پوششی شبکه ای وجود داره. برای پیاده سازیش در گمز، می تونید رو اندیس ها دقت بکنید و مشخص می شه باید چکار انجام بدید. مثلا برای بین دو مرحله با همدیگر معمولا یک پارامتر به اسم link(h,k) تعریف می کنن که صفر و یک هست و نشون دهنده ارتباط و توالی دو مرحله h,k هست.
مهناز مقبولی
در سپتامبر 25, 2022
سلام و وقت بخیر
در خصوص به کارگیری تابع smin و smax و تفاوت آن با تابع min , max هم مثالی رو لطف کنید. مخصوصا اینکه اگر هدف یافتن مینیمم مقدار نسبتی بین دو مجموعه باشد دستور استفاده به چه شکل خواهد بود؟
سلام و ادب
توابع smin و smax متغیر قبول نمیکنن. و اندیس محور هستن. مثلا بیشترین مقدار بین x(i) را پیدا میکنه. ولی دو تابع دیگه میاد دو مقدار رو با هم مقایسه میکنه. مثلا x بزرگتره یا 5. برای این هدف شما، طبیعتا حالت دوم به کارتون میاد، اما باید خطی سازی بشه که بشه حلش کرد. به عنوان تمرین خودتون خطی کنین تابع max(A,B) رو. اینجا بذارین با هم در موردش بحث میکنیم.
نوید عرب
در ژوئن 13, 2022
با سلام و تشکر از راهنمایی های شما
بنده این محدودیت رو در گمز میخوام بنویسم. ممنون میشم راهنمایی بفرمایید.
x_j (t)= x_j(t+1) where t=1,…,T-1
ممنون میشم راهنمایی بفرمایید.
سلام
فرض میکنیم که t یک اندیس هست و حاصل t*t+1 هم در یک مجموعه به نام tp خلاصه بشه. کاری که باید بکنید این هست که اولا x(j,k,tp) رو تعریف کنید و در محدودیت به شرح زیر عمل کنید:
اگر x یا اندیس های متفاوت دیگری هم در مدل استفاده میشه بفرمایید که در موردش بحث کنیم
fati sh
در می 4, 2022
خب tp رو باید به عنوان set تعریف کنم؟
به چه شکلی
چیزی که فرمودید رو انجام دادم و ارور میده که tp ناشناختس و ان را تعریف کنید
محمودی
در می 4, 2022
به صورت set باید تعریف بشه. که از 2 شروع میشه تا card(t)*(card(t)+1)
سلطانی
در آوریل 15, 2022
سلام و عرض ادب
خسته نباشید
من در مدل dea زیر زمانی که run میکنم مقادیر efficiency منفی بدست میاید میخواستم بدونم مشکل از چه چیزی میتواند باشد
خیلی متشکرم
سلام
مدلتون نشدنی شده. احتمالا طبق مدلتون کد رو ننوشتید. محدودیت دوم مشکوک ب نظر میرسه
سلطانی
در آوریل 17, 2022
با عرض سلام و وقت بخیر
خیلی متشکر از پاسخ دهی تون
کد نویسی من مربوط به این مدل است
اگر مساعدت بفرمایید و راهنمایی کنید خیلی ممنون میشوم
(EAB=MAX ∑(UrYrA
ViXiA=1∑ ,
ViYiA+S_1=1 ∑
UrYrB-_∑ ViXiB+S_2=0 ∑
سلطانی
در آوریل 17, 2022
حتی به این شکل هم مدل را run کردم ولی باز جواب ها منفی شد
sets
i/i1*i3/
*
*set i is ‘inputs’ / asset,opratingcost,employee/
*
r/r1*r7/
*
*set r is ‘outputs’ /revenue,netprofit,ROE,ROI,ROA,dividendyieldrairo,assetturnoverraito/
*
j/DMU1*DMU10/
;
ممنون بابت ارسال فایل.
مفاهیم مدل رو مقداری با دقت مطالعه کنین. تو مدل 12 مقاله ارسالی، شما مدلی رو می بینید که دو تا واحد A,B با هم قیاس میشن برای همینه که در هر دو محدودیت مقادیر slack بدون اندیس استفاده شدن. بنابراین دقت کنید که وقتی شما واحد A رو ثابت گرفتین، B رو هم ثابت بگیرین.
در مدل قبلیش هم که اسلک ها اندیس دارن. رو این موارد دقت بیشتری بکنید. کد خوبی نوشتید ولی منطبق با مفاهیم نیست.
سلطانی
در آوریل 24, 2022
با عرض سلام و وقت بخیر
خیلی متشکرم از پاسخگویی جامع و دقیق تون و زمانی که مرحمت میفرمایید و اختصاص میدهید
من طبق فرمایش شما مقادیر a,b را slack گرفتم اما فکر میکنم جایی را اشتباه انجام دادم چون برای تمامی dmu ها مقادیر کارایی یک شد که اینطور برای ادامه کار نتایج غیر منطقی میشود
امکانش هست لطف بفرمایید و کد نویسی اینجانب را مشاهده بفرمایید
خیلی متشکر از مساعدتتون
کد به نظر مشکلی نداره. فقط loop استفاده کنید چون به تعداد ترکیب 2 از 10 نیاز هست که مسئله حل بشه.
سلطانی
در آوریل 25, 2022
امکانش هست لطف بفرمایید و یک مثال بزنید
من متوجه ترکیب ۲ از ۱۰ که فرمودید نشدم
اینطور باید باشد ؟
,Loop (iter
محمودی
در آوریل 25, 2022
یعنی این مسئله همه ترکیبات A,B رودر نظر میگیره.
مثلا
i1-i2
i1-i3
i1-i7
….
پس شما احتمالا دو loop نیاز دارید.
loop(A,
Loop(B$(od(B ne ord(A),
solve
save results
);
);
سلطانی
در آوریل 25, 2022
بی نهایت سپاس از پاسخگویی دقیق و زمانی که اختصاص میدهید
واقعا خیلی متشکرم
فقط اینکه زوج مرتب های i1_i2,….. را که فرمودید باید به طور کامل در هر کد و در قسمت set بیان کنم ؟
محمودی
در آوریل 25, 2022
نه عزیز
عرض کردم
شما اول A,B رو با i آلیاس می کنین.
بعد توی لوپی که تو کامنت قبلی نوتشم، هر بار یک A و یک B خاص مشخص میشن و به عبارتی یک زوج که قراره با دستور solve در مدل مورد استفاده قرار بگیرند.
بعد از آن هم E(A,B) که کارایی قیاسی این زوج هست رو ذخیره میکنین. نیازی به تعریف این زوج ها نیست و لوپ خودش تولیدش میکنه.
سلطانی
در آوریل 25, 2022
بی نهایت از لطف و پاسخگویی عالی جنابعالی سپاسگزارم
محمودی
در آوریل 25, 2022
سلامت باشین
سلطانی
در آوریل 27, 2022
سلام وقتتون بخیر خسته نباشید
من کد را همانگونه که فرمودید نوشتم ولی این ارور ها را داد
امکانش هست لطف بفرمایید و راهنمایی کنید
خیلی متشکرم
alias(i,i2);
70 alias(i,i4);
71
72 loop (i2
73 loop(i4 $ ord(i4 ne ord(i2)
**** $10,767,409
10 ‘,’ expected
409 Unrecognizable item – skip to find a new statement
looking for a ‘;’ or a key word to get started again
767 Unexpected symbol will terminate the loop – symbol replaced by )
محمودی
در آوریل 27, 2022
سلام
i2 خودش یکی از اعضای مجموعه DMU هست. و نمیتونه تو لوپ بیاد. alias(i,A,B) به نظر بهتره
sets
i/i1*i10/
;
alias(i,k,m,a,b);
.
.
.
loop(a,
loop(b$(ord(a) ne ord(b),
.
solve
.
save results
););
[/css]
حالا باید دقت کنید که تو معادلات a,b رو یه جوری به معادلات بفهمونید. مثل همون روشی که برای j0 استفاده کرده بودید.
سلطانی
در آوریل 28, 2022
با عرض سلام و وقت بخیر
من مدلی که فرموده بودید را اجرا کردم ولی مجددا تمامی کارایی ها یک شد که برای ادامه و ادغام مدل مشکل ساز است
اگر لطف بفرمایید وبررسی بفرمایید یک دنیا ممنون میشم
چیزی که بهتون گفته شده رو درست پیاده نکردین. مثلا دستور solve باید داخل لوپ باشه و هر بار کارایی ذخیره بشه. اینکه همش یک بشه ممکنه از داده ها هم باشه
سلطانی
در می 3, 2022
با عرض سلام و وقت بخیر
خیلی ممنون از سایت خوب و پاسخگویی عالی تون
برای نمایش وزن های ورودی و خروجی در اخرین کد نویسی که خدمتتون ارسال کردم صرفا این عبارت باید اضافه شود ؟
display eff.l ;
display u*.l(i2) , v*.l(i2) ;
محمودی
در می 3, 2022
دوستم خوبم عرض کردم خدمت شما.
شما به ازای حلقه های تو در تویی که به اتمام میرسن جواب تولید شده خواهید داشت. یعنی یک eff(i,j) بعد از هر دستور solve وقبل از بسته شدن هر حلقه باید محاسبه بشه
سلام ممنون میشم راهنمایی بفرمایید
برای حل مدل dea در گمز زمانی که میخواهیم مقدار هر dmu با سایر dmu ها مقایسه شود و در نهایت یک خروجی ماتریس برای efficiency هر یک از پارامتر ها داشته باشیم
باید این را با چه پارامتری تعریف کنیم ؟
سلام
اول اینکه باید یه لوپ تعریف کنید که شمارندهش با اندیس dmu آلیاس شده باشه.
بعد یه پارامتر باید تعریف کرده باشید مثل eff(j) که در اینجا j با dmu آلباس شده. بعد از دستور سالو مقدار کارایی رو داخل این eff ذخیره میکنید.
ایمیل ارسال کنید برای پشتیبانی براتون ارسال بشه یک مثال
hamed
در نوامبر 11, 2021
با سلام
چطور میتوانم خروجی گمز به اکسل را به گونه ای در Loop ایجاد کنم که داده های ثبت شده در اکسل در دور بعدی جایگزین داده های فعلی نشود.
در واقع اگر دستور خروجی گمز به اکسل به مانند زیر باشد:
‘execute ‘gdxxrw.exe results.gdx o=results.xls var=v.L rng=NewSheet!F1:G4’
چطور میتوان موقعیت داده ها مثلا F1 را وابسته به اندیس درون حلقه کرد بالفرض:
loop(d,
…
rng=NewSheet!F%i%:G4
سلام
من شخصا خیلی معتقد به پیچوندن لقمه نیستم تو گمز. مثلا تو این حالت، یه پارامتر تعریف میکنم که به ازای loop میاد متغیری که میخوایم رو ذخیره میکنه. همین پارامتر رو میفرستم تو اکسل آخر سر.
ولی اگه این عمل براتون ضروریه، میتونین از system attributes استفاده کنین. مثال زیر رو ببینید:
در اینجا من از system.elapsed استفاده کردم. یعنی زمانی که تا الان طول کشیده. با افزایش j ها، این مقدار افزایش پیدا میکنه و هر بار یه شیت ایجاد میکنه. فقط تو این حالت باید زمان حل ها بیشتر از یه ثانیه طول بکشه که همشون برابر نشه.
اتریبیوت های زیادی برای گمز وجود دارن، که میتوین اینجا ویژگی ای که براتون مفیده رو انتخاب کنید. دقت کنید که میشه به صورت ترکیبی اینا رو استفاده کرد.
Mohsen
در دسامبر 18, 2021
سلام. یک مثال برای این جملتون که در پاسخ به سوال ذخیره نتایج لوپ گمز در اکسل هست بزنید. تشکر
“”من شخصا خیلی معتقد به پیچوندن لقمه نیستم تو گمز. مثلا تو این حالت، یه پارامتر تعریف میکنم که به ازای loop میاد متغیری که میخوایم رو ذخیره میکنه. همین پارامتر رو میفرستم تو اکسل آخر سر.””
سلام
دو تا نکته رو باید رعایت کنین. اول اینکه set ها و همچنین پارامترهای x,y رو از قبل باید تعریف کرده باشین. set با مقادیر، x,y هم فقط تعریف با دستور پارامتر.
نکته دوم اینکه آدرس فایل xlsx باید تو دایرکتوری فعال گمز باشه. ادرس دایرکتوری تو file/project هست.
سلام
اول مدلتون رو انتخاب کنین. از کد مدل بیسیک ccr استفاده کنین برای توسعه کد نویسیش.
کد ccr رو خواستید واتس اپ یا ایمیل بزنید براتون ارسال بشه.
amin
در دسامبر 31, 2020
سلام
برای کدنویسی مدل BCC خروجی محور از سری مدلهای DEA به مشکل خوردم
اینکه چظور مقادیر سمت راست رو تعریف کنم و حلقه ای که باید برای همه DMU ها حساب کنه رو کجا بزارم؟
یه نکته بگم که حالت دوگان مدل رو کدشو زدم
سلام
یه ایمیل به ادرس سایت بزنین براتون نمونه کد bcc ارسال بشه.
محمد
در نوامبر 27, 2019
سلام وقت بخیر
محدودیتی را به این شکل کد کرده ام:
((co13(j,k,s) .. pi0(j,k,s) =e= sum(nn,Power(landaa(j,k,s) / mu(k,s),nn
اما این خطا رو میده:
Error 148: Dimension different – The symbol is referenced with more/less indices as declared
تمام پارامترهام هم از نظر اندیس ها درست تعریف شده ولی نمیدونم مشکل از کجاست؟
سلام
اگه درست اینا رو تعریف کردین، احتمالا مشکل از اینه که مثلا یه پارامتر به اسم z تعریف کردین. ولی یه متغیر هم به اسم z(k هم تعریف کردین. حالا z به کار بردین. و این ارور رو میده.
A.R.M
در نوامبر 6, 2019
اوکی
با توجه به فرمایشات شما، من الان با توجه به یه مقاله این کار رو انجام دادم
از اعداد فازی مثلثی استفاده کردم
این مقاله برای حل تحلیل پوششی داده های فازی اومده بود از یه روشی به نام آلفا برش (a-cut) استفاده کرده که شامل یه حد بالا و یه حد پایین هست.
حالا نمیدونم با این روش تا چه حدی آشنا هستید، این طور که من دیدم ظاهرا یکی از روش های متداول هست.
در واقع با این روش کارایی هر dmu به صورت بازه ای به دست میاد دیگه چون حد بالا و پایین داره
من کد حد پایین رو تو گمز زدم جوابا این طوری شد، در واقع معلومه که جوابا اشتباهه…
1 0.9999920, 2 0.9999727, 3 0.9999702, 4 0.9999156, 5 0.9998613
6 0.9999931, 7 0.9999702, 8 0.9999762, 9 0.9999792, 10 0.9998743
11 0.9999652, 12 0.9993116, و …..
بله احتمالا اشتباهه. یه جای کار ایراد داره. ایمیل کنید کد، مدل و مقاله رو.
وقت بشه یه بررسی مختصر میکنم.
A.R.M
در نوامبر 4, 2019
الان میدونید مشکل من چیه؟
(صحبتایی که تو کمنتای قبلی زدم رو ندید بگیرید.) من یه مدل تحلیل پوششی داده ها دارم که میخوام فازیش کنم، ولی دقیق نمیدونم چطوری!
من همه چیو ندید میگیرم پس.
اول باید مدلسازی رو انجام بدید به صورت فازی. روش فازی کردن هم باید مشخص باشه و از یه مرجع مشخص. رویه رو درست باید پیاده سازی کنید.
بعدش دی فازی کنید.
بعدش کد کنید.
یه فازی باید حتما دی فازی بشه.
A.R.M
در اکتبر 30, 2019
بله این رو هم امتحان کردم ولی درست نشد، بدتر شد
شاید مدلم اشتباه باشه ….
این ارور برای همین هست. اگه مقدار کوچکی به مخرج اضافه کنین دیگه رفع میشه. مقداری با دقت این مقدار رو اضافه کنین. پرانتز اینا خاطرتون باشه دقیق زیر مخرج باشه
A.R.M
در اکتبر 21, 2019
دو تا از dmu ها رو به دست میاره ولی برای بقیه رو منفی به دست میاره و تکراری
این ارور رو میده:
Error at line 98: division by zero (0)
حالا نمیدونم مشکل از کجاست شاید مدلم رو اشتباه فازی و دی فازی کردم
سلام
این ارور وقتی رخ میده که تو مخرج یه متغیر داشته باشین.
برای رفعش به مخرج یه عدد ریز مثل 0.0001 اضافه کنید.
A.R.M
در اکتبر 7, 2019
با سلام
ببخشید من یه مدل dea رو اول فازی و بعد با روش آلفا برش دی فازی کردم
وقتی کدش رو تو گمز میزنم فقط برای دو تا از dmuها مقدار میده و از طرفیم ارور exit code=3 رو میده
شما دلیلش رو میدونید؟؟
سلام
من یه سوال دیگه برام پیش اومد
اگه بخوام واحدهای کارا یا به عبارتی واحدهایی که مقدار کارایی یا همون z شون یک شده رو رتبه بندی کنم محدودیتا چطوری میشه؟
مثلا واحد سوم و پنجم مقدار کاراییشون یک شده
حالا میخوام این دو تا رو رتبه بندی کنم و مقدار کاراییشون رو به دست بیارم
اگه بخوام کارایی واحد سوم رو به دست بیارم باید محدودیت مربوط به واحد سوم حذف شه دیگه درسته؟
اینطوری؟
;((eq1(i).. sum(j$(ord(j) ne 3),landa(j)*x(i,j))=l=xp(i)+teta(i)*abs(xp(i
;((eq2(r).. sum(j$(ord(j) ne 3),landa(j)*y(r,j))=g=yp(r)-fi(r)*abs(yp(r
;sum(j,landa(j))=e=1
سلام
یه مقاله بود که در این باره یک روش رو ارائه داده بود. متاسفانه الان حضور ذهن ندارم معرفی کنم خدمتتون. اینی که نوشتین از لحاظ کدینگ درسته ولی از لحاظ مفهومی اطلاعی ندارم ازش.
که تتا بار پی از دو رابطه بالا به دست میاد
فی بار پی هم همینطور. ولی من فقط یکیش رو از شما پرسیدم
الان من کدم رو با توجه به پاسخ شما و مطالب سایت اصلاح کردم ولی باز به یه مشکلی خوردم
میتونم کدم رو براتون ایمیل کنم؟؟
کد، مدل و مقاله بیس رو ارسال کنین. اگه وقت شد چشم.
A.R.M
در آگوست 11, 2019
خیلی ممنون از لطفتون
A.R.M
در آگوست 9, 2019
سلام
خسته نباشید
این محدودیت رو چطوری میتونم بنویسم؟؟
xiI = minj {xij}; i = 1, . . . ,m
در واقع یه table دارم که میخوام مینیمم هر سطرش رو بهم بده
(table x(i,j
6 5 4 3 2 1
2.5 20 18 10 2 2 1
;6 8 8 5 15 6 2
ببینید من تو تابع هدف یه پارامتر دارم که از دو تا فرمول به دست میاد
میخوام بدونم که فرمولش رو باید تو قسمت پارامتر نوشت یا تو قسمت محدودیت ها؟؟
باید تو پارامتر ها تعریفشون کنم یا تو قسمت متغییر ها؟؟
دو تا فرمولا ایناست:
من خودم فکر میکنم که xip و xiI باید تو پارامتر نوشته شه و فرمول xiI هم باید تو قسمت پارامتر آورده بشه
تتا پی باید تو متغیر نوشته شه و فرمولش تو محدودیت ها
محمودی
در آگوست 11, 2019
سلام
tetaP رو من نمیدونم چرا نوشتین دقیقا. و مفهوم اون مساوی چیه.
کلا اینو یادتون باشه، تو تحلیل پوششی داده ها x و y (که بیشتر استفاده میشن) هر کاری روشون انجام بشه، بازم پارامترن.
الان دو تا راه دارین، اول اینکه به صورت پارامتر تعریف کنین و نهایتا تا قبل از loopی که می نویسین مقدارش رو با تابع smax یا smin به دست بیارین.
یا اینکه داخل loop اینکارو انجام بدین. loop رو به این خاطر میگم که شاید شما سوال رو واضح نپرسیدید.
باید تشخیص بدین کدومشه.
یاوری
در ژوئن 21, 2019
سلام وقت شما بخیر
من میخوام مدل DEA بازه ای بنویسم نمیدونم محدودیت رو چطور برای واحدها به غیر از واحد مورد بررسی بنویسم
Yrj*Ur-Xij*Vi<0 برای هر j بغیر از واحد o
چون بعد هم از دستور loop استفاده میشه نمیدونم چیکار باید بکنم که این محدودیت هر سری برای واحد o در نظر گرفته نشه
با تشکر
خیلی ممنون مشکلم در رابطه با دو سوال آخر حل شد.
عرض سلام و احترام.
ببخشید برای نوشتن این محدودیت چطور باید کد بنویسیم که ارور نده
سلام و ادب
تکلیف t در این محدودیت مشخص نیست. نمیشه هم در سور عمومی باشه و هم در سیگما، احتمالا اونی که در سیگما هست یک شرطی روش هست. معادله اصلی رو ببینید و تحلیل کنید مفهوم چیه
سلام وقت به خیر
آیا در نرم افزار گمز میشه از جواب های یک معادله در معادله دیگه استفاده کرد؟ اگر می شود چگونه می توان این کار را انجام داد
ممنون میشم راهنمایی ام بفرمایید
سلام وقت بخیر
منظور شما از معادله چی هست؟
اگر منظور مدل هست، بله،
فرض کنیم جواب مدل اول شامل متغیر x باشه.
و در مدل دوم y=x+2 باید بشه. کافیه در معادله دوم به جای x از x.L استفاده کنین که مقدار بهینه مدل قبل رو استفاده کنه.
سلام و خسته نباشید.
ببخشید دکتر من یه سوالی داشتم این که در کد زیر
;ft= 100*(1+0.05)**5 +sum(d,tc(d)*xdd(d))
;f(i,j)= ——- + ((power((x(j)-xc(i)),2)+power((y(j)-yc(i)),2)+power((z(j)-zc(i)),2)) **0.5)
وقتی ft را در فرمول f(i,j) جایگذاری میکنم (در جای خالی) ، هنگام نشون دادن مقدار f(i,j) اون رو برابر مقدار ft نشون میده و وقتی برش میدارم مقدار درست f(i,j) رو نشون میده.
لطفا راهنمایی کنید که چطور این جایگذاری رو انجام بدم که به این مشکل بر نخوره و مقدار مجموع ft با f(i,j) را در f(i,j) نشون بده.
اینجا درسته و مشکلی نداره
سلام وقت بخیر
لطفا بفرمایین اینا قبل از معادلات هستن (محدودیت هست یا خیر) و اینکه متغیر تصمیم هست داخل این فرمول؟ به چه شکل؟
با سلام و احترام بنده یک مشکل دارم اگه کمکم کنید ممنون میشم.
اگر iوj شاخص مربوط به مشتری ها باشد.
و k شاخص مربوط به وسیله نقلیه باشد.
و متغیر باینری Xijk مقدار یک بگیرد اگر مشتری i قبل از مشتری j توسط وسیله نقلیه k بازدید شود، در غیر اینصورت صفر.
سوال:
در یک محدودیت این متغیر به این صورت نوشته شود.
X0jk
این چگونه باید در گمز کد شود؟
تشکر
سلام وادب
شما اول باید یک مجموعه تعریف کنین که شامل دپو و مشتریها باشه. و i هم زیر مجموعه اون بشه.
Set n/i00,i01*i20/
I(n)/i01*i20/
;
بعد جایی که نیازه که دپو و مشتری داخل i باشن از n استفاده کنین و اگر فقط دپو بود x(“i00”,j,k)
سلام. سوالم در مورد زمانی است که برای ژنراتور قید رزرو در نظر بگیریم. به اینصورت که 0<=Ri و Ri<=(Pimax_Pi)
(که Ri مقدار رزرو هر ژنراتور هست)، این قید در گمز اجرا میشود بعد از آن هزینه رزرو هم بدست میاد اما زمانی که هزینه رزرو با هزینه تولید و… جمع میشود و بخوایم هزینه کل را min کنیم آن موقع در جواب رزروی در نظر نمیگیرد.(فکر کنم نرم افزار به اینصورت عمل میکنه که قید رزرو رو یه قید الزامی در نظر نمیگیرد برعکس قید تعادل توان)
لطفاً اگر کسی راهکاری بلد هست بگه چکار کنم تا رزرو باشه و گمز اون رو صفر نکنه
سلام و روز بخير.
ممكنه اين مسئله وجود داشته باشه كه شما در قيود ديگر هزينه/توان و … داريد كه از نظر مدل صرفه اقتصادي بيشتري دارد كه انجام بشود و به همين خاطر اين قيد را در نظر نميگيره.
ايا متغيير موجود در اين قيد با ديگر متغييرها در ارتباط هست در محدوديتهاي ديگر؟
اگر R_{i} متغيير تصميم هست براي ان يك حد پايين غير صفر تعيين كنيد و نحوه عملكرد ان را در مدل ببينيد.
اين موارد را چك كنيد و قبل از همه مطمئن بشيد كه مدل شما اشكال محاسباتي و يا مدلسازي نداشته باشد.
با سلام و سپاس
آیا دستور ( sum(j,k(j) ,lambda(j)*x(i,j)) +lambda(p)*xo(i)=l=xo(i برای بیرون کشیدن ضریب lambda(p) درست است یا نه؟
ممنون میشم راهنمایی کنید.
سلام. منظورتون را دقيقتر بيان ميكنيد؟
به نظر معادله اشكال ساختاري دارد.
سلام.. منظور حل معادله زیر است.
sum(j,$p, lambda(j)*x(i,j))+lambda(p)*x(i,p)=l=x(i,p)
سلام و ادب
این معادله مربوط به تحلیل پوششی داده ها هست، اینکه لاندا جدا هست از سیگما یا خیر، باید چک کنید که فرمول مرجع چی هست، نه اینکه بیایم جداش کنیم، شرط پی اینجا مفهوم داره و باید دید که ارتباط بین پی و دو اندیس دیگه چی هست، اکر مقاله مرجع دارین منشن کنین
سلام استاد، برای حل یک مدل DEA سه مرحلهای، بهتر است از کدام SOLVER گمز استفاده کنیم؟
سلام و ادب
منظورتون از سه مرحله ای مراحل شبکه هست یا هر واحد به چند مرحله تقسیم میشه؟
اگر مدل خطی هست با cplex حل کنید
سلام و عرض ادب خسته نباشید سوال داشتم از خدمتتون ممنون میشم لطفا راهنماییم بفرمایید.
در تحلیل پوششی داده ها شبکه ایی مدلی با ۵ مرحله با مقادیر ورودی و خروجی و میانی متمایز دارم مراحل به صورت سری باهم در ارتباط اند و بین مراحل لینک مقدار میانی دارد. من به چه صورت مراحل و همین طورمقادیر ورودی و خروجی و میانی برای هر مرحله را جداگانه معرفی کنم که متوجه بشه مثلا مقدار ورودی مرحله سوم چنده و همینطور بتونم لینک بین مراحل را تعریف کنم مثلا از مرحله دو به سه یه مقدار میانی وجود داره (خروجی مرحله دوم شده ورودی مرحله سوم)
سلام روز بخیر
ببینید برای این مفاهیمی که بیان کردید مدل تحلیل پوششی شبکه ای وجود داره. برای پیاده سازیش در گمز، می تونید رو اندیس ها دقت بکنید و مشخص می شه باید چکار انجام بدید. مثلا برای بین دو مرحله با همدیگر معمولا یک پارامتر به اسم link(h,k) تعریف می کنن که صفر و یک هست و نشون دهنده ارتباط و توالی دو مرحله h,k هست.
سلام و وقت بخیر
در خصوص به کارگیری تابع smin و smax و تفاوت آن با تابع min , max هم مثالی رو لطف کنید. مخصوصا اینکه اگر هدف یافتن مینیمم مقدار نسبتی بین دو مجموعه باشد دستور استفاده به چه شکل خواهد بود؟
سلام و ادب
توابع smin و smax متغیر قبول نمیکنن. و اندیس محور هستن. مثلا بیشترین مقدار بین x(i) را پیدا میکنه. ولی دو تابع دیگه میاد دو مقدار رو با هم مقایسه میکنه. مثلا x بزرگتره یا 5. برای این هدف شما، طبیعتا حالت دوم به کارتون میاد، اما باید خطی سازی بشه که بشه حلش کرد. به عنوان تمرین خودتون خطی کنین تابع max(A,B) رو. اینجا بذارین با هم در موردش بحث میکنیم.
با سلام و تشکر از راهنمایی های شما
بنده این محدودیت رو در گمز میخوام بنویسم. ممنون میشم راهنمایی بفرمایید.
x_j (t)= x_j(t+1) where t=1,…,T-1
ممنون میشم راهنمایی بفرمایید.
سلام وقت بخیر
خیلی عادی همینجوری که نوشتین الان درسته. مشکلی نداره. فقط شرط بذارین که t کمتر از card(t) باشه
salam, mamnunam az pasokhtoon. shart ro bayad tu tarif mahdoodiat bezaram?
وقتتون بخیر
وقتی این تابع هدف را ران میکنم این هزینه رو بهم صفر میده
دلیلش چیه؟
سلام
با این توضیحات مختصر نمیشه نظری داد!
عبارت جز صحیح (براکت) در گمز با چه دستوری باید نوشت؟
سلام
از تابع floor استفاده کنین.
سلام وقتتون بخیر باشه … من یک متغیر تصمیم دارم به این صورت
این رو در گمز به چه صورت باید بنویسم چون این مدلی که مینویسم ارور میده ؟ X(j,k,t*(t+1))
سلام
فرض میکنیم که t یک اندیس هست و حاصل t*t+1 هم در یک مجموعه به نام tp خلاصه بشه. کاری که باید بکنید این هست که اولا x(j,k,tp) رو تعریف کنید و در محدودیت به شرح زیر عمل کنید:
اگر x یا اندیس های متفاوت دیگری هم در مدل استفاده میشه بفرمایید که در موردش بحث کنیم
خب tp رو باید به عنوان set تعریف کنم؟
به چه شکلی
چیزی که فرمودید رو انجام دادم و ارور میده که tp ناشناختس و ان را تعریف کنید
به صورت set باید تعریف بشه. که از 2 شروع میشه تا card(t)*(card(t)+1)
سلام و عرض ادب
خسته نباشید
من در مدل dea زیر زمانی که run میکنم مقادیر efficiency منفی بدست میاید میخواستم بدونم مشکل از چه چیزی میتواند باشد
خیلی متشکرم
سلام
مدلتون نشدنی شده. احتمالا طبق مدلتون کد رو ننوشتید. محدودیت دوم مشکوک ب نظر میرسه
با عرض سلام و وقت بخیر
خیلی متشکر از پاسخ دهی تون
کد نویسی من مربوط به این مدل است
اگر مساعدت بفرمایید و راهنمایی کنید خیلی ممنون میشوم
(EAB=MAX ∑(UrYrA
ViXiA=1∑ ,
ViYiA+S_1=1 ∑
UrYrB-_∑ ViXiB+S_2=0 ∑
حتی به این شکل هم مدل را run کردم ولی باز جواب ها منفی شد
sets
i/i1*i3/
*
*set i is ‘inputs’ / asset,opratingcost,employee/
*
r/r1*r7/
*
*set r is ‘outputs’ /revenue,netprofit,ROE,ROI,ROA,dividendyieldrairo,assetturnoverraito/
*
j/DMU1*DMU10/
;
alias(j,k);
table x(j,i)
i1 i2 i3
DMU1 239830 136349 2200000
DMU2 225248 83557 798000
DMU3 55064 40475 321383
DMU4 70758 38447 464505
DMU5 51431 35979 149000
DMU6 90807 34339 232000
DMU7 45393 27720 435000
DMU8 52309 23276 415700
DMU9 36725 24060 178927
DMU10 186577 17236 116519
;
table y(j,r)
r1 r2 r3 r4 r5 r6 r7
DMU1 127991 3288 20.22 6.67 10.61 1.68 2.30
DMU2 87436 3268 21.95 5.98 10.01 17.20 1.45
DMU3 41611 1719 0.33 0.44 0.91 3.26 1.51
DMU4 39864 405 9.71 2.28 3.65 3.93 1.12
DMU5 37040 844 24.59 8.29 16.61 0.84 3.46
DMU6 34339 844 14.41 4.38 6.67 4.21 1.73
DMU7 27974 263 19.91 3.63 5.50 2.00 2.93
DMU8 27223 2769 79.26 23.61 37.38 3.02 2.31
DMU9 24135 514 17.21 5.07 13.81 17.20 2.46
DMU10 22830 7397 28.54 15.36 22.16 17.20 0.44
;
positive variables
v(i) ‘input weights’
u(r) ‘output weights’
s1 ‘slack variable’
s2 ‘slack variable’
;
variable eff;
parameter yo(r) ‘current DMU’
xo(i) ‘current DMU’
;
equations
objective(j) ‘objective function: maximize efficiency’
normalize(j) ‘normalize input weights’
normalizee(j) ‘normalize output weights’
limit(j) “limit other DMU’s efficiency”;
objective(j).. eff=e=sum(r,u(r)*yo(r));
normalize(j).. sum(i,v(i)*xo(i))=e=1;
normalizee(j)..sum(r,u(r)*yo(r))+s1=e=1;
limit(j).. sum(r,u(r)*y(j,r))-sum(i,v(i)*x(j,i))+s2=e=0;
model mymodel /all/;
parameter E(j);
loop(k,
yo(r)=y(k,r);
xo(i)=x(k,i);
solve mymodel using lp max eff;
E(k)=eff.l;
);
display eff.l;
لطفا لینک مقاله رو بذارین
https://www.inderscienceonline.com/doi/abs/10.1504/IJOR.2019.100726
سلام لینک مقاله را خدمتتون ارسال کردم
خیلی متشکر از مساعدت و وقتی که اختصاص میدید
دانلود نشد برای من. لطفا لینکی که قابل دانلود باشه رو بفرستید
سلام و عرض ادب
یک لینک جدید برای مقاله خدمتتون ارسال کردم
https://www.researchgate.net/publication/305882069_A_DEA-PROMETHEE_approach_for_complete_ranking_of_units
خیلی ممنون از شما
ممنون بابت ارسال فایل.
مفاهیم مدل رو مقداری با دقت مطالعه کنین. تو مدل 12 مقاله ارسالی، شما مدلی رو می بینید که دو تا واحد A,B با هم قیاس میشن برای همینه که در هر دو محدودیت مقادیر slack بدون اندیس استفاده شدن. بنابراین دقت کنید که وقتی شما واحد A رو ثابت گرفتین، B رو هم ثابت بگیرین.
در مدل قبلیش هم که اسلک ها اندیس دارن. رو این موارد دقت بیشتری بکنید. کد خوبی نوشتید ولی منطبق با مفاهیم نیست.
با عرض سلام و وقت بخیر
خیلی متشکرم از پاسخگویی جامع و دقیق تون و زمانی که مرحمت میفرمایید و اختصاص میدهید
من طبق فرمایش شما مقادیر a,b را slack گرفتم اما فکر میکنم جایی را اشتباه انجام دادم چون برای تمامی dmu ها مقادیر کارایی یک شد که اینطور برای ادامه کار نتایج غیر منطقی میشود
امکانش هست لطف بفرمایید و کد نویسی اینجانب را مشاهده بفرمایید
خیلی متشکر از مساعدتتون
کد به نظر مشکلی نداره. فقط loop استفاده کنید چون به تعداد ترکیب 2 از 10 نیاز هست که مسئله حل بشه.
امکانش هست لطف بفرمایید و یک مثال بزنید
من متوجه ترکیب ۲ از ۱۰ که فرمودید نشدم
اینطور باید باشد ؟
,Loop (iter
یعنی این مسئله همه ترکیبات A,B رودر نظر میگیره.
مثلا
i1-i2
i1-i3
i1-i7
….
پس شما احتمالا دو loop نیاز دارید.
بی نهایت سپاس از پاسخگویی دقیق و زمانی که اختصاص میدهید
واقعا خیلی متشکرم
فقط اینکه زوج مرتب های i1_i2,….. را که فرمودید باید به طور کامل در هر کد و در قسمت set بیان کنم ؟
نه عزیز
عرض کردم
شما اول A,B رو با i آلیاس می کنین.
بعد توی لوپی که تو کامنت قبلی نوتشم، هر بار یک A و یک B خاص مشخص میشن و به عبارتی یک زوج که قراره با دستور solve در مدل مورد استفاده قرار بگیرند.
بعد از آن هم E(A,B) که کارایی قیاسی این زوج هست رو ذخیره میکنین. نیازی به تعریف این زوج ها نیست و لوپ خودش تولیدش میکنه.
بی نهایت از لطف و پاسخگویی عالی جنابعالی سپاسگزارم
سلامت باشین
سلام وقتتون بخیر خسته نباشید
من کد را همانگونه که فرمودید نوشتم ولی این ارور ها را داد
امکانش هست لطف بفرمایید و راهنمایی کنید
خیلی متشکرم
alias(i,i2);
70 alias(i,i4);
71
72 loop (i2
73 loop(i4 $ ord(i4 ne ord(i2)
**** $10,767,409
10 ‘,’ expected
409 Unrecognizable item – skip to find a new statement
looking for a ‘;’ or a key word to get started again
767 Unexpected symbol will terminate the loop – symbol replaced by )
سلام
i2 خودش یکی از اعضای مجموعه DMU هست. و نمیتونه تو لوپ بیاد. alias(i,A,B) به نظر بهتره
متوجه فرمایش تون نشدم
امکانش هست لطف بفرمایید و loop بنویسید
خیلی متشکرم
sets
i/i1*i10/
;
alias(i,k,m,a,b);
.
.
.
loop(a,
loop(b$(ord(a) ne ord(b),
.
solve
.
save results
););
[/css]
حالا باید دقت کنید که تو معادلات a,b رو یه جوری به معادلات بفهمونید. مثل همون روشی که برای j0 استفاده کرده بودید.
با عرض سلام و وقت بخیر
من مدلی که فرموده بودید را اجرا کردم ولی مجددا تمامی کارایی ها یک شد که برای ادامه و ادغام مدل مشکل ساز است
اگر لطف بفرمایید وبررسی بفرمایید یک دنیا ممنون میشم
چیزی که بهتون گفته شده رو درست پیاده نکردین. مثلا دستور solve باید داخل لوپ باشه و هر بار کارایی ذخیره بشه. اینکه همش یک بشه ممکنه از داده ها هم باشه
با عرض سلام و وقت بخیر
خیلی ممنون از سایت خوب و پاسخگویی عالی تون
برای نمایش وزن های ورودی و خروجی در اخرین کد نویسی که خدمتتون ارسال کردم صرفا این عبارت باید اضافه شود ؟
display eff.l ;
display u*.l(i2) , v*.l(i2) ;
دوستم خوبم عرض کردم خدمت شما.
شما به ازای حلقه های تو در تویی که به اتمام میرسن جواب تولید شده خواهید داشت. یعنی یک eff(i,j) بعد از هر دستور solve وقبل از بسته شدن هر حلقه باید محاسبه بشه
برای u,v هم پاارمترهای مناسب تعریف کنین و نمایش بدین در خروجی
با سلام.
آیا نمونه کد پایه ای در رابطه با Dynamic DEA وجود دارد؟
سلام برای تعریف مجموعه ای از ورودی ها و خروجی ها به غیر از پارامتر های مربوط به dmu فعلی به صورت باید نوشته شود؟
سلام
سوالتون خیلی واضح نیست. لطفا شفاف بفرمایید
سلام ممنون میشم راهنمایی بفرمایید
برای حل مدل dea در گمز زمانی که میخواهیم مقدار هر dmu با سایر dmu ها مقایسه شود و در نهایت یک خروجی ماتریس برای efficiency هر یک از پارامتر ها داشته باشیم
باید این را با چه پارامتری تعریف کنیم ؟
سلام
اول اینکه باید یه لوپ تعریف کنید که شمارندهش با اندیس dmu آلیاس شده باشه.
بعد یه پارامتر باید تعریف کرده باشید مثل eff(j) که در اینجا j با dmu آلباس شده. بعد از دستور سالو مقدار کارایی رو داخل این eff ذخیره میکنید.
ایمیل ارسال کنید برای پشتیبانی براتون ارسال بشه یک مثال
با سلام
چطور میتوانم خروجی گمز به اکسل را به گونه ای در Loop ایجاد کنم که داده های ثبت شده در اکسل در دور بعدی جایگزین داده های فعلی نشود.
در واقع اگر دستور خروجی گمز به اکسل به مانند زیر باشد:
‘execute ‘gdxxrw.exe results.gdx o=results.xls var=v.L rng=NewSheet!F1:G4’
چطور میتوان موقعیت داده ها مثلا F1 را وابسته به اندیس درون حلقه کرد بالفرض:
loop(d,
…
rng=NewSheet!F%i%:G4
سلام
من شخصا خیلی معتقد به پیچوندن لقمه نیستم تو گمز. مثلا تو این حالت، یه پارامتر تعریف میکنم که به ازای loop میاد متغیری که میخوایم رو ذخیره میکنه. همین پارامتر رو میفرستم تو اکسل آخر سر.
ولی اگه این عمل براتون ضروریه، میتونین از system attributes استفاده کنین. مثال زیر رو ببینید:
در اینجا من از system.elapsed استفاده کردم. یعنی زمانی که تا الان طول کشیده. با افزایش j ها، این مقدار افزایش پیدا میکنه و هر بار یه شیت ایجاد میکنه. فقط تو این حالت باید زمان حل ها بیشتر از یه ثانیه طول بکشه که همشون برابر نشه.
اتریبیوت های زیادی برای گمز وجود دارن، که میتوین اینجا ویژگی ای که براتون مفیده رو انتخاب کنید. دقت کنید که میشه به صورت ترکیبی اینا رو استفاده کرد.
سلام. یک مثال برای این جملتون که در پاسخ به سوال ذخیره نتایج لوپ گمز در اکسل هست بزنید. تشکر
“”من شخصا خیلی معتقد به پیچوندن لقمه نیستم تو گمز. مثلا تو این حالت، یه پارامتر تعریف میکنم که به ازای loop میاد متغیری که میخوایم رو ذخیره میکنه. همین پارامتر رو میفرستم تو اکسل آخر سر.””
سلام
حتما:
و آخر سر میتونیم zfinal رو به عنوان جواب بهینه z به ازای j های مختلف داشته باشیم و بفرستیم تو اکسل
در فراخوانی یک داده ها از اکسل برای یکمدل در DEA مشکل دارم.
$offtext
$call GDXXRW test.xlsx par=x rng=sheet1!a1:l3 rdim=1 cdim=1;
$call GDXXRW test.xlsx par=y rng=sheet2!a1:l3 rdim=1 cdim=1;
$GDXIN test.gdx
$load x
$GDXIN
ولی بازم فایل gdx رو نمی تونه پیدا کنه
سلام
دو تا نکته رو باید رعایت کنین. اول اینکه set ها و همچنین پارامترهای x,y رو از قبل باید تعریف کرده باشین. set با مقادیر، x,y هم فقط تعریف با دستور پارامتر.
نکته دوم اینکه آدرس فایل xlsx باید تو دایرکتوری فعال گمز باشه. ادرس دایرکتوری تو file/project هست.
سلام چه طوری تو گمز یه مدل از dea بنویسیم؟
سلام
اول مدلتون رو انتخاب کنین. از کد مدل بیسیک ccr استفاده کنین برای توسعه کد نویسیش.
کد ccr رو خواستید واتس اپ یا ایمیل بزنید براتون ارسال بشه.
سلام
برای کدنویسی مدل BCC خروجی محور از سری مدلهای DEA به مشکل خوردم
اینکه چظور مقادیر سمت راست رو تعریف کنم و حلقه ای که باید برای همه DMU ها حساب کنه رو کجا بزارم؟
یه نکته بگم که حالت دوگان مدل رو کدشو زدم
سلام
یه ایمیل به ادرس سایت بزنین براتون نمونه کد bcc ارسال بشه.
سلام وقت بخیر
محدودیتی را به این شکل کد کرده ام:
((co13(j,k,s) .. pi0(j,k,s) =e= sum(nn,Power(landaa(j,k,s) / mu(k,s),nn
اما این خطا رو میده:
Error 148: Dimension different – The symbol is referenced with more/less indices as declared
تمام پارامترهام هم از نظر اندیس ها درست تعریف شده ولی نمیدونم مشکل از کجاست؟
سلام
اگه درست اینا رو تعریف کردین، احتمالا مشکل از اینه که مثلا یه پارامتر به اسم z تعریف کردین. ولی یه متغیر هم به اسم z(k هم تعریف کردین. حالا z به کار بردین. و این ارور رو میده.
اوکی
با توجه به فرمایشات شما، من الان با توجه به یه مقاله این کار رو انجام دادم
از اعداد فازی مثلثی استفاده کردم
این مقاله برای حل تحلیل پوششی داده های فازی اومده بود از یه روشی به نام آلفا برش (a-cut) استفاده کرده که شامل یه حد بالا و یه حد پایین هست.
حالا نمیدونم با این روش تا چه حدی آشنا هستید، این طور که من دیدم ظاهرا یکی از روش های متداول هست.
در واقع با این روش کارایی هر dmu به صورت بازه ای به دست میاد دیگه چون حد بالا و پایین داره
من کد حد پایین رو تو گمز زدم جوابا این طوری شد، در واقع معلومه که جوابا اشتباهه…
1 0.9999920, 2 0.9999727, 3 0.9999702, 4 0.9999156, 5 0.9998613
6 0.9999931, 7 0.9999702, 8 0.9999762, 9 0.9999792, 10 0.9998743
11 0.9999652, 12 0.9993116, و …..
بله احتمالا اشتباهه. یه جای کار ایراد داره. ایمیل کنید کد، مدل و مقاله رو.
وقت بشه یه بررسی مختصر میکنم.
الان میدونید مشکل من چیه؟
(صحبتایی که تو کمنتای قبلی زدم رو ندید بگیرید.) من یه مدل تحلیل پوششی داده ها دارم که میخوام فازیش کنم، ولی دقیق نمیدونم چطوری!
من همه چیو ندید میگیرم پس.
اول باید مدلسازی رو انجام بدید به صورت فازی. روش فازی کردن هم باید مشخص باشه و از یه مرجع مشخص. رویه رو درست باید پیاده سازی کنید.
بعدش دی فازی کنید.
بعدش کد کنید.
یه فازی باید حتما دی فازی بشه.
بله این رو هم امتحان کردم ولی درست نشد، بدتر شد
شاید مدلم اشتباه باشه ….
این ارور برای همین هست. اگه مقدار کوچکی به مخرج اضافه کنین دیگه رفع میشه. مقداری با دقت این مقدار رو اضافه کنین. پرانتز اینا خاطرتون باشه دقیق زیر مخرج باشه
دو تا از dmu ها رو به دست میاره ولی برای بقیه رو منفی به دست میاره و تکراری
این ارور رو میده:
Error at line 98: division by zero (0)
حالا نمیدونم مشکل از کجاست شاید مدلم رو اشتباه فازی و دی فازی کردم
سلام
این ارور وقتی رخ میده که تو مخرج یه متغیر داشته باشین.
برای رفعش به مخرج یه عدد ریز مثل 0.0001 اضافه کنید.
با سلام
ببخشید من یه مدل dea رو اول فازی و بعد با روش آلفا برش دی فازی کردم
وقتی کدش رو تو گمز میزنم فقط برای دو تا از dmuها مقدار میده و از طرفیم ارور exit code=3 رو میده
شما دلیلش رو میدونید؟؟
سلام قبلش اروری چیزی داده. چک کنید.
مرسی جناب محمودی
خواهش میکنم.
سلام
من یه سوال دیگه برام پیش اومد
اگه بخوام واحدهای کارا یا به عبارتی واحدهایی که مقدار کارایی یا همون z شون یک شده رو رتبه بندی کنم محدودیتا چطوری میشه؟
مثلا واحد سوم و پنجم مقدار کاراییشون یک شده
حالا میخوام این دو تا رو رتبه بندی کنم و مقدار کاراییشون رو به دست بیارم
اگه بخوام کارایی واحد سوم رو به دست بیارم باید محدودیت مربوط به واحد سوم حذف شه دیگه درسته؟
اینطوری؟
سلام
یه مقاله بود که در این باره یک روش رو ارائه داده بود. متاسفانه الان حضور ذهن ندارم معرفی کنم خدمتتون. اینی که نوشتین از لحاظ کدینگ درسته ولی از لحاظ مفهومی اطلاعی ندارم ازش.
سلام مجدد
ممنون بابت جوابتون
این تابع هدف هست
که تتا بار پی از دو رابطه بالا به دست میاد
فی بار پی هم همینطور. ولی من فقط یکیش رو از شما پرسیدم
الان من کدم رو با توجه به پاسخ شما و مطالب سایت اصلاح کردم ولی باز به یه مشکلی خوردم
میتونم کدم رو براتون ایمیل کنم؟؟
کد، مدل و مقاله بیس رو ارسال کنین. اگه وقت شد چشم.
خیلی ممنون از لطفتون
سلام
خسته نباشید
این محدودیت رو چطوری میتونم بنویسم؟؟
xiI = minj {xij}; i = 1, . . . ,m
در واقع یه table دارم که میخوام مینیمم هر سطرش رو بهم بده
(table x(i,j
6 5 4 3 2 1
2.5 20 18 10 2 2 1
;6 8 8 5 15 6 2
سلام
ببینید من تو تابع هدف یه پارامتر دارم که از دو تا فرمول به دست میاد
میخوام بدونم که فرمولش رو باید تو قسمت پارامتر نوشت یا تو قسمت محدودیت ها؟؟
باید تو پارامتر ها تعریفشون کنم یا تو قسمت متغییر ها؟؟
دو تا فرمولا ایناست:
که xiI از فرمول زیر به دست میاد:
من خودم فکر میکنم که xip و xiI باید تو پارامتر نوشته شه و فرمول xiI هم باید تو قسمت پارامتر آورده بشه
تتا پی باید تو متغیر نوشته شه و فرمولش تو محدودیت ها
سلام
tetaP رو من نمیدونم چرا نوشتین دقیقا. و مفهوم اون مساوی چیه.
کلا اینو یادتون باشه، تو تحلیل پوششی داده ها x و y (که بیشتر استفاده میشن) هر کاری روشون انجام بشه، بازم پارامترن.
الان دو تا راه دارین، اول اینکه به صورت پارامتر تعریف کنین و نهایتا تا قبل از loopی که می نویسین مقدارش رو با تابع smax یا smin به دست بیارین.
یا اینکه داخل loop اینکارو انجام بدین. loop رو به این خاطر میگم که شاید شما سوال رو واضح نپرسیدید.
باید تشخیص بدین کدومشه.
سلام وقت شما بخیر
من میخوام مدل DEA بازه ای بنویسم نمیدونم محدودیت رو چطور برای واحدها به غیر از واحد مورد بررسی بنویسم
Yrj*Ur-Xij*Vi<0 برای هر j بغیر از واحد o
چون بعد هم از دستور loop استفاده میشه نمیدونم چیکار باید بکنم که این محدودیت هر سری برای واحد o در نظر گرفته نشه
با تشکر
سلام
شما یه j دارین، و یه jj هم بهش باید آلیاس بشه که تو Loop استفاده بشه. یه parameter به نام مثلا o تعریف کنین. و محدودیت و loop به شکل زیر در میاد.
با سلام
چطور می توان در تابع هدف متغیر اندیس دار تعریف کرد؟
سلام
منظورتون چی هست؟