حل مدل‌های برنامه‌ریزی عدد صحیح و MILP با استفاده از R

در مطلب قبلی، به حل یک مدل برنامه‌ریزی خطی با استفاده از پکیج lin­prog پرداختیم، کار با این پکیج ساده است اما همانطور که گفتیم، محدودیت‌‌هایی دارد و نمی‌تواند مسائل برنامه‌ریزی عدد صحیح یا مسائل برنامه‌ریزی مختلط (Mixed Inte­ger Pro­gram­ming) را حل کند، برای این کار، به سراغ پکیج  دیگری به نام lpSolve می‌رویم. این پکیج را با دستور زیر نصب کنید: Con­tinue read­ing

حل مدل‌‌های برنامه‌ریزی خطی با استفاده از R

تحقیق در عملیات، شاخه‌ای میان‌رشته‌ای از ریاضی است که در بسیاری از رشته‌ها کاربرد دارد. تحقیق در عملیات، عموما به یافتن جواب بهینه‌ی یک مساله با استفاده از روش‌هایی چون برنامه‌ریزی ریاضی، آمار و طراحی الگوریتم‌ها می‌پردازد. در این پست قرار است به برنامه‌ریزی خطی، یکی از زیرمجموعه‌های برنامه‌ریزی ریاضی بپردازیم. Con­tinue read­ing

مقدمه‌ای بر شبیه‌سازی در R، روش مونت‌کارلو

یکی از کاربرد‌های کمتر شناخته‌شده‌ی R، استفاده از آن برای شبیه‌سازی است. شبیه‌سازی سیستم‌های گسسته‌ پیش‌آمد(DES) ، سیستم‌های صف و روش‌های مانند مونت‌کارلو رایج‌ترین شبیه‌سازی‌هایی هستند که در R انجام می‌شوند. البته این را هم در نظر داشته باشید که R کمی تا قسمتی کند است و چیزی که آن را برای شبیه‌سازی مطلوب کرده این است که بسیاری از محققینی که زمینه‌ی آماری دارند R را به زبان‌ها و ابزارهای دیگر ترجیح می‌دهند، از طرف دیگر، متن‌باز بودن R  مزیت آن در این زمینه در مقابل Mat­lab است. از آنجایی که این وب‌سایت درباره‌ی R و مخلفاتش است، پرداختن به مبحث شبیه‌سازی در آن خالی از لطف نیست. تقریبا هر جایی که مبحث شبیه‌سازی مطرح می‌شود، روش مونت‌کارلو اولین روشی است که مورد بحث قرار می‌گیرد.

Con­tinue read­ing

انواع ساختار‌‌های داده در R، بخش پایانی

در پست قبلی، با ماتریس و data frame (معادل‌های چارچوب‌داده یا داده چارچوب‌دار برای آن پیشنهاد شده است) آشنا شدیم. این ساختارهای داده، دو بعدی بودند و معمولا هر ردیف آن، نماینده یک مشاهده و هر ستون آن نماینده یک مشخصه بود. فرض کنید داده‌ای داریم که نیازمند بعد زمان نیز هست. مثلا چهار دانش‌آموز، سه امتحان را در دو هفته پشت سر گذاشته‌اند و می‌خواهیم به جای این که یک ماتریس جداگانه برای هر هفته داشته باشیم، در یک ساختار داده همه چیز را خلاصه کنیم، در اینجا ساختار داده‌ای به نام Array کار ما را راه می‌اندازد. داده‌های اولیه را در R به وجود می‌آوریم: Con­tinue read­ing

انواع ساختار‌‌های داده در R، بخش دوم ماتریس و Data.frame

ماتریس، یک ساختار دو بعدی برای داده است. تمام عناصر یک ماتریس باید از یک نوع باشند.(numeric, log­i­cal, char­ac­ter, com­ple). درست همانند بردارها، اگر عناصری که به یک ماتریس می‌دهید چند نوع باشند R در ماتریس نهایی همه‌ی آنها را به یک نوع تبدیل خواهد کرد. (به این عمل اگر اشنباه نکنم Coerc­ing می‌گویند.) چندین راه برای به وجود آوردن یک ماتریس در R وجود دارد. به عنوان مثال می‌توانیم دو یا چند بردار را با دستورهای cbind و rbind به صورت ستونی یا ردیفی به هم بچسبانیم:

Con­tinue read­ing

انواع ساختارهای داده‌ در R، بخش اول، بردارها

بردارها

بردار تقریبا پایه‌ای‌ترین ساختار داده در R  است. بردار ساختاری است که مجموعه‌ای از مقادیر مرتب‌شده به نام عنصر را در خود ذخیره می‌کند. یردار را می‌‌توان معادل یک ستون در نرم‌افزارهایی چون اکسل و spss دانست. یک بردار می‌تواند هر تعداد عنصر داشته باشد با این شرط که نوع تمام عناصر یکسان باشد، به عنوان مثال، یک بردار نمی‌تواند هم شامل عدد و هم شامل متن باشد. برای تشخیص نوع عناصر یک بردار می‌توانید از دستور زیر استفاده کنید:

Con­tinue read­ing

آموزش نوشتن تابع در R، بخش دوم

در یکی از پست‌های قبلی وبلاگ، با استفاده از الگوریتم Top­sis یک موبایل انتخاب کردیم و در پست قبلی یاد گرفتیم که چطور می‌توان در R یک تابع نوشت. همچنین در پست قبلی قرار شد با یک مثال روند نوشتن تابع در R را بررسی کنیم و به نظر می‌رسد همان الگوریتم Top­sis مثال خوبی برای این کار باشد. Con­tinue read­ing

آموزش نوشتن تابع در R، بخش اول

با این که خیلی‌ها R را به عنوان یک نرم‌افزار آماری می‌شناسند(که به نظر من شناخت اشتباهی است)، R در ذات خود یک زبان برنامه‌نویسی کامل است و خیلی از چیزهایی که در زبان‌های دیگر رایج هستند مانند توابع، حلقه‌ها، آرایه‌ها و … در R نیز وجود دارند. در این پست قرار است با نحوه‌ی نوشتن یک تابع در R آشنا شویم. Con­tinue read­ing

نگاهی به Microsoft R Open

ژانویه امسال خبری منتشر شد مبنی بر این که مایکروسافت، شرکت Rev­o­lu­tion Ana­lyt­ics را خریده است. Rev­o­lu­tion Ana­lyt­ics محصولاتی تجاری برمبنای R ارایه می‌کرد و هدف مایکروسافت از این خرید تمایل این شرکت به استفاده از R در سرویسهایش عنوان شد.  Rev­o­lu­tion R Open یک پیاده‌سازی محبوب و متن‌باز از زبان R محسوب می‌شد که توسط Rev­o­lu­tion Ana­lyt­ics توسعه داده شده بود و اکنون که این شرکت تحت تملک مایکروسافت است، نام این پیاده‌سازی به Microsoft R Open یا به اختصار MRO تغییر کرده است. Con­tinue read­ing

با R و یک الگوریتم نسبتا ساده موبایل انتخاب کنید

تصمیم‌گیری به طور کلی چیزی است که هر انسانی با آن سر و کار دارد، از وقتی که مثلا می‌خواهیم از بقالی چیپس بخریم گرفته تا انتخاب زمینی که قرار است یک طرح عمرانی بزرگ در آن اجرا شود. در این پست می‌خواهیم به سراغ علمی به نام تصمیم‌گیری و به طور مشخص، یکی از زیرشاخه‌های آن به نام تصمیم‌گیری چندمعیاره(mcdm) برویم.

mcdm همان‌طور که احتمالا از اسمش مشخص است هنگامی به کار می‌رود که تصمیم‌گیرنده می‌‌خواهد چندین معیار را با هم در تصمیم‌گیری خود لحاظ کند. چندین روش و الگوریتم برای mcdm پیشنهاد شده و در این پست قرار است با یکی از الگوریتم‌های نسبتا ساده‌ی mcdm به نام TOPSIS آشنا شویم. Con­tinue read­ing