الآن با همون P که قبلن من بصورت زمانبندی گذاشتم جواب نمیده؟
اگه نه که بذارید من بیشتر مطالعه کنم تا سر در بیارم!
نتایج نشون میده pi (کوچیک) با توجه به weeling بدست اومده درسته. ولی بقول شما تابع هزینه اشتباه در میآد!
P بزرگ فکر کنم باید در ورودی مشخص باشه حالا اگه بتونی به صاحب مقاله یه ایمیل بزن بگو P را چرا در مقاله نذاشتی.
اگه بخوایم مقدار p1 و p3 رو توی متلب ببینیم چی باید بزنیم؟
pii یک سلوله که داخلش pi ها قرار گرفته
http://www.sharefile.ir/uploads/1405931395.zip
pii =
{
[1,1] = 1.8156e+004
[1,2] = 4716.9
[1,3] = 1478.1
[1,4] =
9.8204e+003 1.3052e+004
[1,5] =
5.3175e+003 1.4316e+004
[1,6] =
2047.5 4147.5
[1,7] =
4.8494e+003 6.4454e+003 1.3056e+004
}
این مربوط به مقدار p(1,3) هست
[1,5] =
5.3175e+003 1.4316e+004
ولی با محاسبه دستی متفاوته
فایلی که برای شما فرستادم رو دیدید؟ بصورت دستی حل کردم. یعنی اشتباه حل کردم؟
خب این 316 زیاد هم تاثیر نداره. بشتر 420 که زیر کسر قرار میگیره تاثیر دار با Pr
جوابش زیاد تفاوت نمیکنه
مشکل تابع هزینه رو متوجه نشدین که از کجاست؟
مهندس میشه توضیح بدی که تابع IndexV چطوری عمل میکنه؟ممنونم.
در ابتدا اگه مجموعه تهی باشه صفر بر می گردونه
سپس در S می گردیم اگر تعداد اعضای s کمتر از از اون Smimi بود همین طور شمارش می کنیم تا برسیم به جایی که تعداد اعضای S با Smimi برابر باشه با استفاده از ismember عضوی از S که با Smini برابره پیدا کرده با شماره های اندکس قبلی که جمع کرده ایم جمع می کنیم در نتیجه اندکس مورد نظر به دست می آید بعدش هم v متناظر با اون اندکس بدست میاریم
مهندس ببخشید که من هی سوال می پرسم.منظور از [val,dx] چیه؟
ret رو بدست میاریم که چی بشه؟
چرا یه عدد اعشاریه؟
در ضمن، Smini رو که از قبل معرفی نکردی چطوری مساوی صفر قرار دادی؟ توی خط :
if (numel(Smini)==0)
آخرین ویرایش به وسیله coronaa : سه شنبه 31 تیر 1393 در 20:01 عصر
چرا ما تابع تعریف می کنیم؟
برای اینکه یک کار تکراری که چند بار می خواهید انجام بدیدم یک بار کد اون را بنویسیم و تنها با صدا زدن نام اون و ورد چند تا پارامتر اون کد ( یعنی تابع) را اجرا کنیم
وقتی وسط برنامه این تابع داره صدا زده میشه
indexV(setdiff( S{i}(j,:) ,a(z)),S,v)
سه تا آرگیومنت داره بهت وارد میشه که با کاما جاد شدند. اولین مورد یعنی
setdiff( S{i}(j,:) ,a(z))
همون Smini هست
دومین و سومین مورد هم اینجا نامهاشون با اسامی وافعی متغیرها یکی قرار داده شده در صورتی که می تونستیم یک اسم دیگه بذاریم مثلا تابع را به این صورت زیر تعریف می کردیم باز هم فرقی نمی کرد
function ret= indexV(Smini,SSS,vvv)
ret=0;
if (numel(Smini)==0)
return;
end
for i=1:numel(SSS)
if(size(SSS{i},2)<numel(Smini))
ret=ret+size(SSS{i},1);
else
[val,dx]=ismember(Smini, SSS{i},'rows');
ret=ret+dx;
break;
end
end
ret=vvv(ret);
end
واینکه چرا اعشاری هست ما در پایان نوشتیم
ret=v(ret);
تا قبل از این دستور معنای ret اندکسی از v بود که متناظر بود با s-i
وقتی که این دستور را زدیم یعنی اون V با این اندکس را استخراج کن و دوباره اون را به جای ret بذار. دراین حالت ret دیگه اندکس نیست بلکه v مورد نظر هست
خدا عمرت بده. همون اول اینطوری توضیح میدادی
توضیحت عالی بود. ممنونم.
مهندس میشه بگی هر یک از حلقه ها چیکار میکنن؟
for i=1:numel(S)
for j=1:size(S{i},1)
for z=1:numel(n)
if (ismember(n(z),S{i}(j,:)))
phi(z)=phi(z)+factorial(numel(S{i}(j,:))-1).* factorial(numel(n) -numel(S{i} (j,:))).* (v(k)-indexV(setdiff( S{i}(j,:) ,n(z)),S,v))./ factorial(numel(n));
end
end
k=k+1;
end
end
ُS یک سلوله با 3 تا خونه که داخل هر خونه هم یک ماتریس قرار داره (اگه چاپ کنی معلوم میشه)
دو تا for اولی واسه پیمایش S هست
for سومی هم واسه پیمایش phi هست چون phi 3 تا خونه داره
این معادلات جواب ندارن یا دستورش اشتباهه؟
h=solve('x1+x2=39815.1','x1+x3=35644.2','x2+x3=124 49.0','x1+x2+x3=53413.2')
h=[h.x1 h.x2 h.x3]
آخرین ویرایش به وسیله coronaa : پنج شنبه 02 مرداد 1393 در 16:11 عصر
نه. بخش 3.2 (هسته)
معادلات 15 تا 18
توی این سایت یه سری فایل زیپ مخصوص تئوری بازی ها در متلب هست که shapely و core و nucleolus و چیزهای مختلف را حساب می کنه دیگه فکر کنم دردسر نداشته باشه
http://webs.uvigo.es/mmiras/TUGlab
آخرین ویرایش به وسیله coronaa : جمعه 03 مرداد 1393 در 10:05 صبح
مهندس این برای قسمت nucleolus خطا میده بصورت زیر :
??? Undefined function or method 'colmmd' for input arguments of
type 'double'.
مفهومش چیه؟ یعنی فانکشن colmmd رو نمیشناسه؟ توی اسکریپتاش پیداش نکردم!
چطوری یه دستوری که معرفی نشده رو باید معرفی کرد مثل همین؟
قبلنم چند بار انجام داده بودی!