Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   نرم افزار MATLAB (http://artificial.ir/intelligence/forum64.html)
-   -   درخواست كمك (http://artificial.ir/intelligence/thread10921.html)

slicing ۰۴-۳۰-۱۳۹۱ ۰۱:۰۶ بعد از ظهر

درخواست كمك
 
با سلام
امكان داره كسي بهم كمك كنه و بگه چجوري ميشه فرمول زیرو با متلب با یه تابع نوشت.ممنون میشم كمكم كنید.
این فرمول باید بیشترین مقدار(max) را بین دو قاعده (شرطی)زیر پیدا كنه.قواعد عبارتند از:
1- اگر i با j (ورودی ها) برابر باشند انگاه برابر با صفر است در غیر این صورت برابر با abs(i-j)
2-اگر i با k (ورودی ها) برابر باشند انگاه برابر با صفر است در غیر این صورت برابر با abs(i-k
یعنی ابتدا 1 و بعد 2 رو محاسبه كنه بعد بیشترین مقدار بین این دو تا را به دست بیاره. i وj و k هر سه عدد صحیح هستند.
البته عكس فرمولي رو كه ميخوام و بالا توضيح دادم رو تو فايل 1يوستي ميتونيد ببينه. عكسش قابل فهم تره

md_azizian ۰۴-۳۰-۱۳۹۱ ۰۱:۲۲ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله md_azizian (پست 25296)
سلام فایل پیوستی پس کو؟

نمیدونم شاید با این جمله جوابت به دست بیاد
p=max(abs(i-j),abs(i-k))

slicing ۰۴-۳۰-۱۳۹۱ ۰۱:۴۷ بعد از ظهر

سلام
فايل پيوستي رو دوباره براتون ميذارم.ممنون.

http://1.ming.site90.net/images/5dfba75bcadb.gif

md_azizian ۰۴-۳۰-۱۳۹۱ ۰۲:۲۲ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله arezoojuju (پست 25299)
سلام
فايل پيوستي رو دوباره براتون ميذارم.ممنون.

http://1.ming.site90.net/images/5dfba75bcadb.gif

پاسخ همونیه که برات گذاشتم فقط
abs(j-k)
باید بهش اضافه شه
+p
هم در صورت مسیله قبلی نداشت اونم به هر یک از جملات اضافه کن
q=max((abs(i-j)+p),(abs(i-k)+p),(abs(j-k)+p))

md_azizian ۰۴-۳۰-۱۳۹۱ ۰۴:۱۵ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله mahdiii (پست 25304)
p چیه؟ اگه مثبت باشه q=max((abs(i-j)+p),(abs(i-k)+p),(abs(j-k)+p)) کفایت می کنه و دزسته ولی اگه مقدارش منفی باشه و طوری باشه که تمام عبارات abs(i-j)+p و abs(i-k)+p و abs(j-k)+p منفی بشه پس max آنها منفی میشه که غلطه چون بر اساس اونچه که تو تصویره جواب باید بزرگتر یا مساوی صفر بشه. بنابراین می تونیم عمل بالا رو به صورت زیر تصحیح کنیم:

q=max((abs(i-j)+p),(abs(i-k)+p),(abs(j-k)+p))
if (q<0)
q=0;
end

سلام
جواب اولیه من غلط بود زیرا اگه
i=j=k
باشه در اون صورت باید جواب صفر در بیاد در صورتی که در جواب پیشنهادی من برای این حالت جواب برابر p در میاد
بنابراین شاید بهتر باشه اول تک تک عبارات را تعیین تکلیف کنیم به صورت زیر
if i==j
p1=0
else p1=abs(i-j)+p
end
if i==k
p2=0
else p2=abs(i-k)+p
end
if k==j
p3=0
else p3=abs(k-j)+p
end
q=max(p1,p2,p3)
این طوری به نظر من بهتره

md_azizian ۰۴-۳۰-۱۳۹۱ ۰۴:۱۸ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله mahdiii (پست 25304)
راه حل دوستمون کاملا غلطه چون اگه مثلا i=2 و j=2 و k=5 باشه پاسخ میشه: Max(0,3+p,3+p) که به مقدار p بستگی داره اگه p+3 منفی بشه ماکسیمم صفره در غیر این صورت 3+p هست و اگه i=j=k بود جواب صفره که با راه حل دوستمون صرفنظر از مقدار p بازم غلطه.
بنابراین باید نوشت:

If(i==j)
q1=0;
else
q1=abs(i-j)+p;
end
if(i==k)
q2=0;
else
q2=abs(i-k)+p;
end
if(j==k)
q3=0;
else
q3=abs(j-k)+p;
end
res=max([q1,q2,q3]);

داش مهدی سلام
جوابمونو هر دو با هم اصلاح کردیم
ممنون از دقت نظرت:41:

mahdiii ۰۴-۳۰-۱۳۹۱ ۰۴:۲۵ بعد از ظهر

آره کپی هم نوشتیم
:-)

slicing ۰۴-۳۰-۱۳۹۱ ۱۰:۱۵ بعد از ظهر

سلام
ممنون ازتون كه اينقدر سريع بهم جواب دادين.

md_azizian ۰۴-۳۱-۱۳۹۱ ۰۵:۴۴ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله arezoojuju (پست 25312)
سلام
ممنون ازتون كه اينقدر سريع بهم جواب دادين.

خواهش میکنم
خوشحال میشم بتونم کمکی بکنم:10:

slicing ۰۴-۳۱-۱۳۹۱ ۱۰:۴۱ بعد از ظهر

با سلام
من كدي كه شما بهم كمك كرديد رو در متلب به صورت يك تابع به صورت زير نوشتم.
function z = My_Fun(x,y,k)
if x==y
p1=0;
else
p1=abs(x-y);
end
if x==k
p2=0;
else
p2=abs(x-k);
end
if k==y
p3=0;
else
p3=abs(k-y);
end
p4=max(p1,p2);
z=max(p4,p3);
end

اما وقتي كه ميخوام داخل الگوريتم رقابت استعماري استفاده كنم خطاي زيرو ميده.اگه امكان داره بهم كمك كنيد تا اين اشكال رفع بشه.

Error using My_Fun (line3(
Not enough input arguments.

Error in ImperialistCompetitveAlgorithm_GlobalOptimizationS trategy (line 81(
InitialCost = feval(ProblemParams.CostFuncName,InitialCountries


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۳:۳۴ قبل از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.