Feb 16, 2007

Jobs Allocation

這學期旁聽老闆上的一門課(其實我已經修過了,只是不同老師教的),關於Monte Carlo Simualtion,聽到一個有趣的例子,在此記下。

假設有兩種工作要完成,Job 1和Job 2,兩種機台(Workshop)都可以處理這兩種工作,而機台一次只能處理一個工作。Job 1由Workshop A處理,Job 2由Workshop B處理(如圖黑線箭頭所示)。假設Job 1和Job 2進來的速度(arrival rate)是相同的,兩機台的處理速度(process rate)也一樣。現在,Job 1處理完後產生的利潤較高,於是經理決定,Workshop B也處理Job 1(紅色箭頭),而且Job 1有優先權使用Workshop B,也就是說Job 1不必跟Job 2一樣排隊等著使用Workshop B。

這是很直觀的想法,讓利潤高的Job 1優先處理完。這種情況下,Job 1可以很快的就處理完畢,但是排隊等著處理的Job 2就會愈來愈多,而且Workshop A的利用率(utilization)遠低於100%的Workshop B。這個系統並不是最佳化(optimization),沒有處理而一直累積的Job 2,無法帶來利潤,經理必須在不添購機台和增加其容量(capacity)的條件下,設法處理不斷累積的Job 2。

讓兩機台都處理兩種工作?這個方法看似可行,但仔細想就會發現,這跟一個機台只負責一項工作是一樣的效果,反而不如經理先前提出的方案有用。目前發現最有效的方式,配置還是如同上面的例子,讓Workshop B可以處理Job 1和Job 2,但是規則稍微改變一下:當等待處理的Job 1,排隊隊伍長度超過某一個定值(這依系統參數算出來),才讓Workshop B去處理Job 1。這樣,就不會有Job 1長期「霸佔」Workshop B而使得Job 2無法處理的問題了,而且也能夠適時的多處理一些利潤高的Job 1。

這或許可以解釋,為什麼夫妻兩人一同分擔家務事時,總是有一位顯得比另一位忙碌。因為其中一位,總是嫌另一半做得不夠好,而過去幫忙,但另一半卻不會回過頭來幫忙。就有如Workshop B同時處理Job 1和Job 2,所以Job 1很快就處理掉,使得只處理Job 1的Workshop A,常常會處於閒置狀態。

1 comment:

  1. "這或許可以解釋,為什麼夫妻兩人一同分擔家務事時,總是有一位顯得比另一位忙碌。因為其中一位,總是嫌另一半做得不夠好,而過去幫忙,但另一半卻不會回過頭來幫忙。就有如Workshop B同時處理Job 1和Job 2,所以Job 1很快就處理掉,使得只處理Job 1的Workshop A,常常會處於閒置狀態。"

    hahahahahah~interesting..久了之後常處於閒置的workshop效率大概就會愈變愈低,最後向我爸一樣,所有的job都要到Workshop B 去排隊了...

    ReplyDelete