我問幾天前,一個關於如何將大學課堂排序問題轉換爲布爾可滿足性問題的問題。類布爾到布爾可滿足性[多項式時間減少]第2部分
(Class Scheduling to Boolean satisfiability [Polynomial-time reduction])
我通過@Amit回答誰是非常優雅,易於代碼。 基本上,他的答案是這樣的:他不考慮課程,而是考慮時間間隔。
因此,對於第i個課程,他只是指出了本課程的所有可能的時間間隔。當每個課程至少有1個真實時間間隔並且沒有時間間隔與另一個時間間隔重疊時,我們可以得到一個解決方案。
當我們只考慮課程而不考慮其他因素時,這種方法效果很好。我通過在區間內對房間進行編碼來概括它。
例如,而不是[8-10]說,課程可能發生在上午8點到上午10點之間。
我用[0.00801 - 0.01001]說一門課程可以在房間上午8時和10時之間發生1
我敢肯定,你目前徘徊「爲什麼雙用?」那麼,因爲這裏來我的問題:
爲了繼續推廣這種方法,我編碼也在這個區間的老師的n°。
我用[1.00801 - 1.01001]表示一個課程可以在房間1的早上8點到上午10點之間發生,並由老師n°1教授。
這裏是我得到了現在:
這樣[1.008XX - 1.010XX]可以在同一時間發生[2.008YY - 2.010YY],這是真的,如果老師1在上午8點到上午10點在教室X教學,老師2也可以在上午8點到上午10點之間教授Y,當且僅當房間可用時。
問題是:使用這種方法我不能確保XX和YY會有所不同,並且YY將可用,因爲[1.008XX - 1.010XX]不會重疊[2.008XX - 2.010XX],所以對於現在,解決者認爲這是可能的。
我仍然沒有就如何確保這一點,通過使用此區間方法任何線索...... 我需要一種方法,以便編碼{間隔,房間和老師-ID}指出:
- 老師不能在同一間隔的2個地方。
- 在相同的時間間隔內,同一個房間中不能有2位教師。
- 當然,至少有1個區間是真的。
在此先感謝您的幫助, 此致敬意!
後續問題:Class Scheduling to Boolean satisfiability [Polynomial-time reduction] Final Part
我認爲這個問題對於SO來說太寬泛了。我不確定確切的問題是什麼或確切的問題是什麼。 – 2015-03-19 13:01:36
想想我有一個想法如何解決它,希望我有時間今天晚些時候正式化它。另外:耶,我最喜歡的問題B部分! – amit 2015-03-19 13:10:46
@MattKo,基本上,問題是:如何用間隔表示形式化所有關於房間,教師和課程的約束。現在,課程和房間的所有限制都已經完成了,我只是不知道如何正式化:「老師不能同時在兩個房間裏」,「在同一個房間裏不能有兩個老師同一時間「:) – 2015-03-19 13:31:25