Você está na página 1de 51

UNIVERSIDADE FEDERAL DO PARAN

KARLA CRISTIANE ARSIE

JOGOS SUDOKU E QUADRADO MGICO

CURITIBA 2010

KARLA CRISTIANE ARSIE

JOGOS SUDOKU E QUADRADO MGICO


Monograa apresentada disciplina Trabalho de Concluso de Curso II para Licenciatura e Bacharelado, Setor de Cincias Exatas, Universidade Federal do Paran, como requisito parcial obteno do grau de Licenciada e Bacharel em Matemtica. Orientadora: Prof.a Dr.a Elizabeth Wegner Karas

CURITIBA 2010

TERMO DE APROVAO

KARLA CRISTIANE ARSIE

JOGOS SUDOKU E QUADRADO MGICO

Monograa aprovada como requisito parcial obteno do grau de licenciada e Bacharel em Matemtica, Setor de Cincias Exatas da Universidade Federal do Paran, pela seguinte banca examinadora:

Orientadora: Prof.a Dr.a Elizabeth Wegner Karas Departamento de Matemtica, UFPR Prof. Dr. Ademir Alves Ribeiro Departamento de Matemtica, UFPR Prof.a Dr.a Deise Maria Bertholdi Costa Departamento de Expresso Grca, UFPR

Curitiba, 08 de julho de 2010.

AGRADECIMENTOS

minha famlia. Pelo incansvel apoio e carinho. Ao meu noivo Rodrigo. Pela pacincia e pelo imenso e verdadeiro amor que me dedica h tantos anos. Aos meus amigos e professores. Pela motivao e ensinamentos que me zeram crescer. Aos professores Ademir e Arinei. Pelo apoio e sugestes que me motivavam cada vez mais a estudar. Ao professor Celso Penteado. Pela sua colaborao indispensvel. professora Deise. Pelas sugestes e participao na banca. E professora Elizabeth. Que foi quem possibilitou a realizao desse trabalho. Durante esses anos que trabalhamos juntas ela teve muita pacincia e se dedicou muito minha formao. Obrigada pelos seus ensinamentos, conselhos,puxes de orelha, pois foram eles que me zeram uma pessoa melhor.

Resumo
Neste trabalho estudamos dois jogos populares: Sudoku e Quadrado Mgico. O Sudoku consiste em preencher uma tabela de 9 linhas e 9 colunas divididas em 9 regies de 3 linhas e 3 colunas de modo que os algarismos de 1 a 9 apaream uma e somente uma vez em cada linha, coluna ou regio, sendo que algumas posies j esto preenchidas inicialmente. Discutimos inicialmente algumas dicas para agilizar o preenchimento da tabela, minimizando o tempo de jogo. Apresentamos tambm uma modelagem matemtica do jogo como um problema de programao linear binria que pode ser resolvido usando, por exemplo, o software Lingo. Por outro lado, o jogo Quadrado Mgico consiste em preencher uma tabela de n linhas e n colunas com algarismos de 1 a n2 de modo que a soma de cada linha, coluna e diagonais seja constante. Este jogo tambm foi modelado como um problema de programao linear binria. No entanto, contrariando nossas expectativas, o tempo computacional gasto pelo software Lingo para resolver um Quadrado Mgico de ordem 5 de quase 3 horas, contra poucos minutos para resolver um Sudoku de nvel mdio. Diante deste fato estudamos algumas tcnicas de resoluo do Quadrado Mgico, que so divididas em trs classes. H tcnicas especcas para Quadrado Mgico de ordem mpar, outras quando a ordem par mltipla de 4 e outras quando a ordem par no mltipla de 4. A partir dessas tcnicas implementamos um algoritmo em Visual Basic, que resolve com sucesso um Quadrado Mgico de qualquer ordem. Palavras-chave: Modelagem Matemtica, Sudoku, Quadrado Mgico.

Contedo
Introduo 7

1 O jogo Sudoku 9 1.1 Dicas de Preenchimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 Quadrado Mgico 2.1 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Quadrado Mgico 3 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Quadrado Mgico de qualquer ordem . . . . . . . . . . . . . . . . . . . . . Concluso A Sudoku no Lingo 26 27 29 38 47 48

vi

Introduo
Iniciamos o nosso trabalho com o objetivo de estudar Modelagem Matemtica para que entrssemos em contato e nos familiarizssemos com essa nova linguagem para que pudssemos seguir em nossos estudos. Neste tempo de estudo sobre modelagem zemos vrios exemplos e um que surgiu em uma das discusses sobre o tema foi o jogo Sudoku. Aps terminarmos a modelagem deste jogo surgiu a idia de fazermos a modelagem para o jogo Quadrado Mgico. A princpio era apenas para fazer a modelagem destes jogos e seguir com outros problemas, mas o estudo sobre os jogos comeou a se tornar interessante, e comeamos a perceber que alm da modelagem podamos abordar outros assuntos sobre eles. O que nos motivou ainda mais a continuar o estudo e transform-lo neste trabalho de concluso de curso foram os seminrios que apresentamos para o grupo de iniciao cientca orientado pelos professores Arinei Lindbeck da Silva, Ademir Ribeiro e Elizabeth Wegner Karas, alm da apresentao em alguns eventos tais como: 27o Colquio Brasileiro de Matemtica, realizado no IMPA em julho de 2009, Ocina de modelagem matemtica: Situaes - Problema motivadoras para programao linear e no linear, realizada na UFPR em novembro de 2009 e 1o Colquio da Regio Sul, realizado na UFSM em abril de 2010 . Nestas apresentaes surgiram vrios questionamentos que nos intrigaram e nos motivaram a estudar o assunto. O captulo 1 dedicado ao jogo Sudoku. Iniciamos, apresentando o estudo que zemos do livro Mastering Sudoku week by week [7] que traz uma srie de dicas para se conseguir resolver Sudokus e/ou acelerar o processo de resoluo. Depois apresentamos a modelagem matemtica que zemos do jogo, a qual foi baseada apenas em suas regras. Para resolvermos o problema utilizamos o programa Lingo 9.0. O modelo se comportou muito bem. O modelo na linguagem do programa lingo est em anexo. O captulo 2 dedicado ao jogo Quadrado Mgico. Modelamos este jogo com a mesma idia que modelamos o jogo Sudoku, apenas utilizando suas regras. O modelo

proposto um problema de programao linear binrio, que tambm resolvemos utilizando o programa Lingo 9.0. Testamos o modelo para os quadrados mgicos de ordem at 5. Para estes testes o modelo foi exato. Porm, o programa demorou mais de 3 horas para resolver o de ordem 5. Diante deste fato comeamos a estudar mtodos de resoluo do quadrado mgico. Os mtodos so divididos em trs classes. H mtodos especcos para quadrado mgico de ordem mpar, outros para ordem par mltila de 4 e outros para ordem par no mltipla de 4. A partir desses mtodos elaboramos um algoritmo para implementar, por exemplo, no Visual Basic. E ento conseguimos um programa que resolve com sucesso um quadrado mgico de qualquer ordem. O programa executvel est disponvel na pgina http://people.ufpr.br/ ewkaras/ic/ic.htm.

Captulo 1 O jogo Sudoku


O nome Sudoku a abreviao japonesa para a frase, suuji wa dokushin ni kagiru que signica os dgitos devem permanecer nicos. O jogo uma grade de dimenso 9 9 constituda de subgrades de dimenso 3 3 chamadas de regies. Algumas clulas j contm nmeros, chamadas como nmeros dados ou pistas. O objetivo preencher as clulas vazias, com um nmero em cada clula, de maneira que cada coluna, linha e regio contenham os nmeros naturais 1 a 9 apenas uma vez. Portanto, na soluo do jogo, cada nmero aparece apenas uma vez em qualquer um dos sentidos ou regies, da portanto nicos nmeros originaram o nome do jogo ou enigma. Segundo [8] as primeiras publicaes do Sudoku ocorreram nos Estados Unidos no nal dos anos 70. A editora deu ao jogo o nome de Number Place, que usado at hoje nos Estados Unidos. Em 1984, a Nikoli, maior empresa japonesa de quebra-cabeas, descobriu o Number Place e decidiu lev-lo ao Japo. No Japo, os jogos numricos so mais populares que palavras cruzadas e caa palavras, que no funcionam muito bem na lngua japonesa. Em 1986 o Sudoku tornouse um dos jogos mais vendidos do Japo. Apesar de toda a popularidade no Japo, o Sudoku no conseguiu atrair a mesma ateno no Ocidente at o nal de 2004, quando Wayne Gould, um juiz aposentado de Hong Kong, que tambm era f de quebra-cabeas e programador de computadores, viajou a Londres para convencer os editores do jornal The Times a publicar o Sudoku. Gould havia criado um programa de computador que gerava jogos de Sudoku com vrios nveis de diculdade e no estava cobrando nada por 9

ele. O The Times decidiu arriscar e no dia 12 de novembro de 2004 publicou seu primeiro Sudoku. No Brasil, o Sudoku publicado pelas Revistas Coquetel (Ediouro) desde o incio de 2005. [8] Muitas perguntas, envolvendo a matemtica e o Sudoku, podem ser formuladas. Um primeira pergunta que surge quando estamos estudando esse tipo de jogo, quantos jogos de Sudoku so possveis criar?. Atualmente, somente com o uso da lgica e de computadores possvel estimar o nmero de quadrados de Sudoku vlidos em 6.670.903.752.021.072.936.960. O resultado foi obtido por Bertram Felgenhauer, da Universidade Tcnica de Dresden, Alemanha, e por Frazer Jarvis, da Universidade de Shefeld, Inglaterra, e conrmado diversas vezes. [9] Porm, se contarmos apenas uma vez os quadrados que podem ser reduzidos a uma congurao equivalente, ou seja, se levarmos em conta rotao, reexo, enm movimentos que podemos fazer e analisar que no nal, segundo a teoria de grupos, o quadrado o mesmo, o nmero nal cai para 5.472.730.538. [8] Uma outra questo que nos vem cabea em relao a unicidade. Sabemos que dependendo da congurao inicial o problema pode no ter soluo, ento quais ou quantas pistas iniciais mnimas devem ser dadas para garantir a unicidade? Segundo [10] no h nenhuma resposta exata para esta pergunta. O que [10] nos traz so inmeros exemplos de Sudokus com 17 pistas iniciais que tem uma congurao nica, mas no se tem nenhuma informao sobre os de 16 pistas. Gordon, a pessoa que nos d as informaes por este site diz j ter coletado 48.826 conguraes distintas de Sudoku com 17 pistas iniciais, a maioria delas geradas por um programa de computador. Todas estas conguraes, segundo Gordon, possui soluo nica. A gura abaixo mostra a grade 9 9 do jogo Sudoku dividida nas regies 3 3 com algumas pistas iniciais. um exemplo tpico do jogo Sudoku.

10

9 1 3 8 1 8 9 4 9 7 2 3 7 6 4 9

6 8 9 1 2 5 8 4 2 9 7

3 4 6 8

6 9 5 2 8 6 3

7 1 9

Figura 1.1: Exemplo de um quadro do Sudoku A gura 1.2 exibe a soluo do jogo, que consiste em completar o quadro de forma que cada linha, coluna e regio contenha uma e somente uma vez cada algarismo de 1 a 9. 4 6 3 5 8 9 1 2 7 7 2 8 1 6 4 3 9 5 9 1 5 2 3 7 6 8 4 1 3 4 9 7 6 2 5 8 2 8 9 3 1 5 4 7 6 6 5 7 4 2 8 9 3 1 3 4 6 8 5 2 7 1 9 8 5 7 9 1 2 6 7 9 4 3 1 5 8 4 6 2 3

Figura 1.2: Resoluo do exemplo acima

1.1

Dicas de Preenchimento

Nesta seo apresentaremos algumas dicas para a resoluo manual do jogo. Toda essa seo foi baseada em [7]. Ao longo desta seo estaremos nos referindo ao nvel do Sudoku. Para tanto, vamos deixar claro o que queremos dizer quando nos referimos ao um Sudoku fcil, moderado, difcil e diablico. Segundo [7] um Sudoku fcil aquele que necessita apenas das tcnicas bsicas e um expert em Sudoku consegue complet-lo em aproximadamente 10
As guras desta seo foram retiradas de [7]

11

minutos. Um moderado aquele que necessita um pouco mais de tcnicas, mas ainda no precisa de anotaes e um expert em Sudoku completa-o em aproximadamente 15 minutos. Um Sudoku difcil aquele que as tcnicas que resolvem um fcil no so sucientes, e preciso fazer algumas anotaes, um expert resolve um Sudoku difcil de 20 a 30 minutos. J em um sodoku diablico preciso escrever todas as possibilidades e fazer uma anlise complexa, um expert demora de 30 minutos a um dia para resolver um Sudoku deste nvel. Tcnicas Bsicas A primeira tcnica chamada por [7] de crosshatching. Primeiramente devemos nos concentrar em uma determinada regio. Escolhida a regio, analisemos quais nmeros no aparecem nesta regio. Veja o exemplo ilustrado na Figura 1.3:

Figura 1.3: Regio escolhida para anlise Aqui vemos que faltam os nmeros 1,2,4,8 e 9. Agora faremos a anlise de cada nmero faltante. No nosso exemplo, considere o nmero 1. Vamos olhar para o Sudoku e ver em quais clulas o nmero 1 aparece e o que essa clula inuencia na colocao do 1 na regio escolhida.

12

Figura 1.4: Preenchendo a regio com o nmero 1 Note que h um nmero 1 na segunda linha, logo no podemos ter o 1 nas clulas da regio que esto nesta mesma linha, com isso exclumos duas possibilidades para o 1. Observe tambm que h um 1 na primeira coluna, o que impossibilita o 1 ocupar as clulas que esto nesta coluna, da mesma forma o 1 no pode ocupar a clula vazia da regio que se encontra na terceira coluna, pois nesta coluna h tambm um nmero 1. Ento a nica clula que est disponvel para o nmero 1 a segunda clula da primeira linha. Usamos esta anlise para todos os nmeros que ainda no esto na regio. Somente preenchemos uma clula quando temos certeza do nmero que deve ocupla. Observe, no nosso exemplo, que o nmero 2 no pode ocupar a clula vazia da primeira linha, pois j existe um 2 nesta linha. Tambm no pode ocupar a clula vazia da terceira linha, pois j existe um 2 na terceira coluna. Mas note que no temos informao nenhuma sobre as clulas que esto na segunda linha. Aparentemente o 2 pode ocupar qualquer uma dessas duas clulas. Quando nos deparamos com uma situao como esta devemos pular este nmero e analisar o prximo, aps algumas anlises provavelmente conseguiremos decidir qual de fato a clula que este nmero deve ocupar. Ao longo do preenchimento devemos estar sempre atentos a situaes como a ilustrada na gura 1.5 em que uma determinada linha, coluna ou regio h uma nica clula vazia. Neste caso, devemos preench-la to logo que a identiquemos pois o nmero que deve ocupar esta clula pode inuenciar o preenchimento das 13

clulas ligadas a ela.

Figura 1.5: nica clula vazia em uma determinada linha A segunda tcnica chamada por [7] de grouphatching. Esta tcnica uma maneira alternativa de usar a tcnica crosshatching, que acelera a resoluo. Esta tcnica trabalha com grupo de trs regies e baseia-se nas mesmas idias da tcnica crosshatching. Primeiramente devemos xar trs regies adjacentes e tentar colocar todos os nove nmeros nelas. Considere o Sudoku abaixo.

Figura 1.6: Preenchendo o 1 nas regies escolhidas Iniciemos a anlise com o nmero 1. Note que das trs regies duas j contm o nmero 1, assim vamos analisar a regio central como vimos na tcnica crosshatching. Para que esta tcnica de fato acelere a resoluo devemos iniciar a anlise por nmeros que apaream em duas das trs regies do grupo xado. Fazendo a anlise em grupos temos uma viso mais ampla do jogo e assim podemos perceber mais rapidamente qual o lugar de cada nmero. Quando apresentamos a idia da tcnica crosshatching, vimos que nem sempre temos certeza de onde um nmero pode ser colocado, para isso demos o exemplo 14

do nmero 2. Quando estamos resolvendo o Sudoku com a tcnica grouphatching, podemos aproveitar esta incerteza de onde colocar um nmero em uma determinada regio para preencher uma clula de outra regio do mesmo grupo. Observe a gura 1.7, nela no sabemos em que clula da primeira linha o nmero 4 ser posicionado, mas a informao de que ele estar na primeira linha, ns temos. Ou seja, no pode aparecer mais nenhum 4 nesta linha, desta forma na terceira regio do grupo no pode existir um nmero 4 na primeira linha, e como h um 4 na regio central na terceira linha conclumos que um nmero 4 deve ocupar a clula central da terceira regio do grupo.

Figura 1.7: 4 xado na terceira regio atravs da anlise da primeira Com essas tcnicas j conseguimos resolver qualquer Sudoku fcil. Tcnicas extras As tcnicas que apresentaremos a seguir so sucientes para resolver Sudokus moderados e difceis. Primeiro, vamos fazer em linhas e em colunas o que o crosshatching faz com regies. Depois vamos mudar a estratgia, iremos encontrar clulas para a qual no h um nico nmero possvel, ento vamos olhar para pares de nmeros e listas de candidatos. Estas tcnicas no substituem crosshatching. Tipicamente voc usa crosshatching para produzir alguns resultados e depois avana nestas novas tcnicas. Crosshatching por linha e por coluna. Analisamos primeiramente a linha ou coluna que tenha maior quantidade de nmeros dados. Vericamos quais nmeros faltam e vemos se algum deles pertence mesma regio e coluna ou linha da casa vazia. A idia usada para Crosshatching por regies a mesma usada aqui. 15

Candidatos e mudana de abordagem. Candidatos so os nmeros que teoricamente podem ocupar a clula analisada. fcil encontr-los, eles so os nmeros que no esto presentes na regio, na coluna e na linha desta clula. Assim, no exemplo da gura 1.8, observamos que os candidatos da clula da primeira coluna e segunda linha da regio central so 4, 5 e 7. Devemos anot-los naquela clula.

Figura 1.8: Candidatos da clula analisada Surpreendentemente, existem apenas duas regras lgicas que permitem colocar um nmero em uma clula do Sudoku. primeira vista, estas regras podem parecer as mesmas, mas elas no so. Quando na clula s tem um candidato, este que dever ocupar a clula. Por exemplo, na gura abaixo, a nica possibilidade para a ltima clula da regio o nmero 7, ento ele que deve ocupar esta clula. Quando o candidato aparece somente em uma clula ele que deve ocup-la. Por exemplo, o 6 aparece somente na clula central da regio da gura abaixo, logo ele s tem essa clula disponvel para ocupar.

16

Figura 1.9: Clula e candidatos satisfazendo as regras lgicas do Sudoku O poder do par Chamaremos de Pares duas clulas com os mesmos dois candidatos. So fceis de encontrar e fornecem informaes valiosas para continuarmos a resoluo do Sudoku. Na gura 1.10 o par no ajuda a resolver qualquer outra clula da mesma linha. Ele apenas ilustra o que seria um par. E nos diz que se o 1 ocupar a primeira clula, necessariamente o 3 ocupar a outra clula vazia e vice e versa.

Figura 1.10: Duas clulas com os mesmos candidatos J na gura 1.11, temos um par que nos ajuda na escolha dos candidatos da linha.

Figura 1.11: Candidatos eliminados Note que na sexta clula o 3 um candidato para ocup-la, mas temos o par 1-3 na primeira e quinta clula, ou seja, o 3 ocupar necessariamente uma dessas clulas, sendo assim podemos descartar a possibilidade de ele ocupar a sexta clula. Com raciocnio anlogo tambm descartamos a possibilidade do 1 ocupar a stima clula. Assim, temos clulas que contm apenas um candidato, nos dando a opo certa para estas clulas. 17

Listas de Candidatos Neste item entraremos em mais detalhes sobre listas de candidatos e como elimin-los, para conseguir chegar soluo. Veremos as formas de construo de listas de candidatos total, os sistemas de anotao e eliminao dos candidatos das clulas. Com esta tcnica podemos chegar a resolver um Sudoku diablico. Crosshatching uma boa maneira de fazer listas de candidatos total. Analisamos cada regio e escrevemos em cada clula os candidatos. Quando preenchemos alguma clula no podemos esquecer de riscar todos os candidatos desta clula e riscar este nmero das clulas das linhas, colunas e regio que este nmero se encontra. Eliminao de candidatos Apresentaremos algumas tcnicas que nos ajudam a eliminar candidatos das clulas. Faremos isto usando um raciocnio. Aps eliminarmos um nmero suciente deles cairemos em uma das duas regras lgicas do Sudoku, as quais foram apresentadas no item anterior. Pares, Trios e qudruplos. Pares - Quando as opes de 2 clulas so conjuntos ou subconjuntos de 2 elementos dados, podemos elimin-los das demais clulas. Na gura 1.12 temos o par 2-6, e eliminamos todos os 2 e 6 que se encontram em outra clula.

Figura 1.12: Candidatos eliminados a partir de um par Podemos fazer isso, pois o 2 e o 6 necessariamente ocuparam uma das duas clulas pintadas, como j discutimos anteriormente. Trios - Quando as opes de 3 clulas so conjuntos ou subconjuntos de 3 elementos dados, podemos elimin-los das demais clulas. Note que na gura 1.13 temos o trio 2-4-5 em duas clulas e um sobconjunto dele, 4-5, em outra clula. Desta forma podemos eliminar os nmeros 2-4-5 da clula central e 4 da clula que tem por candidatos 1, 4 e 7. 18

Figura 1.13: Candidatos eliminados a partir de um trio Qudruplos - Quando as opes de 4 clulas so conjuntos ou subconjuntos de 4 elementos dados, podemos elimin-los das demais clulas. A gura 1.14 mostra um exemplo de um qudruplo e seus subconjuntos.

Figura 1.14: Qudruplo 1, 3, 4 e 5 Coluna e linha Regio Quando certo candidato s aparece nas clulas de uma coluna de uma determinada regio, podemos exclu-lo de todas as clulas desta regio. Na ltima coluna da gura 1.15, o nmero 4 s aparece como candidato na ltima regio, sendo assim podemos excluir todos os outros 4s das clulas desta regio. 19

Figura 1.15: Eliminao de candidatos atravs da anlise de uma coluna Note que de fato podemos fazer essa excluso, pois sabemos que o 4 deve aparecer na coluna observada e suas opes so apenas as clulas que esto na regio e nesta o 4 no pode aparecer mais de uma vez. Quando analisamos uma coluna (linha) e identicamos que um candidato aparece em uma nica regio, ento podemos elimin-lo das demais clulas daquela coluna (linha). Na gura 1.16, na primeira regio o nmero 2 s aparece como candidato na terceira coluna, assim eliminamos todos os outros 2 que aparecem nesta coluna.

Figura 1.16: Eliminao de candidatos atravs da anlise de uma regio 20

Aqui tambm fcil ver que podemos fazer essa excluso, pois o 2 deve aparecer na regio e as clulas possveis esto apenas em uma coluna, onde o 2 no pode aparecer mais de uma vez. Pares interligados Se tivermos pares de candidatos em clulas que podemos relacionar, podemos excluir os candidatos das clulas da mesma regio e da linha das clulas relacionadas. Observe na gura 1.17 que se na primeira clula A tiver o nmero 6, obrigatoriamente a clula B da mesma coluna ter que ter o nmero 8, o que implicar que a clula A da mesma linha ter que ter o nmero 6, e assim a clula B da mesma coluna ter que ter o nmero 8. Veja que podemos interligar essas clulas e de fato com esta relao as clulas As so iguais e as Bs tambm. Com isto, observe que os 6 e 8 que aparecem como candidatos na clulas da primeira linha podem ser eliminados, pois se um 8 parecer na mesma linha, no caso na clula A, ento o 6 aparecer na clula B da mesma regio destas clulas. De mesma forma com os candidatos 6 e 8 que aparecem na mesma regio e linha de A e B, respectivamente.

Figura 1.17: Eliminao de canditados a partir da relao de A e B Retngulos Esta tcnica baseada no fato de que os Sudokus que esto disponveis nas revistas e internet tem soluo nica. Ele permite fazer eliminao de candidatos para evitar que uma congurao tenha mais de uma possibilidade. Considere os pares dispostos como na gura 1.18. 21

Figura 1.18: Eliminao de candidatos para se ter uma nica congurao Vamos analisar o porqu que podemos excluir os pares de uma clula que alm deles possuem mais candidatos. Suponha por absurdo que a clula que o nmero 7 deve ocupar seja a que tem como candidatos 2,3 e 7. Sendo assim o 2 deve ocupar a clula superior desta mesma coluna, o que implica que a clula da mesma linha desta clula deve conter um nmero 7 e assim a clula inferior desta coluna deve conter o 2 e tambm a clula que tem por candidatos o 2 e o 3 deve conter o 3. Esta uma congurao possvel. Mas e se o 2 ocupasse a clula que tem por candidatos 2,3 e 7? Isso implicaria que o 3 iria ocupar a clula que tem por candidatos 2 e 3, que o 7 iria ocupar a clula superior desta mesma coluna, que o 2 iria ocupar a clula desta mesma linha e por m que o 7 iria ocupar a clula inferior desta coluna. Ou seja, conseguimos mais uma congurao possvel, o que pela unicidade do Sudoku no pode ocorrer. Assim quem deve ocupar a casa que alm dos pares tem outro candidato este outro candidato, no nosso exemplo o 3. O que foi apresentado nesta seo so tcnicas que so sucientes para a resoluo de Sudokus dos nveis comentados. H mais algumas tcnicas que so teis para resolver alguns Sudokus de nvel diablico, estas no abordaremos pois como citado em [7] so usadas na minoria de Sudokus deste nvel. Mas elas se encontram em [7].

22

1.2

Modelagem

Na seo anterior discutimos algumas dicas que podem melhorar nosso desempenho no jogo Sudoku, ou seja, para diminuir o tempo gasto para preencher a grade. Nesta seo modelamos o jogo Sudoku matematicamente de modo que um programa de computador resolva-o. Desenvolvemos um modelo para a resoluo do Jogo Sudoku utilizando como restries apenas suas regras. A modelagem desenvolvida de um Problema de Programao Linear, com variveis de deciso binrias, ou seja, que assumem apenas valores 0 ou 1. O problema pode ser resolvido, por exemplo, com uso do software Lingo. A grade do jogo Sudoku pode ser vista como uma matriz de 9 linhas e 9 colunas, sendo que cada elemento da matriz deve assumir uma valor do conjunto C = {1, 2, . . . , 9}. Variveis de deciso A varivel de deciso binria consiste em decidir se a posio (i, j) da matriz deve ser preenchida ou no com um dado valor k C, ou seja, 1, se a posio (i, j) possui o nmero k, i, j, k C x(i, j, k) = 0, se a posio (i, j) no possui o nmero k, i, j, k C

Restries As regras do jogo estabelecem as restries de como cada elemento (i, j) deve ser preenchido. Note inicialmente que cada posio (i, j) da tabela deve ser preenchida com um e apenas um dos valores de k C, o que pode ser expresso matematicamente pela restrio:
9

x(i, j, k) = 1, i C, j C
k=1

A condio de que cada elemento k C deve aparecer uma e somente uma vez em cada coluna garantida pela restrio:
9

x(i, j, k) = 1, j C, k C
i=1

Por outro lado, cada elemento k C deve aparecer tambm uma e somente uma vez em cada linha, ou seja 23

x(i, j, k) = 1, i C, k C
j=1

Alm disso, a grade 9 9 pode ser decomposta em 9 regies de 3 linhas e 3 colunas. Cada elemento k C deve aparecer uma e somente uma vez em cada uma destas 9 regies. Esta condio garantida atravs da seguinte restrio
3 3

x(i + 3m, j + 3n, k) = 1, m = 0, 1, 2, n = 0, 1, 2 e k C


i=1 j=1

Modelo proposto Sintetizamos abaixo o problema de programao linear binrio para resoluo do jogo Sudoku:
9

x(i, j, k) = 1, i C, j C
k=1 9

x(i, j, k) = 1, j C, k C
i=1 9

x(i, j, k) = 1, i C, k C
j=1 3 3

x(i + 3m, j + 3n, k) = 1, m = 0, 1, 2, n = 0, 1, 2 e k C


i=1 j=1

Note que o modelo proposto no tem funo objetivo, tem 93 = 729 variveis e h quatro grupos de restries. O primeiro grupo diz respeito a que cada uma das 92 posies da tabela seja preenchida de uma nica maneira. O segundo grupo refere-se a que cada uma das 9 colunas tenha um e somente um dos 9 elementos de C, o que fornece 92 restries. O terceiro e quarto grupos so anlogos ao anterior mas em relao s 9 linhas e s 9 regies respectivamente. Assim os quatro grupos totalizam 4 92 = 324 restries. No entanto, para que o jogo faa sentido e tenha nica soluo, necessrio fornecer algumas pistas, ou seja, xar alguns valores iniciais em algumas posies. Cada valor inicial dado, diminui em 9 o nmero de variveis. Por exemplo, se a posio (1, 3) est preenchida pelo nmero 5, sabemos que x(1, 3, 5) = 1 e que x(1, 3, k) = 0 para todo k C, k 5. 24

Assim se forem fornecidas 17 pistas, caremos com (93 9 17) = 572 variveis. O problema proposto foi resolvido utilizando o programa Lingo 9.0 em um computador Intel Pentium 4, 3.2 GHz, 1 Gb de memria RAM e Windows XP. Embora um problema de programao binria tenha normalmente um alto custo computacional, este modelo se comportou muito bem. O problema sem pistas tem uma innidade de solues. O programa determina uma dessas solues em 4 segundos. O exemplo apresentado na gura 1.2 resolvido em micro segundos.

25

Captulo 2 Quadrado Mgico


Um Quadrado Mgico uma tabela de nmeros dispostos na forma de um quadrado, de tal modo que a soma dos elementos de uma linha, coluna e diagonais seja uma constante. Estes nmeros devem ser inteiros e consecutivos, comeados por 1.[3] Acredita-se, que os Quadrados Mgicos tenham sido inventados na ndia, chegando Arbia no sculo IX, e espalharam-se pelo Japo e Oriente Mdio, onde eram associados astrologia, para clculos dos horscopos. Foi na transio entre Idade Mdia e Renascimento, que os quadrados mgicos tornaram objetos de estudo, chegando Europa no sculo XV por Manuel Moschopoulos. [3] O menor Quadrado Mgico possvel o de 9 elementos, ou seja, com 3 linhas e 3 colunas, ou como estaremos nos referindo, de ordem 3. A gura abaixo mostra um Quadrado Mgico de ordem 3 preenchido. Note que no conseguimos formar um Quadrado Mgico 2 2, pois no conseguimos dispor seus elementos, os quais seriam 1, 2, 3, 4, de tal forma que a soma de dois desses nmeros fosse igual soma dos outros dois, que neste caso o que deveria acontecer. Exemplo: 8 1 3 5 4 9 6 7 2

Figura 2.1: Um Quadrado Mgico 3 3

Denimos abaixo Quadrado Mgico de ordem n de acordo com [1]. Denio 2.1. Um Quadrado Mgico de ordem n uma matriz (ai j )nn cujos elementos 26

pertencem ao subconjunto dos naturais {1, 2, . . . , n2 }, so dois a dois distintos e a soma dos elementos de qualquer linha, qualquer coluna e de qualquer uma das duas diagonais igual a uma constante S n . A constante S n conhecida como constante mgica e pode ser facilmente calculada. Para isso basta observar que em um quadrado n n temos os nmeros de 1 a n2 . Ento a soma de todos esses nmeros dada pela expresso: S n2 = (1 + n2 ) n2 2

Isso vem do fato da sequncia 1 a n2 ser uma progresso aritmtica composta por n2 termos, cujo primeiro termo 1 e o n-simo termo n2 . Sn Com isso vemos que a soma de cada coluna ser n2 , pois temos n colunas. E como soma das linhas, das colunas e das diagonais devem ser iguais, temos que: Sn = (1 + n2 ) n 2 (2.1)

2.1

Modelagem

Apresentamos nesta seo um modelo matemtico que permite que um Quadrado Mgico de ordem n seja resolvido computacionalmente. O modelo proposto um modelo de programao linear binrio que pode ser resolvido pelo software Lingo, por exemplo. Considere C = {1, . . . , n} e D = {1, . . . , n2 }. Variveis de deciso Consideremos variveis de deciso binrias que assumem valor 1 caso a posio (i, j) seja preenchida com o valor k D ou 0 no caso contrrio, ou seja, para todo i, j C e para todo k D 1, se a posio (i, j) possui o nmero k x(i, j, k) = 0, caso contrrio Restries As restries do modelo dizem respeito s regras de preenchimento de um Quadrado Mgico. Primeiro, cada um dos n2 elementos de D deve aparecer uma e somente uma vez no Quadrado Mgico, o que pode ser representado pelas n2 restries: 27

x(i, j, k) = 1, k D
i=1 j=1

Cada uma das n2 posies do Quadrado Mgico deve ser preenchida com um e somente um elemento de D, o que garantido pelas n2 restries:
n2

x(i, j, k) = 1, i, j C
k=1

As demais restries esto relacionadas com a denio do Quadrado Mgico, que a soma de cada linha, coluna, diagonal principal e secundria seja S n . Note que pela denio da varivel de deciso binria, temos que kx(i, j, k) = k quando a clula (i, j) preenchida com o valor k, caso contrrio kx(i, j, k) = 0. As n linhas do Quadrado Mgico devem ter soma igual a S n , o que garantido pelas n restries:
n n2

k x(i, j, k) = S n , i C
j=1 k=1

De mesma maneira temos que a soma das n colunas do Quadrado Mgico deve ser igual ao valor S n , isto garantido pelas n restries:
n n2

k x(i, j, k) = S n , j C
i=1 k=1

A soma da diagonal principal deve resultar em S n , o que a seguinte restrio nos garante:
n2 n

k x(i, i, k) = S n
k=1 i=1

Tambm devemos ter que a soma da diagonal secundria deve ser igual a S n , o que expressa pela seguinte restrio:
n2 n

k x(i, n + 1 i, k) = S n
k=1 i=1

Nmero de Variveis e de restries 28

Note que recamos em um problema de programao linear binria sem funo objetivo com n4 variveis e 2n2 + 2n + 2 restries. Para solucionar este problema tambm utilizamos o programa Lingo 9.0. Testamos o modelo para os Quadrados Mgicos de ordem 3, 4 e 5. Para estes trs testes o modelo foi exato, dispondo corretamente todos os elementos. Porm, observamos que o programa demorou mais de 3 horas para resolver um Quadrado Mgico de ordem 5. Ao comparar com o modelo do captulo anterior, que tambm utilizava varivel binria, observa-se que a razo desta demora, para encontrar a soluo, no a quantidade de variveis, uma vez que ambos modelos possuem cerca de 600 variveis. Acreditamos que o problema do jogo Sudoku tem uma congurao que se adapta melhor varivel binria. Nas prximas sees estaremos apresentando mtodos de resoluo de um Quadrado Mgico de qualquer ordem. Iniciaremos apresentando um mtodo de resoluo para o Quadrado Mgico de ordem 3. Este mtodo bem particular para este caso, pois partimos de um Quadrado Mgico de ordem 3 genrico e apenas com a denio encontramos as solues. Depois de analisarmos este caso, vamos apresentar mtodo de resoluo para Quadrado Mgico de ordem mpar, par mltiplo de 4 e par no mltiplo de 4. Esses mtodos nos motivaram a criar um algoritmo e program-los em Visual Basic para ento termos um programa que resolve com sucesso um Quadrado Mgico de qualquer ordem.

2.2
3.

Quadrado Mgico 3 3

Nesta seo apresentaremos um mtodo de resoluo do Quadrado Mgico de ordem Seguindo a Denio 2.1 e calculando a constante S n atravs da frmula (2.1), temos que um Quadrado Mgico de ordem 3 uma matriz 3 3 onde os elementos pertencem ao conjunto {1, 2, . . . , 9} e a soma de qualquer linha, qualquer coluna e qualquer uma das duas diagonais igual a 15. Mtodo de resoluo Primeiramente observamos que entre os algarismos de 1 a 9 temos 5 algarismos mpares e 4 algarismos pares. As possveis somas de trs parcelas so:

29

PAR+PAR+PAR=PAR PAR+PAR+MPAR=MPAR PAR+MPAR+MPAR=PAR MPAR+MPAR+MPAR=MPAR Para o nosso caso o resultado da soma 15, que mpar, ento os nicos itens possveis so o segundo e o ltimo. O nmero que deve ocupar o centro do quadrado merece ateno especial, pois ir ser parcela de quatro das oito somas. Considere um Quadrado Mgico da seguinte forma: a11 a21 a31 a12 a22 a32 a13 a23 a33

Para os lemas a seguir considere I um nmero mpar e P um nmero par. Lema 2.2. O elemento a22 mpar. Demonstrao. Suponha, por contradio, que a22 seja par. Desta forma teremos as seguintes possibilidades para a congurao do Quadrado Mgico: P P I I P P P P I I I I P P P P I P P I

Lembrando que j sabemos as combinaes possveis para a soma resultar em mpar, completando a primeira e a ltima coluna da primeira possibilidade chegamos em: P I P I

P P P

E assim a linha central resulta em par. Completando a primeira e a ltima linha da segunda possibilidade temos:

30

P P

P P P

I I

Agora a coluna central resulta em par. Completando a primeira e a ltima linha da terceira possibilidade temos: I I P P P P P

Aqui tambm a coluna central resulta em par. Completando a primeira e a ltima coluna da ltima possibilidade temos: I P I P

P P P

Donde vemos que a linha central resulta em par. Portanto, temos para todas as possibilidades que o elemento a22 par uma contradio, e assim conclumos que o elemento a22 mpar. Lema 2.3. Os elementos a11 , a13 , a31 , a33 so pares. Demonstrao. Sabemos pelo lema anterior que o elemento central um nmero mpar. Para mostrar o lema iremos analisar todas as possibilidades de elementos pares e mpares que podem ocupar os cantos (que so justamente os elementos a11 , a13 , a31 , a33 ) do quadrado. 1a Possibilidade I I I I I

Com isso o que nos resta completar as casas vagas com nmeros pares, mas note que feito isso, a soma da primeira linha, por exemplo, resulta em par. Sendo assim, descartamos essa possibilidade. 2a Possibilidade 31

I I P

I I

Essa possibilidade tambm podemos descartar, pois vemos que a soma da diagonal secundria est resultando em par. 3a Possibilidade P I I P I

Aqui, para termos a soma resultando em um nmero mpar teramos que preencher todas as casas vagas com nmeros pares, o que no possvel, pois temos apenas 4 pares e no 6. 4a Possibilidade P I I P P

Aqui tambm vemos que a soma da diagonal secundria resulta em par. 5a Possibilidade P I P P P

Esta sim uma possibilidade vlida, pois basta completarmos as casas vazias com nmeros mpares. Portanto, os elementos a11 , a13 , a31 , a33 so nmeros pares. Lema 2.4. O elemento a22 igual a 5.

32

Demonstrao. O elemento a22 parcela comum da soma das duas diagonais. Vamos listar as somas que resultam em 15 e que tenham como parcelas dois nmeros pares e um mpar. 1 + 8 + 6, 2 + 8 + 5, 2 + 6 + 7, 2 + 9 + 4, 3 + 4 + 8, 4 + 5 + 6. Note que o nico mpar que aparece em mais de uma soma o nmero cinco. Desta maneira a22 = 5. Seja um Quadrado Mgico 3 3 da seguinte forma: a11 a21 a31 a12 5 a32 a13 a23 a33

Com a11 , a13 , a31 , a33 {2, 4, 6, 8} e a12 , a21 , a23 , a32 {1, 3, 7, 9}. Sabemos que a soma de cada linha, cada coluna e cada diagonal deve ser igual a 15, com isso temos o seguinte sistema linear: a11 + a12 + a13 = 15 a21 + a23 = 10 a 31 + a32 + a33 = 15 a11 + a21 + a31 = 15 a12 + a32 = 10 a 13 + a23 + a33 = 15 a11 + a33 = 10 a31 + a13 = 10 Reecrevendo o sistema, e deixando como variveis livres a11 e a12 , temos: a13 a21 a23 a31 a32 a33 = 15 a11 = 20 2a11 = 10 + 2a11 = 5 + a11 = 10 a12 = 10 a11 + + a12 a12 a12 a12

Sendo que a11 {2, 4, 6, 8} e a12 {1, 3, 7, 9}. primeira vista seramos tentados a dizer que esse sistema tem innitas solues, isso ocorreria se a11 e a12 pudessem assumir qualquer valor real. Mas a11 {2, 4, 6, 8} e a12 {1, 3, 7, 9}, e ainda, o valor de qualquer um dos ai j deve pertencer ao conjunto {1, 2, 3, 4, 5, 6, 7, 8, 9} e devem ser dois a dois distintos. Por exemplo, se a11 = 2 e a12 = 1, 33

que pelos lemas anteriores so valores que eles podem assumir, vemos que pelo sistema acima a13 = 15 2 1 = 12 {1, 2, 3, 4, 5, 6, 7, 8, 9}, e assim eliminamos esta possibilidade. Um outro caso que deve ser eliminado , por exemplo, se a11 = 6 e a12 = 3 da temos que a13 = 15 6 3 = 6, ou seja, a13 = a11 , o que no pode ocorrer. Eliminando esse casos temos que (a11 , a12 ) {(2, 7), (2, 9), (4, 3), (4, 9), (6, 7), (6, 1), (8, 1), (8, 3)} Resolvendo o sistema para cada um desses pares possveis chegamos nas seguintes conguraes para o Quadrado Mgico: 2 7 6 9 5 1 4 3 8 2 9 7 5 6 1 4 3 8 4 9 2 3 8 5 1 7 6 4 9 2 3 5 7 8 1 6

6 7 2 1 5 9 8 3 4

6 1 7 5 2 9

8 3 4

8 3 4

1 6 5 7 9 2

8 3 4 1 5 9 6 7 2

Figura 2.2: As oito possibilidades para um Quadrado Mgico de ordem 3

Agora mostraremos que os oito quadrados encontrados acima pertencem a mesma classe, ou seja, o Quadrado Mgico 3 3 nico a menos de simetrias, faremos isso usando argumentos de Grupos. O grupo das simetrias espaciais de um quadrado [6] Sejam A, B, C, D os vrtices de um quadrado. Considere O o ponto de interseo das duas diagonais do quadrado e denote r, s, m, n as retas determinadas pelas diagonais e pelas mediatrizes do quadrado, como mostra na gura 2.3.

34

Figura 2.3: Quadrado com vrtices A, B, C e D. As transformaes espaciais que preservam o quadrado so: id, R , R , R 3 : as rotaes planas centradas em 0, no sentido anti-horrio, de n2 2 gulos zero, , , 3 , respectivamente. Abaixo ilustramos cada uma dessas transfor2 2 maes aplicadas no quadrado de vrtices A, B, C e D.

Rr , R s , Rm , Rn : as rotaes espaciais de ngulo com eixos r, s, m, n, respectivamente.

35

fcil ver que o conjunto de transformaes D4 = {id, R , R , R 3 , Rr , R s , Rm , Rn } 2 2 com a operao de composio de funes um grupo. Agora iremos analisar os quadrados 3 3 obtidos, levando em considerao as informaes acima e tomando as retas m, n, s e r como a coluna central, a linha central, a diagonal principal e a diagonal secundria respectivamente. Seja o seguinte quadrado o nosso elemento inicial: 2 9 4 7 5 3 6 1 8

Aplicando as transformaes id, R , R , R 3 , temos que 2 2

36

2 9 4
id

7 5 3
O

6 1 8

6 7 2

1 5 9

8 3 o 4
R
2

2 9 4

7 5 3

2

6 1 8
R 3 R

8
/

3 5 7

4 9 2

1 6

4 3 8

9 5 1

2 7 6

Agora, aplicando as transformaes Rr , R s , Rm , Rn obtemos

8 3 4
Rr

1 5 9
O

6 7 2

6 1 8

7 2 5 9 o 3 4
Rm

2 9 4

7 5 3

Rs

6 1 8
Rn

4
/

3 5 7

8 1 6

9 2

2 7 6

9 5 1

4 3 8

Note que, a partir de um dos quadrados obtidos conseguimos gerar, com as transformaes do quadrado, todos os outros quadrados. Com isso, podemos concluir que, a menos de simetrias, existe um nico Quadrado Mgico 3 3.

37

2.3

Quadrado Mgico de qualquer ordem

Esta seo baseada em [1]. A construo do Quadrado Mgico feita em trs classes distintas. Existem tcnicas especcas para Quadrados Mgicos de ordem mpar, outras para os de ordem par e no mltipla de 4 e outras para os de ordem mltipla de 4. Quadrados Mgicos de ordem mpar Inicialmente, o inteiro 1 deve ser posicionado no meio da primeira linha. Uma vez denida a posio de um inteiro n, a posio seguinte dever ser preenchida com o inteiro n + 1, levando em considerao os seguintes critrios: A posio a ser preenchida depois do ai j a posio do elemento ai1, j+1 , se i > 1 e j < n. A posio que segue ain , com i > 1 ai1,1 . Logo, se a posio atual preenchida com n estiver na ltima coluna, a prxima posio a ser preenchida com n + 1 ser da linha acima na primeira coluna. A posio que segue a1 j , com j < n an, j+1 . Portanto, se a posio atual preenchida com n estiver na primeira linha, a prxima posio a ser preenchida com n + 1 ser na coluna anterior na ltima linha. Se a posio que segue ai j segundos os critrios anteriores j tiver sido usada, ser preenchida a posio do elemento ai+1, j . Portanto, se a posio seguinte j estiver preenchida, ser usada como prxima posio a que estiver imediatamente abaixo da atual. Ou mais compactamente, iniciamos com a1, n+1 = 1 e dado ai, j = n, preenchemos com n+1 2 a posio an, j+1 se i = 1 e j < n ai1,1 se i > 1 e j = n ai1, j+1 se i > 1 e j < n ai+1, j se a posio estiver ocupada

38

O processo encerra quando preenchemos a ltima clula vazia com n2 . As guras abaixo mostram um Quadrado Mgico de ordem 5 e um Quadrado Mgico de ordem 9 completos. A gura do Quadrado Mgico de ordem 5 nos d uma idia de como essa tcnica funciona e que depois de nos familiarizarmos com ela podemos agilizar o preenchimento do quadrado fazendo alguns movimentos, que so equivalentes a seguir os passos da tcnica.

Quadrados Mgicos de ordem n mltipla de 4 Neste mtodo basta preencher a primeira linha com inteiros de 1 a n, a segunda linha de n + 1 a 2n e assim por diante, at preencher a ltima linha com os inteiros de n2 n + 1 2 a n2 . Depois, subdividir o quadrado n n em n quadrados 4 4 e, para cada um 4 desses quadrados menores, trocar cada elemento ai j que aparea em qualquer uma de suas diagonais pelo elemento n2 + 1 ai j . A gura abaixo ilustra os Quadrados Mgicos de ordem 4 e 8, que exemplicam a tcnica de preenchimento do Quadrado Mgico de ordem n mltipla de 4.

39

Tome um quadrado 4 4 e preencha-o com os nmeros de 1 a 16, como descrito acima e ilustrado na gura abaixo: 1 5 9 13 2 6 14 3 7 15 4 8 12 16

10 11

Identicamos os elementos das diagonais, que esto em negrito e permutamos os elementos das diagonais em posies opostas em relao ao centro, o que equivale a substituir o elemento ai j das diagonais pelo elemento n2 + 1 ai j . Assim o elemento 1 substitudo pelo 16 e reciprocamente. Analogamente os elementos 4,6 e 7 so permutados com os elementos 13,11 e 10 respectivamente. Fazendo as trocas obtemos o Quadrado Mgico 4 4 ilustrado na gura abaixo. fcil vericar que ele satisfaz a denio do Quadrado Mgico. 16 5 9 4 2 7 14 3 6 15 13 8 12 1

1 1 10

Agora aplicaremos o mtodo para obter um Quadrado Mgico 8 8. Preenchemos o quadrado da maneira proposta pelo mtodo dispondo os elementos de 1 a 64 por linha, como ilustrado na gura abaixo. 1 9 17 25 33 41 49 57 2 3 4 5 6 7 8 16 24 32 40 48 56 64

10 11 12 18 19 20 26 27 28 34 35 36 42 43 44 50 51 52 58 59 60
2

13 14 15 21 22 23 29 30 31 37 38 39 45 46 47 53 54 55 61 62 63

Subdividimos o quadrado 8 8 em 8 quadrados 4 4 e identicamos os elementos das 4 diagonais como ilustrado na gura abaixo 40

1 9 17 25 33 41 49 57

4 12 20 28 36 44 52 60

5 13 21 29 37 45 53 61

8 16 24 32 40 48 56 64

10 11 18 19 26 34 27 35

14 15 22 23 30 38 31 39

42 43 50 51 58 59

46 47 54 55 62 63

Permutamos os elementos das diagonais principais e secundrias em posies opostas do quadrado 8 8. Alm disso, permutamos os elementos, que no sofreram qualquer modicao, das diagonais dos quadrados 4 4. Isto equivale a substituir os elementos ai j das diagonais dos quadrados pelo elemento n2 + 1 ai j . Assim, por exemplo, temos as seguintes trocas: 1 82 + 1 1 = 64 4 82 + 1 4 = 61 5 82 + 1 5 = 60 8 82 + 1 8 = 57 10 82 + 1 10 = 55 11 82 + 1 11 = 54 . . . 25 82 + 1 25 = 40 29 82 + 1 29 = 36 . . . Fazendo as respectivas permutas, obtemos o Quadrado Mgico 8 8 desejado, conforme ilustrado na gura abaixo.

41

64 9 17 40 32 41 49 8

61 12 20 37 29 44 52 5

60 13 21 36 28 45 53 4

57 16 24 33 25 48 56 1

55 54 47 46 26 34 27 35

51 50 43 42 30 38 31 39

23 22 15 14 58 59

19 18 11 10 62 63

Quadrados Mgicos de ordem n par no mltipla de 4 Dado um quadrado n n onde n par no mltiplo de 4, podemos escrever n = 2(2m + 1), com m N. Divide-se o quadrado n n em (2m + 1)2 quadrados 2 2. No centro de cada quadrado coloque uma letra L, U ou X de maneira que as m + 1 primeiras leiras de quadrados 2 2 sejam as que tem L, a prxima leira tenha a letra U e as m 1 leiras tenham a letra X. Depois de feito isso, troque o U que esta no quadrado 2 2 central da leira pelo L logo acima dele. Se n = 6, por exemplo, temos a seguinte congurao ilustrada na gura abaixo.

Agora, considere o Quadrado Mgico auxiliar de ordem mpar (2m + 1). No exemplo um quadrado de ordem 3, preenchido pela tcnica de Quadrados Mgicos de ordem mpar, como mostra a gura abaixo. 8 1 3 5 4 9 6 7 2

Preenchemos agora cada um dos quadrados 2 2, que esto compondo o quadrado original, distribuindo os inteiros de 1 a n2 de 4 em 4, levando em considerao a ordem sugerida pelo quadrado auxiliar da gura acima e pelo formato de cada letra como mostra a gura abaixo. 42

O primeiro quadrado 2 2 a ser preenchido o quadrado central que esta na primeira leira:

O prximo o quadrado que est no canto inferior direito:

Assim por diante at que temos o quadrado desejado:

Note que a soma de cada linha, coluna e diagonal 111 que satisfaz (2.1). Programao dos Mtodos Apresentaremos agora o algoritmo computacional que desenvolvemos com base nas tcnicas vistas acima. Fizemos isto tanto para ver sua validade, quanto para termos um programa que resolva um Quadrado Mgico qualquer. Este algoritmo pode ser implementado, por exemplo, em Visual Basic, como zemos. O executvel est em anexo e disponvel na pgina http://people.ufpr.br/ewkaras/ic/ic.htm. 43

Algoritmo 2.5. Quadrado Mgico de ordem n Dado: n ordem do Quadrado Mgico a(i, j) = 0 i, j = 1, , n inicializa o Quadrado Mgico com zeros Se n impar i=1 j = n+1 2 k=1 Repita enquanto k n2 a(i, j) = k se i = 1 se j < n in = n, jn = j + 1 m seno se j = n e i > 1 in = i 1, jn = 1 seno in = i 1, jn = j + 1 m m se a(i, j) = 0 i = in, j = jn seno i=i+1 m k =k+1 se mod(n, 4) = 0 (multiplo de 4) k=1 Repita enquanto i n Repita enquanto j n a(i, j) = k k =k+1 m m

44

k =k+1 Repita enquanto i n Repita enquanto j n a(i, j) = k se mod(|i j| , 4) = 0 ou mod(i + j, 4) = 0 a(i, j) = n2 + 1 a(i, j) m k =k+1 m m seno i=1 n m = 2 , maux = n2 4 j = m+1 2 Repita enquanto k m2 se i < maux + 1 ou (i = maux + 1 e j TIPO L a(2i 1, 2 j) = 4(k 1) + 1 a(2i, 2 j 1) = 4(k 1) + 2 a(2i, 2 j) = 4(k 1) + 3 a(2i 1, 2 j 1) = 4(k 1) + 4 seno se i > maux + 2 TIPO X a(2i 1, 2 j 1) = 4(k 1) + 1 a(2i, 2 j) = 4(k 1) + 2 a(2i, 2 j 1) = 4(k 1) + 3 a(2i 1, 2 j) = 4(k 1) + 4 seno TIPO U a(2i 1, 2 j 1) = 4(k 1) + 1 a(2i, 2 j 1) = 4(k 1) + 2 a(2i, 2 j) = 4(k 1) + 3 a(2i 1, 2 j) = 4(k 1) + 4 m m

m+1 ) 2

ou (i = maux + 2 e j =

m+1 ) 2

45

se i = 1 se j < m in = m, jn = j + 1 seno in = m, jn = 1 m seno se j = m e i > 1 in = i 1, jn = 1 seno in = i 1, jn = j + 1 m m se a(2in 1, 2 jn) = 0 i = in, j = jn seno i=i+1 m m m

46

Concluso
No presente trabalho estudamos dois jogos populares, Sudoku e Quadrado Mgico. Discutimos inicialmente como podemos ter sucesso na resoluo do jogo Sudoku em seus diversos nveis de diculdade. Depois apresentamos a modelagem matemtica do jogo, com o objetivo inicial de exercitar a tcnica de modelagem, alm de ser uma forma de vericar a soluo do jogo ou mesmo uma maneira alternativa de saber qual esta resoluo. Resolvemos o problema proposto no programa Lingo 9.0. Quando resolvemos o problema sem pistas, ou seja, apenas com as regras do jogo, o programa nos apresentou uma das solues, pois nesta congurao o problema tem uma innidade de solues. A resoluo foi apresentada em 4 segundos. Na resoluo de um exemplo clssico do Sudoku cujo modelo tem 360 variveis o programa no demorou nem um segundo para nos dar a soluo. Como o jogo Sudoku, o jogo Quadrado Mgico tambm foi modelado como um problema de programao linear binria. No entanto, a modelagem neste caso no se adaptou bem ao jogo Quadrado Mgico, no sentido de que o software Lingo gasta 3 horas para resolver um Quadrado Mgico de ordem 5. Fizemos outros estudos para buscar uma maneira alternativa de conseguir programar esse problema. Partimos para o estudo dos mtodos de construo do Quadrado Mgico, o que nos ajudou a entender o processo pelo qual o Quadrado Mgico criado. Com esse mesmo processo implementamos um algoritmo e com ele zemos um programa executvel em Visual Basic que resolve um Quadrado Mgico de ordem at 30. O algoritmo resolve em qualquer ordem, mas para se conseguir uma boa visualizao deixamos o programa at a ordem 30. Fazendo o estudo desses jogos pudemos perceber como a congurao de um problema inuencia em seu desempenho computacional. E existem particularidades de cada problema que devem ser levados em conta para se conseguir um modelo ou um programa que resolva-o com sucesso.

47

Apndice A Sudoku no Lingo


Aqui descreveremos o exemplo 1.1 do Sudoku no programa Lingo. Para resolver qualquer outro Sudoku basta trocar as condies iniciais no programa abaixo. model: data: n=9; enddata

sets: cont9/1..9/:; cont3/1..3/:; matriz(cont9,cont9,cont9):x; endsets @for(cont9(lin): @for(cont9(num): @sum(cont9(col): x(lin,col,num))=1)); @for(cont9(col): @for(cont9(num): @sum(cont9(lin): x(lin,col,num))=1)); @for(cont9(lin): @for(cont9(col): @sum(cont9(num): x(lin,col,num))=1));

48

@for(cont3(blocolin): @for(cont3(blococol): @for(cont9(num): @sum(cont3(lin): @sum(cont3(col): x(lin+(blococol-1)*3,col+(blocolin1)*3,num)))=1))); @for(cont9(lin):@for(cont9(col):@for(cont9(num): @BIN (x(lin,col,num))))); !Uma condio inicial; x(1,3,9)=1; x(1,6,6)=1; x(1,7,3)=1; x(2,3,1)=1; x(2,5,8)=1; x(2,7,4)=1; x(3,1,3)=1; x(3,2,8)=1; x(3,4,4)=1; x(3,5,9)=1; x(3,7,6)=1; x(4,2,1)=1; x(4,3,2)=1; x(4,4,9)=1; x(4,6,4)=1; x(4,7,8)=1; x(4,8,6)=1; x(5,1,8)=1; x(5,3,3)=1; x(5,5,1)=1; x(5,6,2)=1; x(5,8,9)=1; x(6,1,9)=1; x(6,2,4)=1; x(6,3,7)=1; x(7,3,6)=1;

49

x(7,4,2)=1; x(7,6,9)=1; x(7,7,7)=1; x(7,8,5)=1; x(7,9,8)=1; x(8,2,9)=1; x(8,4,5)=1; x(8,5,7)=1; x(8,7,1)=1; x(8,9,6)=1; x(9,1,7)=1; x(9,4,8)=1; x(9,7,9)=1; x(9,8,2)=1; x(9,9,3)=1; end

50

Bibliograa
[1] Andrade, Lenimar Nunes: Revista do Professor de Matemtica n 41. SBM. Rio de Janeiro. 2000 [2] Bortolossi, Humberto Jos: Clculo Diferencial a Vrias Variveis: Uma Introduo Teoria de Otimizao.2a edio. Editora PUC-Rio. Rio de Janeiro: 2003. [3] Figueiredo, Daniel Caetano: Monograa Quadrados Mgicos. Cear: 1997. [4] Sodr, Ulysses: Modelos Matemticos. UEL. Londrina: 2007. [5] C. Carnieri and M. T. A. Steiner: Apostila de exerccio de Pesquisa Operacional I. Notas no publicadas. 3a reviso. UFPR. [6] A. Garcia and Y. Lequain: Elementos de lgebra. 4a edio. Rio de Janeiro: IMPA, 2006. [7] Stephens, Paul: Mastering Sudoku week by week. Duncan Baird Publishers. Londres. 2007 [8] Disponvel em http:pt.wikipedia.org/wiki/Sudoku. Acessado dia 4 de abril de 2009. [9] Disponvel em http:www.afjarvis.staff.shef.ac.uk/Sudoku. Acessado dia 11 de maro de 2010 [10] Disponvel em http:en.wikipedia.org/wiki/Gordon_Royle. Acessado dia 21 de maro de 2010

51

Você também pode gostar