Página inicial
/
Tecnologia
/
3) apresente um algoritmo para, dado um digrafo d=(v,a) e 2 vértices u ev. determinar o número minimos de arcos que devem ter sua

Question

3) Apresente um algoritmo para, dado um digrafo D=(V,A) e 2 vértices u ev. determinar o número minimos de arcos que devem ter sua orientação trocada para que tenhamos um caminho direcionado de u para v.

Solution

Verificación de expertos
4.7 (201 Votos)
Ayla Profissional · Tutor por 6 anos

Resposta

Para determinar o número mínimo de arcos que devem ter sua orientação trocada para que tenhamos um caminho direcionado de u para v em um grafo dirigido D=(V,A), podemos usar o algoritmo de Busca em Profundidade (DFS) com uma variante para contar o número de arcos que precisam ser invertidos.A ideia básica é realizar uma busca em profundidade a partir do vértice u e, ao encontrar o vértice v, contar o número de arcos que precisam ser invertidos para formar um caminho direcionado de u para v.Aqui está um exemplo de como esse algoritmo pode ser implementado:1. Inicialize uma variável "cont" para contar o número de arcos que precisam ser invertidos.2. Realize uma busca em profundidade a partir do vértice u, marcando cada vértice visitado.3. Enquanto a busca estiver sendo realizada, verifique se o vértice atual é o vértice v. Se for, pare a busca e retorne o valor da variável "cont".4. Caso contrário, para cada arco (u, w) dirigido de u para w, se w não foi visitado, incremente a variável "cont" e marque w como visitado.5. Se o vértice atual não for o vértice v e não houver mais arcos para explorar, volte ao vértice pai e continue a busca.6. Repita os passos 3 a 5 até que todos os arcos tenham sido explorados ou um caminho direcionado de u para v tenha sido encontrado.Ao final da execução do algoritmo, o valor da variável "cont" será o número mínimo de arcos que precisam ter sua orientação trocada para que tenhamos um caminho direcionado de u para v.