12 de jan. de 2010

Técnicas avançadas I

Antes de mais quebra-cabeças, acho melhor fazer um tutorial sobre as técnicas mais avançadas de resolução. São elas:
- cadeias;
- cadeias múltiplas;
- x-wing;
- swordfish; e
- xy-wing.

Nesse tópico, vou explicar as cadeias, o que já serve para resolver a maioria dos quebra-cabeças do próximo nível de dificuldade. No próximo, explico as outras três. Lembrando que todas essas também são técnicas de retirada de candidatos.

1) CADEIAS:
Essa técnica visa a busca de incoerências lógicas nos relacionamentos dos candidatos em cada conjunto (linha, coluna ou sub-caixa). Isso é feito sempre que um conjunto possuir apenas duas células com um determinado candidato, fazendo com que a colocação em um implique na retirada do outro.
Buscando esses relacionamentos, é possível verificar situações em que a regra do sudoku é quebrada (ou nenhum daquele candidato ou dois ou mais candidatos no conjunto). Com isso, fazemos as retiradas adequadas a cada caso.

Ex:
a) filtrando somente os candidatos 2, vemos a cadeia destacada nas cores verde-limão e azul. Usando essas duas cores, mostra-se mais claramente a alternância entre as células com candidatos. Repare que a célula E6 não pode ter 2 como candidato, pois isso faria com que elementos alternados de uma mesma cadeia (células C6 e E9) não pudessem ser marcados com o 2. Podemos, então, retirar o 2 como candidato.



b) nesse caso, vemos que elementos da própria cadeia analisada caem em contradição com a regra. Marcar qualquer 3 destacado em azul tornaria a solução inválida. Logo, podemos retirar o 3 de todas as células marcadas em azul.



2) CADEIAS MÚLTIPLAS
Nesse método, analisamos duas cadeias complementares, as quais possuem interseção em algum conjunto. Verificamos os elementos que fazem essa interseção para depois procurar elementos que façam interseção com suas alternâncias. Caso exista alguma célula que se encaixe nessa interseção, pode ter o candidato analisado retirado.

Ex: filtrando os candidatos, deixando somente o 9 aparente, podemos destacar as cadeias abaixo (uma em verde-limão e azul e outra em rosa e abóbora). Um elemento rosa (A5) compartilha a linha A com um elemento azul (A9). Logo, qualquer célula que esteja na interseção de algum conjunto entre células verde-limão e laranja pode ter o 9 retirado. É o caso do 9 em D4.



No próximo post: as outras técnicas avançadas!

35 comentários:

PrO-SkatE disse...

Muito bem explicado...Eu estava precisando de umas tecnicas novas para jogar o nivel avançado.Obrigado!

Jose Vitor Pereira disse...

Há alguma lógica para a seleção de cores? E se as cores estiverem invertidas (verde com o azul) vai dar para terminar na mesma? Obrigado!

Marcelo disse...

Na verdade pode-se utilizar qualquer artifício para seguir as relações. Quando faço na mão, por exemplo, uso letras em vez de cores. Qualquer dúvida, fica à vontade pra postar. Abs.

Carlos disse...

Olà Marcelo.

Desculpe, mas não compreendi os dois métodos de cadeia. Nenhum dos dois. Como funciona esta alternância que não consegui observar?

Obrigado pela ajuda.
Abraços.

Marcelo disse...

Oi Carlos! Na cadeia simples, as duas cores são uma única cadeia. Repare na alternância entre as células candidatas. As cores destacam essa alternância. No exemplo (a) a célula pode ter o 2 removido porque aquele 2 faria duas células que são da cadeia e estão em alternância (cores diferentes) não pudessem mais ter o candidato 2, gerando assim uma inconsistência. No exemplo (b), a própria cadeia traz uma inconsistência, porque duas células sem alternância (mesma cor) dividem um mesmo conjunto.
No caso de múltiplas cadeias, uma das cadeias usa as cores verde e azul para mostrar a alternância e a outra está com rosa e abóbora. Nesse caso, a inconsistência é mais sutil de ser percebida, então, experimente marcar o 9 que sugiro que seja retirado do exemplo e veja o que acontece com os outros. Um exemplo simples de cadeias múltiplas é um x-wing.
Eu também demorei um pouco para entender as cadeias, mas a melhor forma é fazer o teste do erro, supondo que aquele que deveria ser retirado assuma o valor.
Espero que tenha ajudado! :)
Abs!!!

Jonny disse...

acho q ficou bem mal explicado pra falar a verdade, n tendi nada, faz com mais fotos pfvr

Marcelo disse...

Oi Jonny. O que você não entendeu, mais especificamente? Estou pensando em fazer um vídeo explicativo em um futuro próximo, porque não acho que mais figuras vão ajudar muito.

Segue o passo-a-passo e as sugestões que dei nos comentários acima. Não tenta fazer tudo de uma vez que é meio enrolado mesmo.

Se ainda estiver com dificuldade, posta aqui. Abs!

Unknown disse...

Parabéns pela iniciativa... Está bastante clara a sua explicação... sem duvida é uma ótima ferramenta para "desempacar" asuheuasheusaheuhau
Obrigado!!

Anônimo disse...

Oi Marcelo,
Gostei dos seus posts. Mas não consegui usar as regras no exemplo que estou tentando resolver que está no link abaixo. Teria como você me dar uma dica do próximo passo?
http://arquipixels.files.wordpress.com/2013/07/imagem.jpg

Você poderia também me explicar o que são cadeias e alternância?

Muito Grata,
Mônica

Marcelo disse...

Oi Mônica! Que bom que gostou dos tutoriais! Primeiro sobre as cadeias e alternâncias.
CADEIA: é uma sequência de pares de células que possuem o mesmo candidato e estão em um mesmo conjunto (linha, coluna ou caixa).
ALTERNÂNCIA: é o efeito excludente que um elemento de uma cadeia tem sobre o outro. Isto é, caso se escolhesse aquele candidato, o outro seria automaticamente excluído pela regra de restrição básica do Sudoku.
Nos exemplos, você pode ver a alternância marcada pela diferenciação de cores.
Sei que é complicado explicar assim, mas é como falei aí em cima. Estou pensando em fazer um vídeo em breve com uma resolução que envolva várias técnicas.

Quanto ao puzzle que você postou, ele é inválido por possuir mais de 3000 soluções. Foi de revista ou de um software?

Anônimo disse...

Obrigada, Marcelo! Eu nem sabia que haviam sudokus inválidos! Esse que eu envie é de um software que uso no meu celular: ticbits.
Consegui resolvê-lo por tentativa e erro, mas não acho legal assim... queria seguir a lógica.
Obrigada mais uma vez!
Mônica

Marcelo disse...

Pois é, Monica! Tem muito software de celular que cria puzzles inválidos. Não é que não tenham solução, mas possuem várias. Então, chega num ponto onde só é possível resolver por tentativa e erro, achando apenas uma das soluções possíveis.
O sudoku, por definição, possui apenas uma solução possível para cada puzzle.
Eu uso o Sudoku Free, da GENINA no Android. Apesar de achar até o Extreme deles fácil, é um bom passatempo! :)
No PC, uso o software do Angus que está listado nos links aqui do blog!
Abs!

Carlos disse...

Olà Marcelo.
Gostaria de saber seu face ou whatsapp, ou envie um email, estou empacado em um sudoku do modo dificil e outro extreme. Estou esperando voce criar um video atè hoje, rsrsrs, nao entendi as cadeias, cadeias multiplas, etc...
Meu email è csimonetti18@hotmail.com.

Muito obrigado.

Unknown disse...

No caso do "primeiro" 2 excluído. Pq somente E9?

Unknown disse...
Este comentário foi removido pelo autor.
Unknown disse...

Sobre o cadeia letra b nao compreendi direito, no caso como vc sabe as cores? por exemplo se vc invertesse a cor de um deles seria outro que não poderia ser marcado, por exemplo voce colocou E1 verde e F2 azul, se fosse o contrario o B2 seria excluido nao o B1, fiquei confusa nisso.

Marcelo disse...

Oi Contadora! As cores são meros marcadores. Servem para identificar os pares de células nos quais apenas um pode ser atribuído aquele número. Quando eu jogo em jornais ou revistas, uso letras para isso em vez de cores.
No caso do exemplo que você não entendeu: se eu simplesmente trocar a cor, as outras marcações não farão sentido, tendo também que ser trocadas. No final, o resultado será o mesmo.
Faça esse exercício: comece a marcar a cadeia por A9. Escolha uma cor qualquer e vá fazendo as alternâncias. Vai chegar no mesmo resultado do exemplo! :)
Espero que tenha esclarecido sua dúvida!

Unknown disse...
Este comentário foi removido pelo autor.
Unknown disse...

Ola boa noite, estou tendo dificuldade na compreensão da linguagem usada, por gentileza tem como me explicar em uma linguagem simples? Desde ja agradeço!

Unknown disse...

Muito bom!!!
Não tinha entendido pela postagem, mas na sua explicação pelos comentários clareou um pouco! Só essas cadeias múltiplas que ta meio embaçado ainda..
Faça vídeos!! Acho que vai ser bem melhor!
E nos exemplos mostre mais outros que possam ser excluídos, exemplos ajudam bastante na hora de aprender!
Obrigada!!!

Unknown disse...

By the way, a pessoa chega aqui e diz que ta mal explicado.
Você está fazendo um favor!! A pessoa que é devagar e mal educada.
Se não entendeu deveria pedir de um jeito mais educado e humilde.
Bom trabalho :)

Marcelo disse...

Andressa, relaxa! Você tem razão, quanto mais exemplos melhor mesmo! Prometi uns vídeos, cheguei até a começar a gravar, mas ainda não tive paciência de editar. Não te achei mal educada não! Criticas são sempre bem-vindas! :)

Taka disse...

Marcelo, tenho uma dúvida. Por que a célula C2 do exemplo a) não é um canditado para o número 2?

Unknown disse...

Taka, acho que identifiquei o porquê.
Tanto nas celulas B5 e C6, quanto nas A9 e C7, os únicos números possíveis são 2 e 3, isso faz com que C6 e C7 só possam ter 2 e 3 e então, obrigatoriamente, nenhuma outra casa na linha C pode ter um desses números.
Não sei se essa foi a lógica que o Marcelo usou mas eu costumo descartar muitos candidatos assim.

Unknown disse...

Marcelo, estou procurando técnicas mais fáceis de identificar sem fazer muitas anotações. Jogo no nível master no Android, app Sudoku World, mas só da pra marcar os números pequenos de possibilidades (e todos juntos), não da pra por cores e etc.
Você conhece algumas?

Obrigada.

Unknown disse...

O marcelo eu estou muito interessado em conhecer as técnicas avançadas de sudoku...eu estou travado em um puzzle e preciso de alguém pra estar me ensinando as técnicas, será que vc tem tempo de me ajudar? Se puder me ajudar o número do meu whatsapp é (31)9993-8498

Raquel disse...

Marcelo preciso de ajuda em um Sudoku impossível. Me ajude. Vou deixar meu Whats aqui. 011948856961

Nathy Calina disse...

Juro por Deus que já li, reli, li os comentários e não entendi nada dessa cadeia simples nem a nem b. Não entendo pq aquele dois não pode ser. Acho que não estou familiarizada com sua linguagem. Realmente não entendi.

Dinho disse...

Li várias vezes tbm e depois pelos comentários eu "acho" que entendi. Bom, no exemplo (a) ele escolheu um número aleatório que foi o 2. Aí ele foi identificar o que chamou de cadeia, ou seja, possiveis números 2 na mesma linha, coluna ou caixa que tivessem no máximo 2 possibilidades. Ele escolheu a cor verde-limao e pintou a célula A2. Depois analisou na mesma linha, coluna e caixa, onde tinha outro único 2. Ao encontrar ele pintou com a outra cor (azul, nas células B2 e A9. Em seguida ele continuou a cadeia pintando a partir da última pintada (B2 ou A9). Se baseando pela B2 ele encontrou a B5 e pintou com a outra cor (verde-limao). A próxima que ele encontrar a partir da B5 ele pinta de azul e assim por diante. Chega um momento que não tem mais opção pra pintar (encerra a cadeia) então ali vc inicia a análise. Se vc achar um 2 (como ele acho na célula E9) que esteja no encontro (linha, coluna ou caixa) da cadeia com cores diferentes (no caso dele foram as células C6 (azul) e E9 (verde), então vc pode apagar aquela possibilidade na célula E6, pois não poderá ser o 2 ali.

Obs: tem vários 2 pintados de verde, mas os que pertencem a cadeia são os 2 pintados com o verde-limao

No exemplo (b) ele foi avançando na primeira cadeia até finalizar. Em seguida ele analisou e percebeu que em um dos conjuntos (no caso dele foi na primeira caixa) tinham dos 3 azuis. Isso não pode acontecer. Então ele simplesmente apagou as possibilidades de 3 em todas as casas azuis.

Cadeias múltiplas pelo que eu entendi é vc repetir o processo de encontrar novas cadeias do mesmo número. Após fechar a primeira cadeia do número 2 no exemplo (a) ele poderia iniciar uma nova cadeia por um número 2 que não estivesse dentro da primeira cadeia. Assim ele pintaria com novas duas cores pra não misturar com a primeira cadeia. Foi o que ele fez no exemplo de cadeias múltiplas. Ao finalizar a segunda cadeia(rosa e abóbora) ele foi analisar e percebeu que o 9 rosa (A5) estava no mesmo conjunto (nesse caso foi uma coluna, mas poderia ser linha ou caixa) que um elemento da primeira cadeia (A9). Sendo assim ele procurou outros cruzamentos da primeira cadeia com a segunda (neste caso do abóbora com o verde-limao) e achou um 9 nesse cruzamento (D4). Assim ele apagou a D4

Obs: a D4 estava no cruzamento da D5 (abóbora) e I4 (verde-limao

Dinho disse...

Marcelo, cara... Estou impressionado. Consegui resolver meu primeiro Sudoku expert. Eu já conseguia resolver sudokus todos como "difíceis", mas experts não. Então chegou um momento que travou. Eu tinha anotado todas as possibilidades em todos os campos, porém pelas minhas análise eu não encontrava nenhum número que seguramente pudesse colocar. Então fui pesquisar técnicas avançadas e cai aqui. Custei a entender sua explicação, mas lendo os comentários eu acho que consegui. Em seguida voltei pro meu problema e fiz 3 cadeias do número 1, porém não achei um número que pudesse eliminar. Então fui para as cadeias do número 2 e após a terceira cadeia identifiquei um número 2 para eliminar pela regra das cadeias múltiplas. O legal foi que sobrou apenas o número 4 nesse campo, porém na sub-caixa ainda tinham mais 4 possibilidades de serem 4. Eu coloquei o 4 ali e em menos de 2 minutos o Sudoku estava resolvido. Fiquei muito feliz por ter me superado com a sua ajuda! Agr vou me aprofundar nessas técnicas.

Tenho uma pergunta: esse tipo de técnica funciona em sudokus maiores (16x16 ao invés de 9x9, por exemplo)?

Hugo Siqueira disse...

Use a HASHTAG: "#visão espacial Sudoku" OU O link a seguir: https://www.youtube.com/watch?v=9M7SnKURcUs&fbclid=IwAR2j0CbA8ydhdmwwUnWA5BKykjLymB1JdW3BYTzOY20GGWsiqxXhcIDS9KM

Joaquim Ferreira disse...

Como se determina qual é a célula verde limão e a azul?

Mateus disse...

Marcelo, não entendi a cadeia múltipla. A cadeia eu entendi a lógica, duas celulas com o mesmo candidato no msm conjunto; seja linha, coluna ou o quadrante. Sendo assim, vc faz o teste como se colocasse o número na celula e vê a cadeia que formaria do candidato posto naquela célula, se nessa cadeia, algum número cair na msm linha, quadrante ou coluna vai quebrar a regra primárias do sudoku. Porém na prática ainda nao utilizei mto essa técnica, pq talvez eu precise usar mais a cadeia múltipla, justamente que eu nao entendi

Ricardo disse...

Bom dia, no primeiro exemplo não entendi porque os '2' da 6ª subcaixa não fazem parte da cadeia. Obrigado

Unknown disse...

Bom dia , não consegui entender cadeias múltiplas