از ChatGPT برنامهٔ تولید هفتگی بخواهید، در چند ثانیه یک جدول مرتب تحویل میگیرید: همهٔ روزها متعادل و همهٔ سفارشها سر جایشان. مشکل اینجاست که برنامه میتواند بر حسب تعداد قطعه متعادل به نظر برسد و باز هم روی یک دستگاه اجرانشدنی باشد. آن یک دستگاه گلوگاه است و تا وقتی در دادهها نیاید، ChatGPT آن را نمیبیند.
در ۲۴ سال کار در تولید، برنامههای هفتگی زیادی دیدهام که چهارشنبه از هم پاشیدهاند، آن هم به یک دلیل: بر اساس تعداد سفارش چیده شده بودند، نه بر اساس ساعت کار روی ایستگاهی که خروجی را محدود میکند. در ادامه روش سادهٔ اکسلی را آوردهام که با ChatGPT برای چیدن برنامهٔ هفتگیِ هماهنگ با گلوگاه به کار میبرم. این مقاله ادامهٔ نوشتهٔ قبلیام دربارهٔ پرامپتهای ChatGPT برای مدیر تولید است. کارخانه و همهٔ عددهای این مقاله فرضیاند و دادهٔ هیچ شرکت واقعی نیستند.

مثال فرضی
یک کارخانهٔ کوچک فلزی چهار محصول P1 تا P4 را در سه مرحله میسازد: برش، جوشکاری و رنگ. این هفته باید ۱٬۵۲۰ قطعه تولید کند. جوشکاری دو شیفت ۷٫۵ ساعته کار میکند، یعنی روزی ۱۵ ساعت و هفتهای ۷۵ ساعت ظرفیت دارد.
برنامهریز فهرست سفارشها را در ChatGPT گذاشت و پرسید: «یک برنامهٔ تولید هفتگی از شنبه تا چهارشنبه بچین که روزها متعادل باشند.» جواب بینقص به نظر میرسید: روزی حدود ۳۰۴ قطعه. ولی کسی به ChatGPT نگفته بود که جوشکاری هر قطعهٔ P3 ۹ دقیقه طول میکشد و هر قطعهٔ P4 فقط ۱٫۲ دقیقه. همین برنامه وقتی با ساعت جوشکاری سنجیده شد، از ایستگاهی که روزی ۱۵ ساعت ظرفیت دارد، روزی ۱۴ تا ۲۱ ساعت و در مجموع ۸۸ ساعت کار میخواست. آخر هفته حدود ۱۳ ساعت کار جوشکاری مانده بود و دو سفارش به هفتهٔ بعد افتاد.
ChatGPT دقیقاً همان کاری را کرد که از او خواسته شده بود. سؤال اشتباه بود، نه ابزار.
قدم ۱: سه جدول کوچک در اکسل
پیش از اینکه چیزی از ChatGPT بپرسم، مواد خام برنامه را در سه جدول اکسل میگذارم:
- سفارشها: محصول، تعداد، موعد تحویل. P1 ۴۰۰ قطعه، P2 ۳۰۰، P3 ۱۲۰ و P4 ۵۰۰.
- مسیر تولید: دقیقهٔ لازم برای هر قطعه در هر مرحله. برای جوشکاری: P1 ۶، P2 ۴، P3 ۹ و P4 ۱٫۲ دقیقه.
- ظرفیت: ساعت در دسترس هر مرحله در هر روز، پس از کسر استراحت و نگهداری برنامهریزیشده، نه ساعت تقویمی.
بیشتر افراد همین بخش را جا میاندازند، در حالی که اصل کار همین است. اگر زمانهای مسیر تولید قدیمی یا غلط باشند، هیچ هوش مصنوعیای برنامه را درست نمیکند. دربارهٔ این موضوع در مقالهٔ چرا برنامهریزها سیستم را دور میزنند نوشتهام.
قدم ۲: بار هر مرحله، پیش از هر توالی
حالا از ChatGPT فرمول میخواهم، نه برنامه: «در جدول سفارشها ستونی اضافه کن که ساعت جوشکاری هر سفارش را با دقیقههای جوشکاری جدول مسیر تولید حساب کند.» جواب خوب یک ستون کمکی مثل این است:
=[@Qty]*XLOOKUP([@Product],Routing[Product],Routing[Weld min])/60
همین کار را برای برش و رنگ هم انجام میدهم. جمع هر ستون، بار هفتگی هر مرحله را نشان میدهد:
- برش: حدود ۳۸ ساعت در برابر ۷۵ ساعت ظرفیت، یعنی ۵۰٪ بار.
- رنگ: حدود ۴۵ ساعت در برابر ۷۵ ساعت، یعنی ۶۰٪ بار.
- جوشکاری: ۴۰ + ۲۰ + ۱۸ + ۱۰ = ۸۸ ساعت در برابر ۷۵ ساعت، یعنی ۱۱۷٪ بار.
گلوگاه جوشکاری است و با بار ۱۱۷٪، هیچ توالی زیرکانهای این هفته را جا نمیاندازد. این یک تصمیم مدیریتی است، نه یک ترفند برنامهریزی.
قدم ۳: اول تکلیف کسری را روشن کنید، بعد برنامه بچینید
کسری ۱۳ ساعت جوشکاری است. در این مثال دو گزینهٔ واقعی داریم: یک شیفت اضافه در روز پنجشنبه برای جوشکاری (۷٫۵ ساعت بیشتر) و انتقال P4 که موعدش دوشنبهٔ هفتهٔ بعد است به هفتهٔ بعد (۱۰ ساعت کمتر). با هم، بار جوشکاری را به ۷۸ ساعت در برابر ۸۲٫۵ ساعت ظرفیت میرسانند، یعنی حدود ۹۵٪. این حاشیهٔ کوچک را عمداً نگه میدارم: برنامهای که ۱۰۰٪ گلوگاه را پر کند، با اولین خرابی به هم میریزد.
اینجا ChatGPT ماشینحساب خوبی برای گزینههاست: «اگر یک شیفت پنجشنبه اضافه کنم و P4 را منتقل کنم، بار جوشکاری چند درصد میشود؟» ولی تصمیم اینکه کدام مشتری منتظر بماند با او نیست.
قدم ۴: توالی را فقط روی گلوگاه بچینید و بقیه پشت سرش بیایند
فقط حالا توالی میچینم، آن هم فقط روی گلوگاه. سفارشها را بر اساس موعد تحویل مرتب میکنم و یک ستون ساعت تجمعی جوشکاری اضافه میکنم. شمارهٔ روز با یک فرمول ساده به دست میآید:
=ROUNDUP([@[Cum weld h]]/15,0)
روز ۱ شنبه است و روز ۶ پنجشنبه. سفارشهای بزرگ هر جا ساعت تجمعی از مرز یک روز رد شود، بین دو روز تقسیم میشوند. برش یک روز جلوتر از جوشکاری برنامهریزی میشود تا جوشکاری هیچوقت منتظر مواد نماند، و رنگ پشت سر جوشکاری میآید. هر دو ظرفیت اضافه دارند و به توالی پیچیدهٔ جداگانه نیاز ندارند.
قدم ۵: از ChatGPT بخواهید برنامه را بررسی کند، نه فقط بنویسد
آخرین پرامپت یک بررسی است: «برای هر روز ساعتهای جوشکاری این برنامه را جمع بزن و هر روزی را که از ۱۵ ساعت (و پنجشنبه از ۷٫۵ ساعت) بیشتر است علامت بزن.» در برنامهٔ جدید شنبه تا چهارشنبه ۱۵ ساعت و پنجشنبه ۳ ساعت است. هیچ روزی علامت نمیخورد و ۴٫۵ ساعت باقیماندهٔ شیفت پنجشنبه، حاشیهٔ اطمینان برای یک خرابی در طول هفته است.
پرامپتهایی که برای این کار نگه داشتهام:
- «اینها جدولهای سفارشها، مسیر تولید و ظرفیت من هستند. بار هر مرحله را برای این هفته به ساعت و درصد حساب کن. هنوز برنامه نچین.»
- «کدام مرحله بیش از ۹۰٪ بار دارد؟ گزینههای جبران کسری را با ساعتی که هرکدام اضافه میکند فهرست کن.»
- «یک فرمول اکسل بنویس که هر سفارش را بر اساس ساعت تجمعی گلوگاه، با روزی ۱۵ ساعت، به یک روز اختصاص بدهد.»
- «این برنامه را بررسی کن: ساعت روزانهٔ هر مرحله در برابر ظرفیت. هر اضافهباری را علامت بزن.»
میخواهید این روش را روی برنامهٔ هفتگی خودتان امتحان کنید؟
سفارشهای یک هفته، زمانهای مسیر تولید و الگوی شیفت را برایم بفرستید، حتی بدون نام محصول. با هم گلوگاه واقعی را پیدا میکنیم، بار را به ساعت میبینیم و یک برنامهٔ هفتگی اکسلی میسازیم که برنامهریز شما بتواند در چند دقیقه بهروزش کند.
تماس با من بخوانید: پیدا کردن گلوگاه بخوانید: تابلوی بار ظرفیت
منابع
- برنامهریزی بر اساس محدودیت از تئوری محدودیتها (الیاهو گلدرت، کتاب «هدف») پیروی میکند: گلوگاه خروجی کل کارخانه را تعیین میکند، پس اول برنامهریزی میشود و با یک حاشیهٔ اطمینان محافظت میشود.
- مقایسهٔ بار و ظرفیت بر حسب ساعت، همان بررسی ظرفیت سرانگشتی (RCCP) در برنامهریزی جامع تولید است. XLOOKUP و ارجاع ساختاریافته به جدول از توابع استاندارد اکسلاند. کارخانه و همهٔ عددهای این مقاله فرضیاند.
- مطالعهٔ مرتبط در همین سایت: پرامپتهای ChatGPT برای مدیر تولید، دور زدن سیستم توسط برنامهریز و دادهٔ پایه، تابلوی بار ظرفیت و پیدا کردن گلوگاه.