O problema mínimo de corte
O problema de corte mínimo
é um problema fundamental na teoria dos gráficos e na otimização combinatória. Dado um gráfico (direcionado ou não direcionado) com capacidades atribuídas às suas bordas e dois vértices designados, uma (s) fonte (s) e um afundamento (t), o problema é encontrar um conjunto de arestas cuja remoção desconecta a fonte do coletor e minimize a soma das capacidades dessas bordas.
Em outras palavras, um
corte Em um gráfico, há uma partição dos vértices em dois conjuntos disjuntos, S e T, de modo que a fonte * s * pertence a S e a pia * t * pertence a T. A capacidade
do corte é a soma das capacidades das bordas que passam de um vértice em S para um vértice em T. O problema mínimo de corte visa encontrar o corte com a menor capacidade.
Formalmente:
*
Entrada: * Um gráfico g =(v, e), onde v é o conjunto de vértices e e é o conjunto de arestas.
* Uma função de capacidade C:e -> r+ atribuindo uma capacidade não negativa a cada borda.
* Um vértice de origem S ∈ V.
* Um vértice da pia t ∈ V.
*
saída: * Uma partição (s, t) de V tal que s ∈ S, t ∈ T e a capacidade do corte c (s, t) =σ c (u, v) (onde u ∈ S e v ∈ T) é minimizado.
Exemplo: Imagine uma rede rodoviária onde cada estrada tenha uma certa capacidade de tráfego. Você deseja encontrar o conjunto mínimo de estradas que você precisa fechar (o corte) para impedir completamente o tráfego de fluir de uma cidade 's' para uma cidade 't'. A capacidade total dessas estradas fechadas representa o custo do corte, e você está procurando o conjunto de fechamentos de estradas mais baratos (capacidade mínima).
Como o corte mínimo é usado na otimização de fluxo de rede (o teorema do corte mínimo de fluxo de fluxo)
A conexão entre o problema mínimo de corte e a otimização de fluxo de rede é profunda e capturada pelo teorema
max-fllow min-cut . Este teorema afirma que:
A quantidade máxima de fluxo que pode ser enviada da fonte para a pia em uma rede é igual à capacidade do corte mínimo que separa a fonte e a pia.
Veja como isso acontece:
1. Problema de fluxo de rede: O problema do fluxo de rede visa encontrar a quantidade máxima de "fluxo" (por exemplo, dados, líquido, eletricidade) que podem ser enviados da fonte para o coletor, sujeitos às restrições de capacidade das bordas.
2. Encontrando o fluxo máximo: Algoritmos como Ford-Fulkerson ou Edmonds-Karp são usados para encontrar o fluxo máximo na rede.
3. Relacionando o fluxo para cortar: O teorema de corte min-fluxo máximo nos diz que, uma vez que encontramos o fluxo máximo, o valor desse fluxo * é * a capacidade do corte mínimo.
4. Encontrando o corte mínimo: Embora possamos inferir a capacidade do corte mínimo do fluxo máximo, geralmente queremos saber * quais bordas * constituem o corte mínimo. Isso pode ser encontrado olhando para o gráfico residual depois de executar um algoritmo Max-Flow:
* Gráfico residual: O gráfico residual é um gráfico derivado do gráfico original que mostra a capacidade restante disponível em cada borda (ou a capacidade de "desfazer" fluir ao longo de uma borda).
* Identificando o corte mínimo: Depois de encontrar o fluxo máximo, execute uma análise de acessibilidade no gráfico residual a partir da fonte. Todos os vértices acessíveis da fonte no gráfico residual pertencem ao conjunto 's' do corte mínimo. Todos os outros vértices pertencem ao conjunto 'T'. As bordas que cruzam de 's' para 't' no gráfico * original * constituem o corte mínimo.
em resumo:
* Você resolve o problema máximo de fluxo.
* O valor do fluxo máximo é igual à capacidade do corte mínimo (teorema de corte mínimo de fluxo máximo).
* Ao analisar o gráfico residual após a calcular o fluxo máximo, você pode identificar as bordas específicas que formam o corte mínimo.
Por que isso é útil?
* Determinando gargalos: O corte mínimo identifica os gargalos em uma rede. Essas são as bordas que, quando removidas, restringem mais severamente o fluxo da fonte para o afundar.
* Alocação de recursos: Compreender o corte mínimo ajuda na alocação de recursos eficientes. Você pode se concentrar em reforçar as bordas no corte mínimo para melhorar a capacidade geral da rede.
* Partição de rede: O corte mínimo pode ser usado para particionar uma rede em dois componentes fracamente conectados. Isso pode ser útil em problemas de agrupamento ou na identificação de grupos de nós que são relativamente independentes um do outro.
* Resolvendo outros problemas: O problema mínimo de corte tem aplicativos em diversas áreas, incluindo segmentação de imagens, mineração de dados e programação de projetos. Muitos desses problemas podem ser modelados como problemas de fluxo de rede e resolvidos usando o teorema de corte mínimo de fluxo máximo.
Exemplo de uso em um cenário:
Imagine uma rede elétrica que distribua eletricidade de uma usina (fonte) para uma cidade (pia). As linhas têm capacidades diferentes. Se calcularmos o corte mínimo entre a usina e a cidade, podemos:
1. Saiba a quantidade máxima de eletricidade que a cidade pode receber (o fluxo máximo =Min Cut Capacy).
2. Identifique as linhas mais vulneráveis (as bordas no corte min) que, se danificadas ou sobrecarregadas, impactariam severamente o suprimento de eletricidade na cidade.
3. priorize atualizações e manutenção nessas linhas críticas (as bordas de corte min) para aumentar a confiabilidade geral da grade de energia.
Em conclusão, o problema mínimo de corte, vinculado pelo teorema do Min-Flow Min-Cut à otimização de fluxo de rede, fornece uma ferramenta poderosa para analisar e melhorar a eficiência e a robustez de vários sistemas de rede.