我想要提出一個算法,使基於一羣人有多項式時間可用的最大空閒時間組,但我相信這個問題的解決方案可能是NP。基於空閒時間可用的組製造商算法
的問題是如下:
我們把一週到1個小時時間段,用戶可以放下每個插槽無論是免費或忙。假設我們從30位用戶那裏收集這些信息。讓我們假設用戶%GROUP_SIZE = 0
第一:
是否有可能把這些人劃分成大小的G組,從而每個組大小G的每個成員都有一個重疊的空時隙彼此?
是否有可能將這些人放入G組中,從而產生最佳解決方案,即在所有組中都有最大總重疊空閒時間段?
例如,如果我們有一組6人以下免費時間:
答:1個pm-3pm週日,1個pm-3pm週一
B:2 pm-3pm週日,1 pm-3pm星期一
C:1個pm-3pm星期日及7 pm-9pm星期一
d:6 pm-7pm星期日及7 pm-9pm星期一
E:5 pm-7pm星期日及7 pm-9pm星期一
F:6 pm-7pm星期日AND 1個pm-3pm星期一
該算法將確定A,B,F將是一組,C,d,E將是另一個組中,因爲最大的兩個小時各組之間的空閒時間重疊。這與A,B,C和D,E,F相反,它只包含組中每個成員的1個重疊時隙。因此,這是所有羣體之間總共最大重疊的最佳解決方案。
我意識到這個問題可能與Hopcroft-Karp算法有關,但需要進行大量修改才能完成此任務。他們的另一種算法與Hopcroft-Karp算法的解決方案更緊密相關嗎?這個解決方案可以在多項式時間內實現嗎?
背景:
我們有一堆誰想要志願者事業的人(30-50),他們只具有一定的時候,他們是在一週內免費。我們希望將他們分成3-5個小組,並讓他們爲此共同努力。我們希望小組成員儘可能多地與對方在一起,因此我們希望將他們分成幾組,他們有相似的空閒時間。
非常感謝,請讓我知道這是一個明顯的問題,還是需要更多的說明。
這是一個非常有吸引力的問題,但是您認爲MathOverflow會更好嗎?然後你可以使用那裏的答案在這裏提出一個實現特定的問題。注意;我知道沒有任何問題是關於實現的。 –
我從來沒有聽說過MathOverflow。我會檢查出來並把它放在那裏。謝謝! – applecrusher
問題是否「是否可以將這些人放入G組中,以便每個G組中的每個成員都有一個相互重疊的空閒時隙?」意味着該組的所有成員需要有相同的空閒時隙?我猜想這會更有意義,但是當我第一次看到你的問題時,聽起來像是兩兩重疊的時隙就足夠了。 –