Introdução
Nos algoritmos, como na vida, a negatividade pode ser um empecilho.
Considere o problema de encontrar o caminho mais curto entre dois pontos em um gráfico — uma rede de nós conectados por links ou arestas. Frequentemente, essas arestas não são intercambiáveis: um gráfico pode representar um mapa rodoviário no qual algumas estradas são mais lentas que outras ou têm pedágios mais altos. Os cientistas da computação explicam essas diferenças emparelhando cada aresta com um “peso” que quantifica o custo de se mover nesse segmento – quer esse custo represente tempo, dinheiro ou qualquer outra coisa. Desde a década de 1950, eles sabem como encontrar os caminhos mais curtos essencialmente o mais rápido possível teoricamente, assumindo que todos os pesos são números positivos.
Mas, em alguns gráficos, os pesos podem ser negativos — viajar ao longo de um segmento pode compensar o custo de percorrer outro. Considere, por exemplo, um motorista de entrega que deve equilibrar o custo do combustível e pedágios (representados por pesos positivos) com a renda do transporte de pacotes (representados por pesos negativos). Nesses casos, o algoritmo de caminho mais curto conhecido mais rápido não funciona. Durante décadas, algoritmos rápidos para encontrar caminhos mais curtos em gráficos de peso negativo permaneceram indefinidos.
Agora, um trio de cientistas da computação resolveu esse problema de longa data. o novo deles algoritmo, que encontra os caminhos mais curtos através de um gráfico de um determinado nó de “fonte” para todos os outros nós, quase corresponde à velocidade que os algoritmos de peso positivo alcançaram há muito tempo.
Além do mais, a nova abordagem usa técnicas matemáticas de décadas, evitando métodos mais sofisticados que dominaram a pesquisa moderna da teoria dos grafos.
“Eu simplesmente não conseguia acreditar que um algoritmo tão simples existisse”, disse Maximiliano Probst Gutenberg, cientista da computação do Instituto Federal Suíço de Tecnologia de Zurique. “Tudo isso está lá há 40 anos. Bastava que alguém fosse realmente inteligente e determinado para fazer tudo funcionar.”
Os limites da ganância
A história começa em 1956, quando o cientista da computação holandês Edsger Dijkstra desenvolveu um algoritmo rápido para encontrar os caminhos mais curtos em um gráfico com apenas pesos positivos. Para entendê-lo, imagine começar a partir da fonte e explorar o gráfico um nó por vez, anotando os pesos das arestas recém-descobertas à medida que avança. Cada vez que você visitar um nó, faça estimativas preliminares dos caminhos mais curtos da origem para cada um dos vizinhos do novo nó, atualizando quaisquer estimativas existentes se você encontrar um novo caminho mais curto. Para decidir qual nó inexplorado visitar em seguida, use o que é chamado de estratégia gananciosa: vá para o que estiver mais próximo da fonte de acordo com sua estimativa atual.
Com pesos positivos, o caminho que o algoritmo de Dijkstra percorre para visitar cada nó pela primeira vez é realmente o mais curto. É mais fácil ver que isso é verdade para o primeiro passo. Imagine dois nós A e B conectados por uma aresta com peso 2. Se A é o nó de origem e todas as arestas que o tocam têm um peso maior, então o caminho direto de A para B deve ser o caminho mais curto possível conectando esses dois pontos , pois o primeiro segmento de qualquer outro caminho já seria mais longo. Raciocínio semelhante funciona em cada etapa. O algoritmo nunca precisa olhar para trás, então é garantido que terminará depois de percorrer o gráfico uma vez — é isso que o torna tão rápido.
Mas pesos negativos significam problemas para a estratégia gananciosa de Dijkstra. Considere novamente nosso motorista de entrega. Uma rota direta de A para B que gera um pequeno lucro pode render menos dinheiro do que um caminho tortuoso que tem um grande retorno em algum lugar. “Você não pode tomar decisões apenas com base nas informações locais”, disse Sanjeev Khanna, um cientista da computação da Universidade da Pensilvânia. “Você pode ter que fazer vários movimentos aparentemente abaixo do ideal para finalmente obter uma recompensa real.”
Durante décadas, cientistas da computação trabalhando em gráficos de peso negativo tentaram igualar a velocidade do algoritmo de Dijkstra com algoritmos “combinatórios” semelhantes. Isso envolve operações discretas - como contar possibilidades, modificar pesos e deletar seletivamente arestas - que refletem a estrutura discreta do grafo subjacente. O progresso desacelerou na década de 1990, no entanto. Mais recentemente, os pesquisadores usaram algoritmos de “otimização contínua”, que emprestam truques do cálculo. Infelizmente, os aumentos de velocidade resultantes foram limitados e muitas vezes custaram a simplicidade.
Quebre o ciclo
No verão de 2021, dois cientistas da computação que se tornaram colegas na Universidade de Copenhague — Danupon Nanongkai e Christian Wulff-Nilsen — estavam procurando um tema para um projeto de pesquisa conjunto. “Christian disse: 'Ah, a propósito, eu estava de férias e por isso estava tentando pensar em algo muito ambicioso'”, lembrou Nanongkai, que agora está no Instituto Max Planck de Informática em Saarbrucken, Alemanha. Eles resolveram o problema dos caminhos mais curtos de peso negativo e convidaram Aaron Bernstein da Rutgers University para se juntar a eles.
Todos os três pesquisadores eram especialistas em algoritmos de gráficos combinatórios para outros problemas e queriam ver até onde essas abordagens relativamente antigas poderiam levá-los. “Na verdade, existe uma certa liberdade em trabalhar em um problema que é ambicioso e está aberto há muito tempo”, disse Bernstein.
O trio começou ignorando temporariamente um subconjunto de gráficos possíveis: aqueles que continham ciclos negativos. Esses são caminhos que voltam para onde começaram depois de passar por uma série de arestas cujos pesos somam um número negativo. Em um gráfico com ciclos negativos alcançáveis a partir do ponto de partida, a noção de um caminho mais curto se desfaz, pois você pode tornar a distância até qualquer nó tão negativa (ou lucrativa) quanto quiser, dando voltas repetidas ao redor do ciclo negativo antes partir para o seu destino.
Os pesquisadores suspeitavam que caminhos negativos longos eram os principais responsáveis por dificultar o problema. Então eles começaram a se concentrar em aglomerados compactos de nós próximos, que não podem conter nenhum caminho negativo longo: isso porque se dois pontos são conectados por um caminho positivo curto, adicionar um caminho negativo longo entre eles criaria um ciclo negativo. Dentro de um cluster compacto, “o fato de que todos estão próximos em um sentido positivo, na verdade, também fornece informações úteis sobre as arestas negativas”, disse Bernstein. “Isso diz que as coisas não podem ser muito negativas.”
A maioria dos grafos contém muitos desses clusters de malha estreita que são apenas fracamente conectados uns aos outros. Se os pesquisadores pudessem identificar todos os grupos, eles suspeitavam que poderiam desenvolver uma maneira de encontrar os caminhos mais curtos rapidamente dentro de cada um. A partir daí, eles podem ter mais facilidade em conectar clusters individuais e encontrar os caminhos mais curtos no grafo original. Mas isso exigiria identificar rapidamente as regiões de qualquer gráfico em que os nós estão próximos – algo que eles não sabiam fazer. A chave acabou por ser uma técnica que se originou em um ramo totalmente diferente da teoria dos grafos.
Cortando Gráficos
Na década de 1980, os cientistas da computação desenvolveram uma técnica chamada decomposição de baixo diâmetro para selecionar aglomerados compactos em um gráfico e identificar as bordas a serem excluídas para separar esses aglomerados. Essa técnica fornece uma maneira de dividir gráficos em seções independentes. Ele foi inventado para facilitar algoritmos “distribuídos”, nos quais as computações são executadas em paralelo em diferentes partes de um grafo, por isso era menos obviamente útil para algoritmos de caminhos mais curtos, que não possuem essa propriedade.
Bernstein, Nanongkai e Wulff-Nilsen perceberam que a decomposição de baixo diâmetro poderia ajudá-los a identificar aglomerados sem muita negatividade concentrada. Infelizmente, os algoritmos padrão de decomposição de baixo diâmetro funcionam apenas em grafos não direcionados – aqueles em que cada aresta pode ser percorrida em ambas as direções. O problema dos caminhos mais curtos de peso negativo, por sua vez, só faz sentido em grafos direcionados, nos quais cada aresta é uma rua de mão única. (Caso contrário, uma única borda negativa não direcionada criaria um ciclo negativo que consiste em saltos repetidos para frente e para trás nessa borda.) Se os pesquisadores quisessem usar a decomposição de baixo diâmetro, eles teriam que adaptá-la.
Isso é o que eles fizeram em seu novo papel. Inspirado por trabalho passado em que Bernstein e Wulff-Nilsen colaboraram com Probst Gutenberg, eles desenvolveram um procedimento de fraturamento para gráficos direcionados análogo à decomposição de baixo diâmetro. O procedimento divide um grafo direcionado arbitrário em uma série de clusters de malha estreita usando um processo aleatório para excluir apenas um punhado de arestas. Posteriormente, esses clusters são conectados por uma rede mais esparsa na qual todas as arestas apontam na mesma direção. Esse tipo de rede é chamado de grafo acíclico direcionado, ou DAG.
Pense em um DAG como um riacho no qual a água pode fluir por caminhos diferentes: alguns caminhos fluem de fontes diferentes, outros se espalham em direções diferentes e outros ainda podem se separar e se fundir novamente. Mas nada flui para trás, então não há ciclos; isso torna os DAGs muito mais fáceis de trabalhar.
Os pesquisadores há muito sabem como encontrar rapidamente os caminhos mais curtos em DAGs, mesmo com pesos negativos. Assim, a técnica de fraturamento permitiu que os três pesquisadores reduzissem qualquer gráfico direcionado a uma combinação de dois casos especiais – DAGs e clusters compactos – que eram fáceis de manusear.
O novo algoritmo de caminhos mais curtos usa repetidamente o procedimento de fraturamento para quebrar um grafo em clusters de malha estreita conectados por um DAG. Em seguida, ele separa esses clusters cada vez mais. No final do processo, os clusters no nível mais interno são conectados o mais próximo possível. Parte do motivo pelo qual o algoritmo é tão rápido é que não são necessárias muitas iterações para decompor completamente até mesmo um gráfico muito grande, assim como não leva muito tempo para reduzir um número grande a um tamanho razoável se você dividir repetidamente isso pela metade.
Com o gráfico totalmente dividido dessa maneira, os pesquisadores puderam encontrar rapidamente os caminhos mais curtos em todas as partes do gráfico. Para os clusters compactos no nível mais interno da estrutura do gráfico aninhado, isso foi fácil - eles praticamente não tinham mais negatividade. E os pesquisadores já sabiam como encontrar os caminhos mais curtos nas seções DAG que os unem.
Finalmente, o algoritmo adiciona de volta as arestas eliminadas pelo processo de fraturamento e calcula seus efeitos nos caminhos mais curtos. Os pesquisadores provaram que seu processo de exclusão aleatória de arestas quase sempre exigiria apenas algumas exclusões para eliminar arestas “inversas” – o tipo que transformaria seu DAG em um gráfico com grandes ciclos. Isso tornava extremamente improvável que qualquer caminho mais curto passasse por muitos desses segmentos retrógrados, então eles puderam resolver essa complicada etapa final combinando dois métodos de livros didáticos da década de 1950: o algoritmo de Dijkstra e o primeiro algoritmo desenvolvido para gráficos de peso negativo.
“É uma composição extremamente inteligente dessas ideias”, disse Khanna. O algoritmo é o primeiro para gráficos de peso negativo executados em tempo “quase linear” – o que significa que seu tempo de execução é quase proporcional ao tempo necessário apenas para contar todas as arestas, o mais rápido possível.
E os gráficos com ciclos negativos, que os pesquisadores decidiram ignorar no início? Depois de dar os retoques finais em seu algoritmo de caminhos mais curtos, eles mostraram que ele também poderia funcionar como um algoritmo rápido para identificar ciclos negativos. Praticamente nenhum gráfico estava fora de seu alcance.
caminhos paralelos
Bernstein apresentou o resultado da equipe na conferência Foundations of Computer Science de 2022, onde seu manuscrito descrevendo o novo algoritmo foi considerado um dos dois melhores trabalhos. o outro papel também passou a descrever um novo algoritmo de tempo quase linear para resolver um problema de longa data na teoria dos grafos.
Esse algoritmo, desenvolvido por Probst Gutenberg e outros cinco pesquisadores, abordou um problema mais geral chamado fluxo de custo mínimo, no qual o objetivo é otimizar o transporte por vários caminhos em paralelo, e cada aresta tem uma capacidade máxima e um custo associado . Problemas de caminhos mais curtos são um caso especial de fluxo de custo mínimo, então o novo algoritmo de fluxo de custo mínimo também pode ser usado para resolver o problema de caminhos mais curtos de peso negativo em tempo quase linear, embora com uma abordagem radicalmente diferente.
A equipe que trabalha no fluxo de custo mínimo desenvolveu seu algoritmo rápido de uso geral usando uma síntese complexa de técnicas de otimização combinatória e contínua que o torna difícil de manejar na prática, pelo menos atualmente. O algoritmo combinatório de Bernstein e seus colegas, embora restrito a um problema mais específico, atinge seu tempo de execução quase linear sem sacrificar a simplicidade.
“Isso é o que há de tão surpreendente neste artigo”, disse Probst Gutenberg. “Você pode explicá-lo para um aluno de graduação e também pode implementá-lo em seu computador.”
Como resultado, este novo algoritmo reavivou o interesse em abordagens combinatórias para outros problemas na teoria dos grafos. Resta saber quais problemas podem ser resolvidos rapidamente usando algoritmos puramente combinatórios e quais realmente requerem as técnicas contínuas desenvolvidas nos últimos 20 anos.
“Esta é uma questão filosófica que estou tentando entender”, disse Nanongkai. “Esse problema do caminho mais curto dá alguma esperança.”
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 anos
- 2021
- 2022
- a
- Sobre
- Segundo
- Conta
- alcançado
- em
- acíclico
- adaptar
- Adiciona
- Depois de
- contra
- algoritmo
- algoritmos
- Todos os Produtos
- já
- sempre
- ambicioso
- Antigo
- e
- Outro
- à parte
- abordagem
- se aproxima
- por aí
- associado
- em caminho duplo
- Equilíbrio
- baseado
- Porque
- tornam-se
- antes
- começou
- Acreditar
- Bernstein
- MELHOR
- entre
- Pós
- Grande
- pedir emprestado
- Ramo
- Break
- quebra
- Quebrado
- calcula
- chamado
- Capacidade
- casas
- casos
- certo
- CIS
- Fechar
- de perto
- Agrupar
- colaborou
- colegas
- combinação
- combinando
- como
- cálculos
- computador
- Ciência da Computação
- Concentrado
- Conferência
- conectado
- Conexão de
- Considerar
- Consistindo
- contínuo
- Custo
- poderia
- crio
- Atual
- Atualmente
- Cortar
- ciclos
- DAG
- décadas
- decidido
- decisões
- Entrega
- descreve
- destino
- determinado
- desenvolver
- desenvolvido
- DID
- diferenças
- diferente
- difícil
- diretamente
- direção
- descoberto
- distância
- Não faz
- não
- down
- motorista
- Neerlandês
- cada
- ganhar
- mais fácil
- maneira mais fácil é
- borda
- efeitos
- eliminado
- eliminado
- habilitado
- inteiramente
- essencialmente
- estimativa
- estimativas
- Mesmo
- SEMPRE
- todos
- existente
- existe
- especialistas
- Explicação
- Explorando
- extremamente
- facilitar
- ventilador
- RÁPIDO
- mais rápido
- Federal
- poucos
- final
- Finalmente
- Encontre
- descoberta
- encontra
- Primeiro nome
- primeira vez
- fluxo
- Fluxos
- Foco
- encontrado
- Fundações
- Freedom
- da
- totalmente
- mais distante
- GAS
- Geral
- propósito geral
- Alemanha
- ter
- dado
- dá
- Go
- meta
- gráfico
- gráficos
- Ganancioso
- garantido
- Gutenberg
- Metade
- punhado
- manipular
- aconteceu
- Título
- ajudar
- superior
- esperança
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- HTTPS
- idéias
- identificar
- executar
- in
- Passiva
- de treinadores em Entrevista Motivacional
- Individual
- INFORMAÇÕES
- inspirado
- instância
- Instituto
- interesse
- Inventado
- envolver
- IT
- iterações
- juntar
- juntando
- Chave
- Tipo
- Saber
- conhecido
- grande
- Maior
- Nível
- vida
- Limitado
- limites
- Links
- local
- longo
- muito tempo
- de longa data
- mais
- olhar
- moldadas
- fazer
- FAZ
- Fazendo
- maneira
- muitos
- mapa,
- Match
- matemático
- max
- máximo
- significa
- Entretanto
- ir
- métodos
- poder
- EQUIPAMENTOS
- dinheiro
- mais
- movimentos
- em movimento
- quase
- negativo
- vizinhos
- Nets
- rede
- Novo
- Próximo
- nó
- nós
- Noção
- número
- números
- compensar
- ONE
- aberto
- Operações
- otimização
- Otimize
- original
- originado
- Outros
- Outros
- de outra forma
- pacotes
- emparelhamento
- Papel
- papéis
- Paralelo
- parte
- peças
- Passagem
- passado
- caminho
- Pennsylvania
- escolher
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- pontos
- positivo
- possibilidades
- possível
- praticamente
- prática
- apresentado
- Problema
- problemas
- processo
- Lucro
- rentável
- Progresso
- projeto
- propriedade
- provou
- fornece
- puramente
- Colocar
- Quantagazine
- questão
- rapidamente
- radicalmente
- acaso
- rapidamente
- alcançar
- reais
- realizado
- razão
- razoável
- recentemente
- reduzir
- refletir
- regiões
- relativamente
- permaneceu
- permanece
- repetido
- REPETIDAMENTE
- representar
- representado
- representa
- requerer
- requeridos
- pesquisa
- pesquisadores
- responsável
- restringido
- resultar
- resultando
- Recompensa
- estrada
- Rota
- Execute
- corrida
- Rutgers University
- sacrificando
- Dito
- mesmo
- Ciência
- Cientista
- cientistas
- pesquisar
- seções
- segmento
- segmentos
- sentido
- Série
- Liquidado
- vários
- Baixo
- semelhante
- simples
- simplicidade
- desde
- solteiro
- Tamanho
- pequeno
- So
- RESOLVER
- Resolvendo
- alguns
- Alguém
- algo
- algum lugar
- sofisticado
- fonte
- Fontes
- especial
- específico
- velocidade
- SOLETRAR
- divisão
- padrão
- começo
- começado
- Comece
- Passo
- Ainda
- História
- Estratégia
- transmitir canais
- rua
- estrutura
- estudante
- tal
- verão
- suíço
- Tire
- toma
- tomar
- Profissionais
- técnicas
- Equipar
- conta
- livro didático
- A
- The Graph
- A fonte
- deles
- coisas
- três
- Através da
- tempo
- para
- juntos
- também
- tópico
- tocando
- transporte
- Viagens
- problema
- verdadeiro
- VIRAR
- Virado
- subjacente
- compreender
- universidade
- atualização
- usar
- férias
- praticamente
- querido
- Água
- webp
- peso
- O Quê
- se
- qual
- QUEM
- dentro
- sem
- Atividades:
- trabalhar
- trabalho
- seria
- anos
- Vocês
- investimentos
- zefirnet
- Zurique