Quão difícil é uma variante do quebra-cabeça Sudoku?

8

O Sudoku é um quebra-cabeça bem conhecido que é conhecido por ser NP-completo e é um caso especial de um problema mais geral conhecido como quadrados latinos. Uma solução correta do quadrado consiste em preencher todas as linhas e todas as colunas com números de a sob a condição de que todo número apareça exatamente uma vez em qualquer linha ou coluna.N×N1N

Eu defino um novo problema. A entrada é uma solução correta do quebra-cabeça Sudoku (mais geralmente o problema do quadrado latino). Gostaria de decidir se há permutação de linhas e permutação de colunas, de modo que nenhuma linha e nenhuma coluna contenha triplos consecutivos.N×N

Um exemplo para uma linha sem triplo consecutivo é 9 5 6 2 3 8 4 7 1. Um exemplo para uma linha com triplo consecutivo é 8 9 5 2 3 4 7 6 1. O triplo é 2 3 4.

Suspeito que o problema seja difícil para o NP, mas não consegui encontrar uma redução.

Quão difícil é resolver esta variante do quebra-cabeça Sudoku? É NP-completo?

EDIT : Para esclarecer, a mesma permutação deve ser aplicada às colunas e às linhas.

Mohammad Al-Turkistany
fonte
1
Apenas uma informação: para quadrados latinos, você tem um exemplo fácil de onde essa permutação não existe?
Vor
Por que a entrada é uma grade correta? Permutações alterarão essa propriedade.
Saadtaame 20/03
@ saadtaame Observe que a entrada é uma solução correta do problema do quadrado latino e não o problema que defini acima.
Mohammad Al-Turkistany
Sim, por que tem que ser uma solução correta do quadrado latino?
Saadtaame
permutações livres @saadtaame de ponto fixo porque todas as filas e as colunas na entrada quadrado são apenas dos números de a . 1N
Mohammad Al-Turkistany

Respostas:

4

Quando as permutações de linha e coluna são diferentes e as triplas consecutivas precisam aumentar: A resposta é sempre SIM.

Suponhamos que a matriz tem o tamanho . Considere uma permutação aleatória das colunas. Cada linha (por si só) é uma permutação aleatória. A probabilidade de os números aparecerem nas posições é . Existem opções para e e linhas diferentes. Portanto, o número esperado de triplos consecutivos éN×NEu,Eu+1,Eu+2t,t+1,t+21/(N(N-1)(N-2))N-2tEuNN(N-2)2/(N(N-1)(N-2))<1. Concluímos que há alguma permutação das colunas, sob a qual não há triplos consecutivos em nenhuma das linhas. Agora repita o mesmo argumento para as colunas - observe que permutar as linhas não pode criar um triplo consecutivo em nenhuma delas.

Quando as permutações de linha e coluna são as mesmas e os triplos consecutivos podem aumentar ou diminuir: A resposta ainda é SIM, para grande o suficiente .N

A idéia é usar a versão desigual do lema local de Lovász , através do artigo de Lu e Székely, usando o lema local de Lovász no espaço de injeções aleatórias . Na prova anterior, consideramos os eventos para , que para uma linha (uma linha ou coluna), afirmam que para . Estes são exemplos dos eventos canônicos considerados por Lu e Székely: se a permutação aleatória (permutando linhas e colunas) é , então eles têm a forma , em queX,Eu,t,σσ{±1}(Eu+σδ)=t+δδ{0 0,1,2}ππ(t)=j0 0,π(t+1)=j1,π(t+2)=j2jδ=-1(Eu+σδ) . Dois eventos entram em conflito se ou ( na verdade, isso é apenas uma condição necessária). Cada evento entra em conflito com no máximo outros eventos ( linhas , duas orientações, duas maneiras de entrar em conflito, cinco posições conflitantes). Embora eventos não conflitantes sejam geralmente dependentes, usando a versão desigual do lema local de Lovász, podemos ignorar isso e deixar que nosso gráfico de dependência inclua arestas apenas para eventos conflitantes. Como a probabilidade de cada evento acontecer éX,Eu,t,σ,X,Eu,t,σ {t,t+1,t+2}{t,t+1,t+2}{j0 0,j1,j2}{j0 0,j1,j2}2N2251=40N12Np=1/(N(N1)(N2)) e o tamanho de cada vizinhança é , o lema se aplica sempre que , ou seja, Essa condição é satisfeita para . Concluímos que para , a permutação necessária sempre existe. Usando a versão construtiva recente da LLL, podemos encontrá-la com eficiência.d40N1ep(d+1)1

40.eNN(N-1)(N-2).
N12N12
Yuval Filmus
fonte
Obrigado pela sua resposta. Você aplicou a mesma permutação nas linhas e colunas?
Mohammad Al-Turkistany 21/03
Não, primeiro aplico uma boa permutação nas colunas e depois uma boa permutação nas linhas. Não há razão para eles serem os mesmos.
Yuval Filmus
Desculpe por não ser claro na minha pergunta. Eu quero uma permutação única que é aplicada às linhas e colunas simultaneamente.
Mohammad Al-Turkistany 21/03
2
Aqui está o que você escreveu: "decida se há permutação de linhas e permutação de colunas de modo que ...".
Yuval Filmus 21/03
Desculpe novamente por não estar claro na minha pergunta. Se você não se importa, vou editar a pergunta para esclarecer.
Mohammad Al-Turkistany 21/03