Soit une fonction sous-modulaire sur Ω = X 1 ∪ X 2 où X 1 et X 2 sont disjoints et f ( S ) = f 1 ( S ∩ X 1 ) + f 2 ( S ∩ X 2 ) . Ici f 1 et f 2 sont sous-modulaires sur X 1 et X 2 respectivement.
Ici, sont inconnus et seul un accès de requête de valeur à f est donné. Ensuite, existe-t-il un algorithme de polytime qui trouve X 1 . S'il y a plusieurs choix pour X 1, l' un d'eux devrait convenir.
Quelques idées. Si nous pouvons trouver deux éléments tels que les deux appartiennent à X 1 ou appartiennent à X 2, alors nous pouvons les fusionner et procéder récursivement. Mais il n'est pas clair comment mettre en œuvre une telle étape.
ds.algorithms
submodularity
Ashwinkumar BV
la source
la source
Réponses:
Prenons un élément arbitraire . Si f ( e ) = f Ω - e ( e ) alors e n'est pas affecté par le reste des éléments, nous pouvons donc choisir X 1 = { e } et X 2 = Ω - { e } . Sinon, soit X un sous-ensemble minimal de Ω - e inclus dans l'inclusion tel que f ( e ) > f Xe∈Ω f(e)=fΩ−e(e) e X1={e} X2=Ω−{e} X Ω−e . Alors X ∪ { e } devrait être dans la même partition. Si X ∪ { e } = Ω, nous concluons qu'il n'y a pas de partition souhaitée, sinon nous réduisons cet ensemble en un seul élément et reconsidérons.f(e)>fX(e) X∪{e} X∪{e}=Ω
la source