رد شدن به محتوای اصلی

پست‌ها

نمایش پست‌هایی با برچسب MATLAB

CFOTool: an Octave/MATLAB® toolbox for Central Force Optimization (CFO)

Yesterday we have published "CFOTool: an Octave/MATLAB ®  toolbox for Central Force Optimization (CFO)" on Launchpad.net . You can download this toolbox from the following link: https://launchpad.net/cfotool CFO is a deterministic swarm optimization algorithm which  has been introduced for the first time by Dr. Richard A. Formato in 2007. To learn more about this algorithm, you can refer to the following paper: Formato, R. A., “Central Force Optimization: A New Deterministic Gradient-Like Optimization Metaheuristic,” OPSEARCH, Jour. of the Operations Research Society of India, 46, no. 1, pp. 25-51 (2009). (DOI: 10.1007/s12597-009-0003-4). The published code provides an Octave/MATLAB ®   toolbox which is called CFOTool for deploying the CFO algorithm in Octave/MATLAB ®  functions or programs. This tool is completely free and has published under the GPLv3 license. Copying and sharing this program is completely free and we encourage you to share this tool ...

CFOTool: ابزاری برای بهینه‌سازی بر اساس الگوریتم Central Force Optimization (CFO) در Octave/MATLAB®

امروز کد ابزار Octave/MATLAB ®  الگوریتم بهینه‌سازی Central Force Optimization (CFO) را در سایت Launchpad.net منتشر کردیم. برای استفاده از این کد، می‌توانید آن را از آدرس زیر دریافت کنید: https://launchpad.net/cfotool الگوریتم CFO یک الگوریتم بهینه‌سازی هوش جمعی قطعی است که برای اولین بار در سال ۲۰۰۷ میلادی توسط دکتر Richard A. Formato ارائه شد. برای آشنایی بیشتر با این الگوریتم، می‌توانید به مقاله‌ی زیر مراجعه کنید: Formato, R. A., “Central Force Optimization: A New Deterministic Gradient-Like Optimization Metaheuristic,” OPSEARCH, Jour. of the Operations Research Society of India, 46, no. 1, pp. 25-51 (2009). (DOI: 10.1007/s12597-009-0003-4). کد ارائه شده تحت نام CFOTool ابزاری را برای استفاده از الگوریتم CFO در برنامه‌ها و روی توابع دلخواه در نرم‌افزار Octave/MATLAB ®  فراهم می‌سازد. این کد به صورت کاملا رایگان و تحت لیسانس GPLv3 منتشر شده است. نسخه برداری و انتشار این کد کاملا آزاد است. برای دریافت اطلاعات بیشتر در مورد کپی برداری، لطفا به فایل COPYRIGHT ا...

راه حل مهندسی!

یکی از هم اتاقی‌هام پرسید چطور می‌شه تو کامپیوتر یه تصویر رنگی رو به سیاه و سفید تبدیل کرد؟ هم اتاقی دیگه‌م کاملا جدی جواب داد «ببرش تو MATLAB، از دستور rgb2gray استفاده کن»! خوب این هم یه راهشه! :)

مشکل اعداد اعشاری در برنامه‌نویسی... (ادامه)

مثل این که مشکلی که در پست قبل ( در استفاده از اعداد اعشاری در MATLAB دقت کنید ) به اون اشاره کردم فقط مختص به MATLAB نیست و این مشکل در تمامی زبان‌های برنامه‌نویسی ممکنه ایجاد بشه. برای اطلاعات بیشتر می‌تونین به مقاله‌ی زیر مراجعه کنید: Bruce Dawson, "Comparing floating point numbers" از دوست خوبم آقای محسن نورآذر که این نکته رو به من گوشزد کردند متشکرم.

در استفاده از اعداد اعشاری در MATLAB دقت کنید

اگه جزء افرادی هستین که با نرم‌افزار MATLAB سر و کار دارین، حتما این مطلب رو بخونین تا به مشکلی که حدود یک ماه وقت من رو الکی گرفت بر نخورین. یک ماهی بود که من از برنامه‌ای که نوشته بودم جواب دلخواهم رو نمی‌گرفتم. تو برنامه متغیری بود که مقدارش به صورت اعشاری زیاد می‌شد و بعد با عدد ۱ مقایسه می‌شد که اگر مقدارش ۱ شده باشه یک سری دستورات اجرا بشه. ولی اون دستورات هیچ‌وقت اجرا نمی‌شدن و چون برنامه حجمش کمی زیاد بود، پیدا کردن این که مشکل از اجرا نشدن این قسمته تا وقتی که برنامه رو کاملا دقیق دیباگ نکردم معلوم نشد. قضیه از این قراره که اعداد اعشاری و صحیح برای MATLAB متفاوت هستن. در واقع جواب کد زیر در MATLAB برابر یک نخواهد شد و مقدار صفر رو برمی‌گردونه: (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1) == 1 دلیلش هم اینه که MATLAB جواب اون جمع رو به صورت یک عدد اعشاری می‌شناسه (1.0000) و این عدد اعشاری نسبت به عدد صحیح ۱، یک بیت اضافه داره و در نتیجه این دو مقدار برای MATLAB برابر نخواهند بود. راه حل این مشکل استفاده از کدی مانند کد زیر است: (0.1 + 0.1 + 0....