شما در حال خواندن درس مثالی از ایجاد برنامه زمانبندی اصلی (MPS) از مجموعه برنامهریزی و کنترل تولید هستید.
در درس برنامه زمانبندی اصلی چیست، منظور از فرایند زمانبندی اصلی (Master Scheduling) و خروجیهای اصلی آن شامل: برنامه زمانبندی اصلی تولید (MPS)، موجودی در دسترس (POH) و موجودی قابل قول دادن (ATP) را توضیح دادیم. در این درس قصد داریم برای درک بهتر این مفاهیم و نحوه محاسبهشان، یک مثال حل کنیم.
فرض کنید برای یک واحد تولیدی، برنامه تجمعی با افق زمانی یک ساله و دورههای زمانی یک ماهه تنطیم کردهایم. در امتداد غیرتجمعی کردن این برنامه، قصد داریم زمانبندی اصلی را برای هشت هفته اول تنظیم کنیم. در مثالی که بررسی خواهیم کرد، افق زمانی ۸ هفته و مدت هر دوره را یک هفته در نظر میگیریم.
اطلاعات ورودی مساله
برای تنظیم برنامه زمانبندی اصلی تولید، حسب مورد ممکن است به اطلاعات متفاوتی نیاز داشته باشیم. در این مثال، زمانبندی را بر اساس مقدار تقاضای احتمالی در هر دوره، سفارشات ثبت شده برای هر دوره، مقدار موجودی در ابتدای برنامه، اندازه لات تولید و حداقل موجودی احتیاطی تنظیم خواهیم کرد. مقادیر ورودی را در جدول زیر مشاهده میکنید. در ادامه توضیحاتی راجع به این ورودیها ارائه خواهیم کرد.
مقدار احتمالی تقاضا
در درس برنامهریزی و کنترل تولید چیست گفتیم که زمانبندی (Scheduling) یکی از فعالیتهای اصلی برای برنامهریزی تولید است. همچنین گفتیم که هدفمان از برنامهریزی تولید، متوازن کردن مقدار عرضه و تقاضا برای محصولات و به طور کلی خروجی واحدهای عملیاتی است. لذا بدیهی است که به طور کلی برای برنامهریزی تولید و به تبع آن برای تعیین زمانبندی اصلی -موضوع این درس- باید از مقدار احتمالی تقاضا در آینده و همچنین ظرفیت تولید منابع مطلع باشیم. برای این که بتوانیم مقدار احتمالی تقاضا در یک دوره را تعیین کنیم، باید از روشهای پیشبینی استفاده کنیم که مجموعهای از مهمترین آنها را در مجموعه پیشبینی تقاضا بررسی کردهایم. اما در مورد ظرفیت تولید منابع، سیاست ما این است که برنامهریزی را بر اساس تقاضای احتمالی انجام دهیم، سپس همخوانی آن با ظرفیت منابع را ارزیابی کنیم. بعد از ارزیابی، اگر متوجه شویم که برنامههای تنظیم شده با ظرفیت منابعمان همخوانی ندارند، تغییراتی در برنامهها یا تغییراتی در ظرفیت منابع به وجود میآوریم
تعداد سفارشات (تعهد شده)
در بعضی کسبوکارها، محصولات فقط بر اساس سفارش، تولید و عرضه میشوند. مثلاً مشتری به کارگاهی سفارش میدهد که ۱۰۰ واحد از محصولی را برای او بسازد و کارگاه تعهد میدهد که این مقدار محصول را در موعد مقرر تحویل دهد. در این میان اگر هیچ سفارشی وجود نداشته باشد، کارگاه نیز هیچ محصولی را نمی سازد. اما از سوی دیگر، بعضی کسبوکارها بدون این که مستقیماً سفارش بگیرند، مقداری محصول را تولید و عرضه میکنند تا بعداً توسط متقاضیان خریداری شوند. مثلاً کارگاه، بدون این که سفارش قطعی وجود داشته باشد، اقدام به تولید ۱۰۰ واحد محصول میکند و انتظار دارد که مشتریانی بیایند و این محصولات را خریداری کنند.
در این مثال، فرض ما این است که بخشی از محصولاتمان از راه ثبت سفارش و بخشی از آنها بدون نیاز به ثبت سفارش قبلی فروخته میشوند. یعنی مشتریانی داریم که مقداری از محصول را در یک دوره سفارش میدهند و سفارش خود را در یک دوره دیگر دریافت کنند. اما مشتریان دیگری هم داریم که بدون ثبت سفارش از دورههای قبلی، مستقیماً مراجعه میکنند، محصول را میخرند و در همان دوره زمانی تحویل میگیرند. البته شاید این سوال به ذهنمان برسد که وقتی امکان مراجعه مستقیم وجود دارد، چرا بعضی مشتریان اقدام به ثبت سفارش میکنند؟ در پاسخ میتوان گفت که شاید مقدار سفارش این مشتریان زیاد باشد، یا شاید بتوانند بدین طریق محصول را با قیمت کمتری تهیه کنند.
برای تعیین زمانبندی اصلی، بدیهی است که باید سفارشات ثبت شده را بدانیم و طوری برنامهریزی کنیم که به تعهداتمان نسبت به آنها پاسخ دهیم. لذا یکی ورودی مهم، مقدار سفارشات ثبت شده برای دورههای مختلف است که مقادیر آن را در ردیف دوم درج کردهایم.
توجه به این نکته مفید است که برای پیشبینی تقاضا در یک دوره، هم مقدار سفارشات احتمالی در آن دوره و هم مقدار فروش مستقیم احتمالی در آن دوره را لحاظ میکنیم. اما در این میان دور از انتظار نیست که پیشبینی ما غلط باشد و بعداً ببینیم که «سفارشات ثبت شده برای یک دوره» به تنهایی از کل تقاضایی که برای آن دوره پیشبینی کرده بودیم، بیشتر شده است. در این موارد ممکن است بر اساس سفارشات جدید ثبت شده، پیشبینیمان از تقاضا را اصلاح کنیم. اما اگر فرصت کافی برای اصلاح نتایج پیشبینی نباشد، به عنوان یک اقدام حداقلی باید «مقدار سفارشات ثبت شده» را مبنای برنامهریزی قرار دهیم تا حداقل بتوانیم به تمام سفارشاتی که ثبت شده پاسخ دهیم. اما در حالت عادی، وقتی که مقدار سفارشات کمتر از تقاضای احتمالی برای آن دوره است، همان تقاضای احتمالی را مبنا قرار میدهیم، چون انتظار داریم که مقداری از این محصولات را مستقیماً بدون ثبت سفارش قبلی بفروشیم.
موجودی اولیه
ممکن است در نقطه شروع برنامه زمانبندی اصلی، یعنی ابتدای دوره اول، مقداری محصول از قبل موجود باشد. این محصولات میتوانند در تحویل سفارشات یا پاسخ به تقاضا مورد استفاده قرار بگیرند و روی محاسباتمان تاثیر بگذارند. در این مثال فرض کردهایم که در آغاز دوره اول، شصت واحد محصول موجود است.
موجودی احتیاطی
در مواردی که احتمال وقوع نوسانات ناگهانی در تقاضا وجود دارد، مناسب است که مقداری موجودی احتیاطی برای پاسخ به آن در اختیار داشته باشیم. مثلاً شاید در یک دوره، سفارش قابل توجه و سودآوری به ما پیشنهاد شود و بتوانیم از موجودی احتیاطی برای پاسخ به آن استفاده کنیم. در این مثال موجودی احتیاطی را ۸ واحد انتخاب کردهایم. لذا در شرایطی که احتمال دارد موجودی به کمتر از ۸ واحد برسد، ترتیبی اتخاذ میکنیم که سطح موجودی افزایش یابد. بدیهی است اگر موجودی احتیاطی تعریف نکرده باشیم، رسیدن موجودی به عدد صفر بیانگر ناتوانی ما در پاسخ به سفارشات بعدی یا تقاضای احتمالی آینده خواهد بود. بنابراین تعریف کردن موجودی احتیاطی بدین معنا است که عددی بالاتر را جایگزین صفر کنیم.
اندازه لات
در این مثال، فرضمان این است که محصولات را با فرایندهای مبتنی بر تولید دستهای تولید میکنیم. در تولید دستهای، تجهیزات جای این که فقط یک محصول را تولید کنند، برای تولید محصولات مختلف مورد استفاده قرار میگیرند؛ مثلاً امروز فقط محصول الف و فردا فقط محصول ب را تولید میکنند.
تعداد محصولی که در هر نوبت تولید میکنیم، روی هزینهی تمام شده برای ساخت هر واحد محصول تاثیر دارد. مثلاً شاید با تولید ۱۰۰ واحد محصول در هر نوبت، هزینه تولید هر محصول برابر ۲۰۰۰ تومان و با تولید ۲۰۰ واحد محصول، هزینه آن برابر ۱۶۰۰ تومان شود. برای درک بهتر این موضوع، مفید است درس صرفهجویی به مقیاس را بخوانید. اما مثلاً در تولید دستهای، وقتی میخواهیم تولید یک محصول را متوقف و تولید محصولی دیگر را آغاز کنیم، باید تنظیمات دستگاهها را تغییر دهیم. این کار به صرف زمان نیاز دارد و هزینهها را افزایش میدهد. یا مثلاً وقتی مقدار تولید بیش از حد باشد، ناهماهنگیهای به وجود آمده از بهرهوری میکاهند و هزینههای تولید را افزایش میدهند.
در این میان، عدد مشخصی وجود دارد که اگر مقدار تولید در هر نوبت برابر با آن باشد، هزینهها به حداقل میرسند. شناسایی این مقدار آسان نیست، اما میتوانیم با محاسبات و آزمون و خطا به آن نزدیک شویم. مثلاً شاید به این نتیجه برسیم که مناسبترین حالت این است که در هر نوبت ۴۰ واحد محصول تولید کنیم. در این جا میگوییم لات تولید، یعنی مقدار محصولی که در هر نوبت تولید میکنیم برابر ۴۰ واحد است. در خیلی از واحدهای تولیدی، محصولات را در هر نوبت فقط با مقدار مشخصی که میدانند به صرفه است تولید میکنند. در این مثال، واحد تولیدی فقط محصولات را در دستههای ۴۰ تایی تولید میکند.
بدیهی است که لزوماً در همهی واحدهای تولیدی، اندازه لات تعریف نمیشود. مثلاً در سیستمهای تولید پیوسته، ساخت یا فرآوری محصول پیوسته ادامه دارد و تقسیم آن به نوبتهای مختلف اتفاق نمیافتد. نکته دیگر این که حتی در سیستمهای تولید دستهای، اندازه لات لزوماً مقدار ثابتی نمیماند و میتواند به صلاحدید برنامهریزی کنندگان تغییر کند. علت این است که در هر نوبت، شرایط متفاوتی حاکم است که به مقدار بهینهی تولید به واسطه آنها تغییر میکند. لذا آن چه در این مثال میبینیم، مختص همین مثال است و قرار نیست در همهی پروژهها بر تعریف اندازه لات اصرار کنیم.
پردازش اطلاعات ورودی
با کمک اطلاعات ورودی، قرار است برنامه زمانبندی اصلی تولید (MPS)، مقدار موجودی در دسترس (POH) و مقدار موجودی قابل قول دادن (ATP) را تعیین کنیم.
بدین منظور، مهمترین تصمیمی که باید اتخاد کنیم، این است که در کدام دورهها، محصولات جدید در دسترس ما قرار بگیرند یا به اصطلاحا MPS داشته باشیم. در این مثال، محصولات جدید فقط از طریق تولید دستهای و با اندازهی لات ۴۰ واحد -نه کمتر و نه بیشتر- در دسترس قرار میگیرند. پس در هر دورهای که MPS داریم، چهل واحد محصول به موجودیها افزوده میشود. البته اگر محدودیتی وجود نداشته باشد، شاید بتوانیم در یک دوره چند لات محصول تامین کنیم. مثلاً دو نوبت تولید انجام دهیم و ۸۰ واحد محصول جدید در دسترس قرار بگیرد.
چگونگی محاسبه MPS
برای این که در مورد داشتن یا نداشتن MPS در یک دوره تصمیم بگیریم، لازم است بررسی کنیم که آیا در آن دوره، موجودیهایی که از قبل داریم برای «پاسخ به تقاضای احتمالی» یا «تحویل سفارشات» -حسب مورد هر کدام بیشتر باشد- کافی است یا باید MPS منظور کنیم و موجودی را افزایش دهیم. همچنین این کار را باید به ترتیب از نزدیکترین دوره -مثلا هفته اول- تا دورترین دوره -مثلا هفته هشتم- انجام دهیم. چرا که تصمیم ما برای دسترسی به محصولات جدید در یک دوره، روی مقدار موجودی در دورههای بعد موثر است و نمیتوانیم بدون این که وضعیت MPS در یک دوره مشخص شده باشد، وضعیت MPS در دورههای بعدی را مشخص کنیم.
چگونگی محاسبه POH
در هر دوره، بعد از تصمیمگیری برای داشتن یا نداشتن MPS، به سادگی میتوانیم مقدار POH را محاسبه کنیم. مقدار POH در هر دوره نشان میدهد که بعد از پاسخ به تقاضای احتمالی در آن دوره، یا تحویل سفارشات ثبت شده برای آن دوره، چند محصول باقی میماند.
اگر در یک دوره MPS داشته باشیم، مجموع محصولات آماده تحویل از جمع زدن «مقدار موجودی در ابتدای دوره» و «مقدار محصولی که به واسطه MPS در دسترس قرار گرفته» به دست میآید. اما اگر MPS وجود نداشته باشد، مجموع محصولات آماده تحویل برابر با محصولاتی است که به عنوان موجودی از قبل در دسترس بودهاند. برای محاسبه POH باید ببینیم که از میان «مقدار احتمالی تقاضا» و «تعداد سفارشات ثبت شده » کدام بزرگتر است و همان را از «مجموع محصولاتی که در دسترس قرار گرفته» کسر کنیم. مثلاً اگر ۱۰۰ واحد محصول از دورههای قبل مانده باشد، ۶۰ سفارش ثبت شده باشد و تقاضای احتمالی را ۸۰ واحد تخمین زده باشیم، عدد ۸۰ را به دلیل بزرگتر بودن مبنا قرار میدهیم، آن را از عدد ۱۰۰ کسر میکنیم و POH را برابر ۲۰ واحد محاسبه میکنیم.
چگونگی محاسبه ATP
بعد از تعیین مقادیر MPS و POH برای همه دورهها، میتوانیم ATP را نیز محاسبه کنیم. ATP مقدار محصولی است که قبلاً قول تحویل آن را به مشتریان ندادهایم، لذا میتوانیم به همان مقدار سفارش جدید بگیریم یا فروش مستقیم داشته باشیم.
مقدار ATP را فقط برای دوره اول و سایر دورههایی که در آنها MPS منظور شده محاسبه میکنیم؛ یعنی اگر مثلاً در دوره دوم MPS نداریم، لازم نیست که مقدار ATP را برای آن دوره حساب کنیم. ضمن این که روش محاسبه ATP برای دوره اول، با روش محاسبه آن برای دورههای دیگر متفاوت است.
برای محاسبه ATP در دوره اول، ابتدا میبینیم که در دورههای بعدی تا قبل از صدور دستور MPS و در دسترس قرار گرفتن محصولات جدید، باید چه تعداد سفارش را تحویل دهیم. همه این سفارشات باید با کمک موجودیهای قبلی و محصولات جدیدی که در دوره اول به ما تحویل داده شدهاند، پاسخ داده شوند. لذا سفارشات ثبت شده برای دوره اول و دورههای بعدی، تا قبل از اولین دورهای که در آن MPS منظور شده است را جمع میزنیم. مثلاً اگر در دوره سوم دستور MPS منظور شده است، مقدار سفارش در دورههای اول و دوم را جمع میزنیم، یا اگر در دوره دوم دستور MPS داریم، فقط تعداد سفارشات در دوره اول را مبنا قرار میدهیم. در قدم بعد، این مقدار را از مجموع «موجودی اولیه در ابتدای دوره اول» و «مقدار MPS در دوره اول» کسر میکنیم تا تعداد محصولاتی که هنوز قول تحویل آنها را به کسی ندادهایم به دست آید.
برای محاسبه ATP در سایر دورهها، البته فقط در دورههایی که در آنها دستور MPS داریم، مجموع تعداد سفارشات را مثل حالت قبل محاسبه میکنیم. یعنی تعداد سفارشات در آن دوره و دورههای بعدی، تا وقتی به اولین دستور MPS برسیم را جمع میزنیم. سپس مجموع سفارشات را از «تعداد محصولی که به واسطه دستور MPS در همان دوره در دسترس قرار گرفته» کسر میکنیم تا ATP محاسبه شود؛ به عبارتی دیکر «موجودی که از دورههای قبل باقی مانده است» را لحاظ نمیکنیم. علت این است که قبلاً موجودیهای مربوط به دورههای قبل را به عنوان «موجودی قابل قول دادن» اعلام کردهایم.
حل مثال و محاسبه مقادیر خروجی
وقتی دوره اول شروع میشود، از ابتدا ۶۰ واحد موجودی داریم. مقدار احتمالی تقاضا ۱۶ واحد و تعداد سفارشات تعهد شده ۱۰ واحد است. چون مقدار تقاضا بیشتر از تعداد سفارشات است، عدد ۱۶ را مبنا قرار میدهیم. موجودی اولیه پاسخگوی ۱۶ واحد تقاضا است، لذا لازم نیست محصولات جدید در اختیارمان قرار بگیرند و دستور MPS داشته باشیم. برای محاسبه POH یا مقدار موجودی در دسترس بعد از پاسخ به تقاضا یا سفارشات، ۱۶ واحد از ۶۰ واحد موجودی اولیه کسر میکنیم و به عدد ۴۴ میرسیم.
برای دوره دوم، میدانیم که از ابتدا ۴۴ واحد موجودی در دسترس است. مقدار احتمالی تقاضا ۱۸ واحد است، پس باز هم نیازی به MPS نداریم. POH نیز ۲۶ واحد به دست میآید.
برای دوره سوم، ۲۶ واحد موجودی از قبل داریم که میتواند به ۲۰ واحد تقاضا پاسخ دهد. با این وجود در این حالت، مقدار موجودی به ۶ واحد میرسد که کمتر از ۸ واحد موجودی احتیاطی است. در نتیجه برای جلوگیری از تنزل موجودی به کمتر از ۸ واحد، دستور MPS صادر میکنیم. به واسطه این تصمیم، علاوه بر موجودی اولیه، ۴۰ واحد محصول جدید در دسترس قرار میگیرد و مجموعاً ۶۶ واحد محصول قابل عرضه خواهیم داشت. برای محاسبه POH مقدار تقاضای احتمالی یا همان ۲۰ واحد را از ۶۶ کسر میکنیم و به عدد ۴۶ میرسیم.
به همین ترتیب میتوانیم مقادیر MPS و POH را برای تمام دورهها به دست بیاوریم.
در پایان نوبت به پر کردن ردیف ATP میرسد. گفتیم که مقدار ATP را فقط برای دوره اول و دورههایی که MPS داریم محاسبه میکنبم.
دوره اول، تنهای دورهای است که موجودی اولیه را نیز در محاسبه ATP دخالت میدهیم. در این دوره ۶۰ واحد موجودی اولیه داریم. تعداد سفارشات در دوره اول برابر ۱۰ واحد است. اما در دوره دوم نیز بدون این که موجودی جدید در دسترس قرار بگیرد و دستور MPS داشته باشیم، بایستی ۱۶ سفارش را تحویل دهیم. پس مجموعاً ۲۶ واحد سفارش را از ۶۰ واحد موجودی اولیه کسر میکنیم و ATP برابر ۳۴ به دست میآید.
در دوره دوم MPS نداریم، پس ATP را برای آن به دست نمیآوریم. البته سفارشات مربوط به این دوره را در تعیین مقدار ATP برای دوره اول لحاظ کردهایم.
در دوره سوم، موجودی اولیه را برای محاسبه ATP لحاظ نمیکنیم، بلکه مبنای ما همان ۴۰ واحد موجودی است که به واسطه MPS در اختیارمان قرار میگیرد. در دوره سوم ۸ سفارش وجود دارد، اما برای دورههای چهارم و پنجم هیچ سفارش و تعهدی ثبت نشده است. در دوره ششم نیز MPS داریم و لذا سفارش مربوط به آن را لحاظ نمیکنیم. لذا از ۴۰ واحد محصول جدیدی که در دسترس قرار گرفته، صرفاً ۸ واحد آن برای پاسخ به سفارشات است و ۳۲ واحد بدون تعهد باقی میماند.
موجودی قابل قول دادن در دورههای ششم و هشتم را نیز میتوانیم به همین شکل محاسبه کنیم.
بروزرسانی برنامه زمانبندی
در درسهای قبلی گفتیم که برنامه زمانبندی از غیرتجمعی کردن برنامه تجمعی به دست میآید. ضمن این که میدانیم برنامه تجمعی برای یک افق زمانی میانمدت تنظیم میشود، حال آن که برنامه زمانبندی اصلی برای افق زمانی کوتاهتری است و فقط بخشی از برنامه تجمعی را پوشش میدهد. لذا تردیدی نیست که برنامه زمانبندی اصلی باید هر از چند گاه بروزرسانی شود و در افق زمانی میانمدت به سمت جلو حرکت کند.
برای این که درک بهتری از بروزرسانی برنامه زمانبندی داشته باشیم، فرض کنید یک هفته از زمانبندی تعیین شده گذشته است و میخواهیم اولاً برنامه را تا هفته نهم امتداد دهیم و ثانیاً بر اساس اطلاعات جدید، تغییراتی در آن اعمال کنیم.
در این مدت، سفارشات جدیدی برای دورههای مختلف ثبت شده است. مثلاً واحد فروش اطلاع داده که تعداد سفارشات در دوره دوم به ۳۲ واحد و در هفته سوم به ۲۴ واحد افزایش یافته است. اتفاق دیگر این است که ما پیشبینی کرده بودیم تقاضای احتمالی در دوره اول به ۱۶ واحد برسد، حال آن که تقاضای واقعی برابر با ۱۸ واحد بود. این تغییر باعث میشود که موجودی ما در ابتدای دوره دوم به جای ۴۴ واحد، ۴۲ واحد باشد. در جدول زیر، سفارشات جدید را منظور و موجودی اولیه در شروع دوره دوم را اصلاح کردهایم. ضمن این که میتوانستیم مقادیر احتمالی تقاضا را هم با توجه به اطلاعات جدید تغییر دهیم، اما از اعمال این تغییر خودداری کردیم.
روش محاسبه MPS، POH و ATP کاملاً مثل حالت قبل است و نیاز به توضیح ندارد. اما به تغییرات جدول دقت کنید. در برنامه قبلی، دوره چهارم فاقد دستور MPS بود، اما در برنامه جدید شاهد افزوده شدن این دستوریم. در درس گذشته توضیح دادیم که هر چه دورهها نزدیکتر باشند، اعمال تغییر در آنها دشوارتر و هر چه دورهها دورتر باشند، اعمال تغییر در آنها سادهتر است. افزودن دستور MPS به دوره چهارم که مصادف با سه هفته دیگر است، میتواند چالشها و هزینههای زیادی داشته باشد. با این وجود، فرض کردهایم که افزودن این دستور به دوره چهارم امکانپذیر است و توجیه اقتصادی دارد.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.