ALGORITMOS E TECNICAS DE PROGRAMACAO II - ppt carregar
ALGORITMOS E TECNICAS DE PROGRAMACAO II
Apresentação em tema: "ALGORITMOS E TECNICAS DE PROGRAMACAO II"— Transcrição da apresentação:
1 ALGORITMOS E TECNICAS DE PROGRAMACAO II
O PROBLEMA DAS 8 RAINHAS ALGORITMOS E TECNICAS DE PROGRAMACAO II BRUNO SENA, NATÁLIA MARCONDES E NAYRA DE OLIVEIRA
2 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.
3 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.
4 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.
5 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.
6 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.
7 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.
8 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.
9 Vamos executa-lo agora para mostrar todas as 92 soluções do problema.
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.