شما در حال خواندن درس مثالی از برنامه‌ریزی تجمعی با آزمون و خطا از مجموعه برنامه‌ریزی و کنترل تولید هستید.

برنامه ریزی تجمعی با استفاده از آزمون و خطا

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

مثال ۱- برنامه‌ با استراتژی Level Capacity

برای این مقال قصد داریم در ارتباط با گروهی از محصولات کارخانه و برای افق زمانی شش ماه، برنامه‌ریزی تجمعی انجام دهیم. بدین منظور قبل از چیز باید تقاضای احتمالی در این افق زمانی را پیش‌بینی کنیم. فرض کنید نتایج پیش‌بینی تقاضا برابر جدول زیر است.

برنامه‌ریزی تجمعی نیازمند اطلاع از بعضی شرایط و محدودیت‌های کارخانه است. مطابق اطلاعاتی که از کارخانه داریم، ظرفیت تولید یا حداکثر مقدار تولید در ساعات عادی برابر ۱۵۰ واحد و در ساعات اضافه‌کار برابر ۵۰ واحد هر دوره است. همچنین می‌توانیم تولید هر تعداد محصول که می‌خواهیم را بدون محدودیت به تامین‌کنندگان برون‌سپاری کنیم. هزینه تولید هر واحد محصول در ساعات عادی ۴۰ هزار و در ساعات اضافه‌کار ۶۰ هزار و از راه برون‌سپاری ۱۲۰ هزار تومان هزینه تحمیل می‌کند.

البته در عمل به ندرت اتفاق می‌افتد که مقدار تولید در ساعات عادی و اضافه‌کار در همه دوره‌ها یکسان باشد؛ زیرا معمولاً تعداد روزهای تعطیل، چگونگی استفاده از مرخصی‌ها توسط کارکنان و بهره‌روی آن‌ها در هر دوره‌ تفاوت دارد. همچنین فرض درستی نیست که هزینه تولید هر واحد محصول را مقداری ثابت در نظر بگیریم. چرا که مثلاً صرفه به مقیاس باعث می‌شود که وقتی ۱۰۰۰ واحد محصول تولید می‌کنیم، هزینه تولید هر واحد محصول نسبت به وقتی که ۴۰۰ واحد تولید می‌کنیم، کم‌تر باشد. با این وجود برای ساده شدن مساله فرض کرده‌ایم که مقدار تولید در ساعات عادی و اضافه‌کار در همه دوره‌ها یکسان و هزینه تولید هر واحد محصول مقداری ثابت است.

در این کارخانه برای افزایش تولید می‌توانیم از راه‌های متنوع مثل استفاده از موجودی‌ها یا به تاخیر انداختن پاسخ به تقاضا استفاده کنیم. مثلاً اگر تقاضا در یک دوره کم‌تر از ظرفیت تولید باشد، می‌توانیم مازاد تولید را به‌عنوان موجودی نگه داریم و در دوره‌های آینده عرضه کنیم. همچنین اگر تقاضا زیاد است، می‌توانیم از مشتریان سفارش بگیریم اما محصول را در دوره‌های آینده به آن‌ها عرضه کنیم. مطابق سیاست کارخانه، در هر دوره حداکثر می‌توانیم پاسخ به ۲۰ واحد از تقاضا را به دوره یا دوره‌های بعد موکول کنیم و ضمنا هزینه آن ۱۰ هزار تومن به ازای هر دوره تاخیر است. اما در مورد موجودی‌ها، انبارها بزرگند و محدودیتی برای تعداد موجودی نداریم؛ اما هزینه نگهداری هر محصول در انبار برای هر دوره برابر ۵ هزار تومان است.

کلیه اطلاعات بالا را به شکل خلاصه در جدول زیر آورده‌ایم. البته در مثال‌ها قصد تغییر تعداد کارکنان را نداریم، وگرنه باید حداقل و حداکثر تعداد کارکنان و هزینه جذب یا خاتمه همکاری با ایشان را بدانیم.

در ادامه با کمک این اطلاعات، اولین نمونه از یک برنامه تجمعی را ایجاد می‌کنیم. در درس ظرفیت پایه و برنامه‌ریزی تنظیم ظرفیت و همچنین در درس برنامه‌ریزی تجمعی چیست گفتیم که دو استراتژی کلی برای تنظیم ظرفیت در میان‌مدت یا همان برنامه‌ریزی تجمعی وجود دارد. یکی از این استراتژی‌ها، ثابت نگه داشتن مقدار خروجی یا Level Capacity و دیگری تنظیم آن متناسب با تغییرات تقاضا یا Chase Capacity است. لذا برای ایجاد برنامه تجمعی، ابتدا مناسب است یکی از این دو استراتژی یا ترکیبی از آن‌ها را انتخاب کنیم.

برای مثال اول، استراتژی ما این است که مقدار خروجی را ثابت نگه داریم و از موجودی‌های انبار برای پاسخ مناسب‌تر به تقاضا و کاهش هر چه بیشتر هزینه‌ها استفاده کنیم.

اولین تصمیم این است که خروجی پایه چقدر باشد؟ مطابق اطلاعات ارائه شده، حداکثر مقدار خروجی در ساعات عادی یا به عبارت دیگر «ظرفیت واحد تولیدی در ساعات عادی» ۱۵۰ واحد در هر دوره است.


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

برای دوره اول نتایج پیش‌بینی نشان می‌دهند که تقاضا احتمالاً به ۱۰۰ واحد می‌رسد. ظرفیت تولید در ساعات عادی ۱۵۰ واحد در همه دوره‌ها است. برای دوره اول می‌توانیم به جای تولید با تمام ظرفیت و دستیابی به ۱۵۰ محصول، فقط ۱۰۰ واحد محصول تولید کنیم تا متناسب با ۱۰۰ واحد تقاضا باشد. اما با توجه به این که در دوره‌های سه،‌ پنج و شش با افزایش قابل توجه تقاضا مواجهیم، برنامه‌ریزی می‌کنیم از همان دوره اول با تمام ظرفیت تولید کنیم و موجودی‌ها را بالا ببریم. لذا برنامه این است که در دوره اول ۱۵۰ محصول در ساعات عادی تولید کنیم. از این مقدار، ۱۰۰ واحد برای پاسخ به تقاضای دوره اول عرضه می‌شود و ۵۰ واحد به انبار می‌رود. برای همین در جدول نوشتیم که موجودی در ابتدای دوره اول برابر با صفر و در پایان دوره ۵۰ واحد است.

برای دوره دوم نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۱۲۰ واحد افزایش خواهد یافت. در این دوره با تمام ظرفیت به تولید ادامه داده و ۱۵۰ واحد خروجی می‌گیریم. از ۱۵۰ محصول تولید شده، ۱۲۰ واحد برای پاسخ به تقاضا عرضه می‌شوند و ۳۰ واحد به عنوان موجودی به انبار می‌روند. لذا موجودی در شروع دوره دوم ۵۰ واحد و در پایان ۸۰ واحد است.

برای دوره سوم نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۲۰۰ واحد خواهد رسید. تمام ۱۵۰ واحدی که در این دوره تولید می‌کنیم برای پاسخ به تقاضا مصرف می‌شوند. علاوه بر آن‌ها ۵۰ واحد باقی می‌ماند که از موجودی بر می‌داریم و عرضه می‌کنیم. لذا موجودی در پایان دوره برابر ۳۰ واحد خواهد شد.

برای دوره چهارم نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۱۰۰ واحد کاهش خواهد یافت. بنابراین از ۱۵۰ واحد تولید شده، ۱۰۰ واحد را عرضه و ۵۰ واحد را به عنوان موجودی در انبار ذخیره می‌کنیم.


در دوره پنجم تقاضا به ۲۰۰ واحد می‌رسد. لذا تمام ۱۵۰ واحد خروجی و ۵۰ واحد از موجودی را عرضه می‌کنیم و در پایان دوره موجودی ۳۰ واحد می‌شود.

برای دوره ششم نتایج پیش‌بینی نشان می‌دهند که تقاضا ۲۰۰ واحد خواهد بود. در این حالت ۱۵۰ واحد خروجی و ۳۰ واحد موجودی انبار را عرضه می‌کنیم. برای پاسخ به ۲۰ تقاضای باقیمانده، این مقدار تقاضا را به عنوان سفارش ثبت می‌کنیم اما محصول را در دوره بعد تحویل می‌دهیم. البته برای چنین تصمیمی مناسب‌تر است تقاضای احتمالی در دوره‌های بعدی را بدانیم، چون شاید تقاضا به اندازه‌ای زیاد باشد که نتوانیم به این ۲۰ واحد پاسخ دهیم. اما با فرض این که تقاضا در ماه‌های بعدی به حدود ۱۰۰ واحد برسد، برنامه‌ریزی کرده‌ایم که ۲۰ واحد تقاضا سفارش گرفته و محصول در دوره بعد تحویل داده شود.

هزینه‌های مربوط به تولید در ساعات عادی و موکول کردن پاسخ به تقاضا به دوره‌های آینده را در جدول درج می‌کنیم. همچنین هزینه موجودی‌ها بر اساس میانگین موجودی در هر دوره محاسبه شده است. مجموع هزینه‌ها در این برنامه تقریبا ۳۷٫۵ میلیون تومان به دست می‌آید.

گفتنی است ما برای رسیدن به این برنامه، مقادیر مختلف را امتحان کردیم تا حتی‌المقدور به برنامه مناسب‌تری برسیم. برای مثال در قدم اول تلاش کردیم خروجی در دوره‌های اول و دوم را کاهش دهیم تا موجودی‌ها مدت کوتاه‌تری در انبار بمانند و هزینه‌های انبارداری کاهش یابد. اما رشد تقاضا در دوره‌های آخر به اندازه‌ای بود که چاره‌ای جز استفاده از تمام ظرفیت در همه دوره‌ها و تمرکز روی بالا بردن سطح موجودی‌ها نداشتیم. اما در هر حال تکنیک آزمون و خطا لزوماً به جواب‌های بهینه منتهی نمی‌شود، لذا مناسب است جدول زیر را دست‌کاری کنید تا ببینید چگونه می‌توانید فقط با استفاده از «کار در ساعات عادی»، «موجودی‌ها» و «موکول کردن سفارش به دوره‌های بعدی تا سقف ۲۰ واحد» برنامه‌ای توسعه دهید که هزینه‌ کم‌تری داشته باشد.

مثال برای برنامه تجمعی یا Aggregate Plan

مثال ۲- برنامه‌ریزی با استراتژی Chase Capacity

در مثال دوم، شرایط کاملاً مشابه مثال اول است، اما می‌خواهیم ظرفیت را با استفاده از اضافه‌کار و در صورت نیاز با کمک برون‌سپاری تنظیم کنیم. همچنین فرض می‌کنیم به کلی انبار و موجودی نداریم و در هر دوره باید به تقاضای همان دوره پاسخ دهیم. استراتژی ما در این برنامه Chase Capacity است و در هر دوره تلاش می‌کنیم خروجی‌ها متناسب با مقدار تقاضا تنظیم شوند.

برای دوره اول، نتایج پیش‌بینی نشان می‌دهد که تقاضا به ۱۰۰ واحد می‌رسد. ما انبار نداریم، پس مجبوریم ۱۰۰ واحد خروجی داشته باشیم تا از یک سو به تمام تقاضا در دوره اول پاسخ دهیم و از سوی دیگر محصولی اضافه نماند. در دوره دوم نیز خروجی را برابر با ۱۲۰ واحد تقاضای احتمالی قرار می‌دهیم.

برای دوره سوم، نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۲۰۰ واحد می‌رسد. در این دوره ۱۵۰ واحد ظرفیت ما کافی نیست. برای جبران ۵۰ واحد باقیمانده می‌توانیم از «اضافه‌کاری»، «برون‌سپاری» یا «موکول کردن تحویل محصول به آینده» استفاده کنیم. مطابق اطلاعاتی که داریم، ظرفیت تولید اضافه‌کاری در هر دوره ۵۰ واحد و حداکثر تقاضایی که می‌توانیم در یک دوره بگیریم و بعداً به آن پاسخ دهیم ۲۰ واحد است. اما این روش‌ها، هزینه‌های متفاوتی دارند. کم‌ترین هزینه مربوط به تولید محصول در ساعات عادی است. بعد از آن اگر سفارش بگیریم و بعداً به آن پاسخ دهیم، کم‌ترین هزینه را دارد. هزینه تولید محصول در ساعات اضافه‌کار بیشتر از دو حالت قبلی و کم‌تر از برون‌سپاری است. لذا در قدم اول تصمیم می‌گیریم که پاسخ به ۲۰ واحد تقاضا با تاخیر در دوره آبنده داده شود و ۳۰ واحد محصول را در ساعات اضافه‌کار تولید می‌کنیم.

برای دوره چهارم، نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۱۰۰ واحد کاهش می‌یابد. اما ۲۰ واحد تقاضا از دوره سوم به این دوره موکول شده بود که باید به آن‌ها پاسخ دهیم. لذا خروجی را ۱۲۰ واحد تعیین می‌کنیم.

برای دوره پنجم، نتایج پیش‌بینی نشان می‌دهند که تقاضا به ۲۰۰ واحد می‌رسد. در این دوره برای جبران ۵۰ واحد باقیمانده از موکول کردن تقاضا استفاده نمی‌کنیم؛ چرا که در دوره ششم نیز تقاضا ۲۰۰ واحد است و عملاً نمی‌توانیم به تقاضای معوق پاسخ دهیم. البته شاید در دوره هفتم بتوانیم به این تقاضا پاسخ دهیم، اما به تعویق انداختن تقاضا برای دو دوره باعث افزایش هزینه تولید هر واحد محصول به اندازه ۲۰ هزار تومان است که با افزایش هزینه ناشی از اضافه‌کار برابری می‌کند. لذا ترجیحاً تمام ۵۰ واحد باقیمانده را از راه اضافه‌کار تولید می‌کنیم. برای دوره ششم هم تقاضای احتمالی ۲۰۰ واحد است و از برنامه اتخاذ شده برای دوره پنجم استفاده می‌کنیم.

هزینه‌های ناشی از این برنامه تقریباً ۴۰ میلیون تومان به دست آمده است. در این برنامه، مقدار محصول تولید شده با برنامه قبلی برابر است، لذا می‌توانیم نتیجه بگیریم که برنامه اول سودآوری بیشتری دارد. البته نباید فراموش کنیم که سرمایه مورد نیاز برای توسعه انبارها می‌تواند قابل توجه باشد، اما این موضوع در صلاحیت برنامه‌های میان‌مدت نیست. کارخانه مورد نظر یا انبار دارد و می‌توانیم از برنامه اول برای آن استفاده کنیم یا انبار ندارد و چاره‌ای جز استفاده از برنامه دوم نخواهیم داشت.

مثال از برنامه ریزی تجمعی با استراتژی تعقیب تقاضا

مثال ۳- برنامه‌ریزی در شرایطی که ظرفیت کم‌تر است

وقتی ظرفیت کم است و می‌خواهیم از آن به بهترین شکل بهره‌برداری کنیم، برنامه‌ریزی با چالش‌های بیشتری مواجه است. در این مثال، همه چیز مشابه دو مثال قبلی است با این تفاوت که حداکثر ظرفیت تولید در ساعات عادی را ۱۰۰ واحد به جای ۱۵۰ واحد در نظر می‌گیریم. آیا در این حالت می‌توانیم برنامه‌ای تنظیم کنیم که با وجود کم بودن ظرفیت پایه، هزینه‌ها نسبت به دو برنامه قبلی کاهش یابد؟ روش‌های مبتنی بر آزمون و خطا برای پاسخ به این سوال مناسب نیستند. این روش‌ها قرار نیست حتماً به بهینه‌ترین جواب منتهی شوند. لذا بعد از این که برنامه‌ی ما را برای حل مساله سوم مطالعه کردید، مناسب است خودتان آزمون و خطا کنید تا شاید به سوال‌مان پاسخ مثبت دهید.

با توجه به این که ظرفیت تولید در ساعات عادی ۱۰۰ واحد است و در هیچ دوره‌ای تقاضا به کم‌تر از ۱۰۰ واحد نمی‌رسد، خروجی در ساعات عادی را برای همه دوره‌ها ۱۰۰ واحد تعیین می‌کنیم و اساساً تولید با مقدار کم‌تر قابل دفاع نیست. البته شاید بتوانیم این مقدار را با استخدام پرسنل بیشتر افزایش دهیم، اما فرض کرده‌ایم چنین راهکاری مقدور نیست و نباید ترکیب کارکنان را عوض کنیم. لذا سوالی که می‌ماند این است که از میان روش‌های مختلف تنظیم تقاضا، کدام را در هر دوره استفاده کنیم؟

مجموع تقاضا در کل ۶ دوره ۹۲۰ واحد و مجموع خروجی در ساعات عادی ۶۰۰ واحد است. بنابراین ۳۲۰ واحد باقی می‌ماند که باید از راه «اضافه‌کاری»، «به تعویق انداختن تحویل»، «برون‌سپاری» و با استفاده از موجودی‌های انبار جبران کنیم. اگر در همه دوره‌ها از اضافه‌کار استفاده کنیم، می‌توانیم ۳۰۰ واحد تولید کنیم، با این حال هنوز ۲۰ واحد بی‌پاسخ باقی می‌ماند. این ۲۰ واحد یا باید در دوره ششم به عنوان سفارش گرفته و در دوره‌های دیگر تحویل داده شود، یا از راه برون‌سپاری تولید شود. با توجه به کم بودن ظرفیت تولید به نظر می‌رسد راه اول امکان‌پذیر نباشد و باید راه دوم را انتخاب کنیم. مجموع هزینه‌ها در این برنامه حدوداً ۴۶ میلیون تومان محاسبه شده که بیشتر از برنامه‌های قبلی است.

مثال از برنامه تجمعی یا برنامه ظرفیت در میان مدت با استفاده از موجودی‌ها، اضافه‌کار و برون‌سپاری

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *