ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.
Transcript of ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.
![Page 1: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/1.jpg)
O PROBLEMA DAS 8 RAINHAS
ALGORITMOS E TECNICAS DE PROGRAMACAO IIBRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA
![Page 2: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/2.jpg)
O PROBLEMA
Colocar N rainhas (N>3) em um tabuleiro NxN de forma que elas não se ataquem
Obs: As rainhas podem se atacar na horizontal, vertical
e horizontais, ou seja, o objetivo é colocar uma
rainha por linha/coluna e diagonal.
![Page 3: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/3.jpg)
BACKTRACKING
Backtracking é um algoritmo que representa o refinamento por força bruta, técnicamente, muitas soluções podem ser eliminadas sem ser explicitamente examinadas.
Segue o padrão de busca em profundidade, ou seja, a arvore é percorrida sistematicamente até o fim, quando encontra um erro (falha) entra em ação o mecanismo backtracking que faz com que o sistema retorne pelo mesmo caminho, buscando encontrar soluções alternativas.
As principais aplicações desse algoritmo são para encontrar todos os 2^n subconjuntos de um conjunto S com n elementos.
![Page 4: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/4.jpg)
BACKTRACKING
Exemplo: Objetivo: encontrar as 4 primeiras bolas vermelhas.
A algoritmo backtracking é muito mais complexo de ser implementado, aqui estamos apenas trabalhando com a ideia implementada.
![Page 5: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/5.jpg)
BACKTRACKING
Exemplo desse problema no exercício das rainhas, sendo O rainhas e X posições onde não é possivel colocar rainhas, na 5ª linha ja haviam sido ocupadas todas as posições disponíveis e o programa seria encerrado. Nesse contexto, o backtracking é um ótimo auxiliar.
![Page 6: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/6.jpg)
AS 8 RAINHAS
Interação com o usuário, while e if simples que apenas obedecem as vontades do usuário de visualizar as opções e
a quantidade delas.
![Page 7: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/7.jpg)
AS 8 RAINHAS
O numero de rainhas é igual a dimensão do tabuleiro, e como só é possivel colocar uma rainha por linha ou coluna, apenas estamos trabalhando com um vetor xadrez que esta associado a coluna que a rainha esta disposta.
A função Ataque determina se a posição testada pode conter uma rainha.
![Page 8: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/8.jpg)
AS 8 RAINHAS
A função Rainha varre todo o tabuleiro, e cada posição acessada, verifica junto a função Ataque se a Rainha pode ser colocada ali.
O resto do código são comandos de comparação, impressão, interação com o usuário, etc.. Não convém aqui explicações detalhadas.
![Page 9: ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA.](https://reader036.fdocumentos.tips/reader036/viewer/2022062303/552fc145497959413d8e0b1d/html5/thumbnails/9.jpg)
AS 8 RAINHAS
Exemplo de saída do nosso código OitoRainhas_Final.
Vamos executa-lo agora para mostrar
todas as 92 soluções do problema.