1
UNIVERSIDADE ESTADUAL DE GOIÁS
UNIDADE UNIVERSITÁRIA DE CIÊNCIAS EXATAS E TECNOLÓGICAS
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
JOSÉ APARECIDO BOAS DE OLIVEIRA
OTIMIZAÇÃO DE FUNÇÃO APLICADA A LOTERIA.
Anápolis
Dezembro, 2014.
2
UNIVERSIDADE ESTADUAL DE GOIÁS
UNIDADE UNIVERSITÁRIA DE CIÊNCIAS EXATAS E TECNOLÓGICAS
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
JOSÉ APARECIDO BOAS DE OLIVEIRA
OTIMIZAÇÃO DE FUNÇÃO APLICADA A LOTERIA.
Monografia apresentado ao Departamento de Sistemas de Informação da Unidade Universitária
de Ciências Exatas e Tecnológicas da Universidade Estadual de Goiás, como requisito parcial
para obtenção do grau de Bacharel em Sistemas de Informação.
Orientadora: Prof.ª Msc. Lena Lúcia de Moraes.
Anápolis
Dezembro, 2014
4
FICHA CATALOGRÁFICA
OLIVEIRA, José Aparecido Boas
Otimização de função aplicada a loteria. Anápolis, 2015
(UEG / UnUCET, Bacharelado em Sistemas de Informação, 2015).
Monografia. Universidade Estadual de Goiás, Unidade Universitária de Ciências Exatas e Tecnológicas.
Departamento de Sistemas de Informação.
1. Otimização 2. Loterias 3. Algoritmo
REFERÊNCIA BIBLIOGRÁFICA
OLIVEIRA, José Aparecido Boas. Otimização de função aplicada a loteria. Anápolis, 2015. 59 p.
Monografias – Curso de Sistemas de Informação, UnUCET, Universidade Estadual de Goiás.
5
CESSÃO DE DIREITOS
NOME DO AUTOR: José Aparecido Boas de Oliveira
TÍTULO DO TRABALHO: Otimização de função aplicada a loteria.
GRAU/ANO: Graduação /2015.
É concedida à Universidade Estadual de Goiás permissão para reproduzir cópias deste trabalho,
emprestar ou vender tais cópias para propósitos acadêmicos e científicos. O autor reserva outros direitos
de publicação e nenhuma parte deste trabalho pode ser reproduzida sem a autorização por escrito do
autor.
José Aparecido Boas de Oliveira
Endereço: Rua Rubem Martim Berta nº 27 – Bairro: Camobi
CEP 97105-350 – Santa Maria – RS – Brasil
6
Dedicatória (Dedico esse trabalho a Deus, a ele toda
honra e glória. Aos meus pais (in memoria) que longo de
suas vidas fizeram todo esforço para que eu fosse o mais
longe possível na aquisição do conhecimento. Com a
conclusão dessa etapa honro os seus desejos. A minha
esposa Rosires, companheira incentivadora em todos os
momentos, aos meus filhos Stephanie e Pedro, que
possam ter-me como exemplo e referencial de que o
conhecimento é um dos melhores de todos os bens. Aos
meus irmãos Advana, Gilberto, Vilmar, Dilma e Carlos
os quais amo muito. Ao meu cunhado José Geraldo
referência de sabedoria e minha cunhada Denise a
predileta.)
7
AGRADECIMENTOS
A Deus o concessor de todas as coisas sem o qual não poderia viver tantos momentos
grandiosos como a conclusão desse curso, a ti minha eterna gratidão e o meu reconhecimento
que sem ti nada vale a pena. A minha esposa Rosires incentivadora, apoiadora e companheira
nas minhas horas de dificuldades a ti o reconhecimento de sua importância na minha vida. A
meus colegas de jornada que se tornaram amigos compartilhadores do conhecimento e sucesso,
muitas vezes obtidos no trabalho em equipe, sempre serão lembrados de forma carinhosa. Aos
professores Adriana, Walkíria, Arildo, Marcelo, José Leonardo, Aline, Guiliano, Hellen,
Leandro, Márcio, Nágela, André, Emerson, Ly Freitas, Amivaldo, Ronaldo, Sônia, Larissa,
Joyce e Joílson que ao longo desses 4 anos foram orientadores dos melhores caminhos na
aquisição do conhecimento, a vocês o respeito e reconhecimento da nobre e bem sucedida
missão que desempenharam de forma tão completa, um pouco de cada um de vocês estará
sempre presente na minha vida cada vez que exercer o conhecimento que com vocês adquiri.
Por fim minha estimada professora e orientadora com sua conduta ilibada, me conduziu a um
nível mais alto do conhecimento através de seus conselhos e apoio irrestrito ao longo dessa
jornada. Tens um lugar cativo no meu coração e a você o meu muito obrigado que Deus ilumine
sempre seus caminhos.
8
LISTA DE ILUSTRAÇÕES
Figura 01- Cartão de aposta .....................................................................................................30
Figura 02- Diagrama de funcionamento do código..................................................................35
Figura 03- Tela de abertura do algoritmo.................................................................................36
Figura 04- Código da tela inicial..............................................................................................37
Figura 05- Fluxo de execução do algoritmo parte 01...............................................................38
Figura 06- Fluxo de execução do algoritmo parte 02...............................................................39
Figura 07- Fluxo de execução do algoritmo aleatório..............................................................40
Figura 08- Código do algoritmo aleatório.................................................................................41
Figura 09- Prêmio Concurso 1237............................................................................................48
Figura 10- Prêmio Concurso 1258 ...........................................................................................49
Figura 11- Prêmio Concurso 1269 ...........................................................................................49
Figura 12- Prêmio Concurso 1270............................................................................................49
Figura 13- Prêmio Concurso 1314 ...........................................................................................50
Figura 14- Código do algoritmo com as técnicas de otimização .............................................53
Figura 15- Função f3_G30_defiLineDez .................................................................................54
Figura 16- Função f3_G31_paramLinhas ................................................................................55
Figura 17-Função f5_G19_roleta..............................................................................................56
Figura 18- Função f1_G19 e função f2_G19 ...........................................................................57
9
LISTA DE TABELAS
Tabela 01- Frequência de sorteio .............................................................................................20
Tabela 02- Modelo de resultados de concursos .......................................................................27
Tabela 03- Modelo de levantamento de desempenho ..............................................................27
Tabela 04- Probabilidade de acerto na dupla sena ...................................................................30
Tabela 05- Estatísticas de formação de sorteios ......................................................................31
Tabela 06- Frequência de dezenas por ciclos ...........................................................................33
Tabela 07- Desempenho do algoritmo AL ...............................................................................42
Tabela 08- Desempenho do algoritmo TO................................................................................43
Tabela 09- Desempenho 10 grupos ..........................................................................................44
Tabela 10- Desempenho 20 grupos...........................................................................................45
Tabela 11- Desempenho 23 grupos...........................................................................................45
Tabela 12- Desempenho 31 grupos...........................................................................................46
Tabela 13- Desempenho 40 grupos ..........................................................................................46
Tabela 14- Desempenho com 53 grupos.................................................................................. 47
Tabela 15- Desempenho com 154 grupos.................................................................................47
10
LISTA DE GRÁFICOS
Gráfico 01- Modelo de Comparativo de desempenho..............................................................28
Gráfico 02- Comportamento de frequência das dezenas..........................................................34
Gráfico 03- Desempenho com 10 grupos ................................................................................44
Gráfico 04- Desempenho com 10 grupos ................................................................................10
Gráfico 05- Desempenho com 23 grupos ................................................................................46
Gráfico 06- Desempenho com 31 grupos ................................................................................31
Gráfico 07-Desempenho com 40 grupos .................................................................................47
Gráfico 08- Desempenho com 53 grupos.................................................................................47
Gráfico 09- Desempenho com 154 grupos...............................................................................48
11
ABREVIATURAS
AG- Algoritmo Genético
AL- Aleatório
TO- Técnicas de otimização
12
RESUMO
Esse trabalho discorre sobre a importância da aplicação de métodos otimizados na elaboração
de soluções para problemas, principalmente os mais complexos como são considerados os jogos
de loterias. Para exemplificar escolheu-se a loteria dupla sena como estudo de caso com a
proposta de elaborar um algoritmo e aplicasse nesse algoritmo um método de otimização para
melhoria na elaboração de palpites. Elaborou-se ainda outro algoritmo que gera, nas mesmas
condições, palpites mas de forma aleatória. Os resultados analisados permitem comparar os
desempenhos para reafirmar o objetivo desse trabalho sobre a importância da aplicação de
métodos de otimização nas soluções de problemas complexos.
Palavras-chave: Otimização, loteria, algoritmo.
13
ABSTRACT
This paper discusses the importance of applying methods optimized in the development of
solutions to problems, especially the most complex as the lottery games are considered. To
illustrate chose to dupla sena lottery as a case study with the proposal to develop an algorithm
and apply this algorithm an optimization method for improvement in the development of
guesses. It produced yet another algorithm that generates the same conditions, but guesses
randomly. The results above allow to compare the performances reaffirms the objective of this
work on the importance of the application of optimization methods in complex troubleshooting.
Keywords: Optimization, lottery, algorithm.
14
SUMÁRIO
INTRODUÇÃO.......................................................................................................................16
1 MÉTODOS DE OTIMIZAÇÃO.........................................................................................18
1.1 Definições...........................................................................................................................18
1.2 Métodos determinísticos.....................................................................................................19
1.3 Métodos probabilísticos......................................................................................................19
1.3.1 Tipos de probabilidades...................................................................................................19
1.3.2 Probabilidade empírica....................................................................................................20
1.3.3 Probabilidade subjetiva ...................................................................................................21
1.3.4 Probabilidade condicional................................................................................................21
1.4 Teoria da contagem.............................................................................................................22
1.5 Regra da multiplicação .......................................................................................................22
1.6 Algoritmo Genético ............................................................................................................22
1.7 Planejamento combinatório.................................................................................................23
2 DESENHOS TÉORICO E METODOLÓGICO DA PESQUISA...................................25
2.1. Problemas da pesquisa.......................................................................................................25
2.2. Objetivo Geral....................................................................................................................26
2.3. Tipos de Pesquisa...............................................................................................................26
2.4. Quanto aos fins...................................................................................................................26
2.5. Quanto aos meios...............................................................................................................26
2.6. Instrumentos e procedimento de coleta de dados...............................................................26
2.7. Tratamentos dos dados.......................................................................................................27
2.8. Resultados esperados.........................................................................................................28
3 CARACTERÍSTICAS E FUNCIONAMENTO DA DUPLA SENA..............................29
3.1 Funcionamentos da dupla sena...........................................................................................29
15
3.2 Estatísticas de sorteios.....................................................................................................31
3.3 Características de comportamento de dezenas................................................................32
4 SOLUÇÕES PROPOSTA................................................................................................35
4.1Conjunto de soluções........................................................................................................35
4.2 Funções de probabilidade ...............................................................................................35
4.3 Implementações do algoritmo.........................................................................................36
4.4 Fluxos de execução do algoritmo....................................................................................39
5 ANÁLISES DOS DADOS................................................................................................42
5.2 Resultados........................................................................................................................44
5.3 Resultados práticos..........................................................................................................48
5 CONCLUSÕES.................................................................................................................51
REFERÊNCIAS...................................................................................................................52
APÊNDICES ........................................................................................................................53
Apêndice A- Código do algoritmo com as técnicas de otimização implementadas..............53
Apêndice B- Função de auxílio a definição a probabilidade.................................................54
Apêndice C- Função de atribuição de probabilidade.............................................................55
Apêndice D- Função roleta russa...........................................................................................56
Apêndice E- Função de alocação dinâmica de vetor e função de geração aleatória..............57
Apêndice F-Cronograma........................................................................................................58
16
INTRODUÇÃO
Otimização é um recurso aplicado em vários tipos de problemas. O caixeiro viajante
é um exemplo desses problemas. Consiste em um viajante que deve visitar todas as cidades de
um determinado grupo uma única vez, percorrendo a menor distância possível. Para um grupo
pequeno isso não representa um problema complexo. Pode-se calcular todas as possibilidades
e a distância de cada uma delas, escolhendo a melhor delas, nesse caso a de menor custo. À
medida que esse grupo aumenta, se torna considerável o custo computacional devido ao
aumento exponencial dos cálculos necessários para a obtenção da solução. Esse nível de
complexidade pode tornar inviável a resolução do problema por necessitar tempo de
processamento demasiadamente longo ou necessitar do emprego de hardware mais avançado.
Outro exemplo de problema pode ser a análise de milhões de combinações de jogos
de uma loteria qualquer e determinar qual o conjunto possui maior potencial de sorteio. A
solução de alguns desses problemas pode ser obtida com auxílio da otimização.
Geralmente a resolução de problemas é constituída de processos. Estes procuram a
maximização ou minimização de uma determinada função de uma ou mais variáveis, num
determinado domínio. Achar o ponto ótimo da função é o problema que, na maioria das vezes,
não é simples ou mesmo possível, razão essa que remete a pesquisas por soluções.
Essas funções, por sua vez, podem ser transformadas em algoritmos que podem ser
aplicados num sistema computacional.
A complexidade do problema será tal que poderá ou não ser passível de ser
resolvida por um computador. Normalmente problemas com uma grande quantidade de
variáveis envolvidas tornam-se necessário a análise, aprimoramento e descoberta de novas
técnicas que permitam melhorar o desempenho na resolução desses problemas.
Por exemplo, um jogo de loteria, geralmente um computador consegue calcular
todas as possibilidades possíveis de combinação das dezenas, mas o custo de realizar todas as
apostas é muito alto.
Tomando o caso da loteria, que é um sistema de distribuição de prêmios para
apostadores por meio de sorteio, seria possível, por meio do uso de funções e análises de
sorteios, otimizar e reduzir o conjunto de apostas, facilitando o acerto do jogo sorteado e
diminuindo o custo da aposta?
Para responder essa pergunta, este trabalho propôs um estudo de métodos de
otimização e o desenvolvimento de um algoritmo que tratasse esse problema da loteria. Foi
17
escolhido para aplicação do estudo a modalidade de loteria dupla-sena oferecida pela Caixa
Econômica federal. O capítulo 1 discorre sobre técnicas de otimização e algumas definições
importantes para entendimento dos recursos aplicados no trabalho.
O capítulo 2 define a metodologia utilizada, apresenta o objetivo geral da pesquisa
como também quantos aos fins e aos meios além dos instrumentos e procedimentos de coleta
de dados.
O capítulo 3 está relacionado com o funcionamento da loteria utilizada como estudo
de caso, a loteria Dupla sena e mostra suas características e resultado de alguma análise de
comportamento da referida loteria.
O capítulo 4 apresenta a proposta de implementação do algoritmo além de explicitar
o fluxo de execução e o funcionamento das partes mais relevantes do código.
O capítulo 5 apresenta os dados obtidos bem como a análise desses dados seguindo
a definição apresentada no capítulo 2. Apresenta ainda alguns resultados reais obtidos ao longo
do trabalho sob a forma de apostas reais utilizado os códigos ora desenvolvidos.
O capítulo 6 é a conclusão do desenvolvimento do trabalho. Demostrando que a
análise de algumas técnicas de otimização, o estudo e entendimento do comportamento dos
sorteios da loteria, evidenciou-se a importância da utilização da otimização nas várias áreas que
envolvem a aplicação da computação, como demostrou os resultados deste estudo aplicado
especificamente no caso escolhido. É necessário um aprofundamento do estudo do problema
para uma melhoria na elaboração das soluções propostas, mas o nível do estudo feito cumpriu
o objetivo do trabalho que é demostrar maior eficácia nos resultados quando aplica-se a
otimização.
18
1 MÉTODOS DE OTIMIZAÇÃO
Um método é a aplicação de um ou mais passos ou processos, para a resolução de
um problema qualquer. Lakatos e Marconi (2003, p.85) o definem:
[...] o método é um conjunto das atividades sistemáticas e racionais que, com
maior segurança e economia, permite alcançar o objetivo – conhecimento
válidos e verdadeiros -, traçando o caminho a ser seguido, detectando erros e
auxiliando as decisões do cientista.
A forma ou tipo de passos ou processos executados constitui-se a técnica.
Fachin (2003, p.29) afirma que “a técnica está relacionada com o modo de se
realizar a atividade de forma mais hábil, mais perfeita. [...]”
Métodos de otimização são a aplicação de uma ou mais técnicas destinados a
resolução de problemas com alguma complexidade. Comumente problemas de grande
complexidade possui método ou métodos com mais de uma técnica de otimização, enquanto
problemas de menor complexidade possuem método ou métodos com apenas uma técnica de
otimização tornando-se a técnica o próprio método. São diversos os métodos utilizados em
otimização. A cada dia novas técnicas são descobertas, incorporadas a métodos e aplicados a
problemas já conhecidos não possuem uma solução eficiente.
Os Algoritmos utilizados nas soluções de problemas de otimização buscam a
melhor solução dentre todas possíveis. Para o caso específico desse trabalho, a técnica de
otimização algoritmos genéticos, a técnica de “desdobramento” e estatística e probabilidade
foram as escolhidas para estudo e aplicação.
1.1 Definições
Para melhor compreensão dos algoritmos de otimização é necessário o
conhecimento de alguns conceitos e definições. Em seguida lista-se alguns dos termos
relacionados, usualmente, a problema de otimização qualquer.
Variáveis de projeto: é a representação de características que podem se alterar ou
não durante um processo de otimização, são divididas em três classes as contínuas, inteiras ou
discretas. Termos como restrição, espaço de busca, função objetivo, ponto ótimo e valor ótimo
também fazem parte desse contexto.
Restrições: limitações impostas sobre as variáveis que descrevem situações de
projeto consideradas não desejáveis.
19
Espaço de busca: conjunto, espaço ou região que contém as soluções possíveis
ou viáveis sobre as variáveis do projeto do problema a ser otimizado, sendo
delimitado pelas funções de restrição.
Função Objetivo: é a função de uma ou mais variáveis de projeto que se quer
otimizar, minimizando-a ou maximizando-a.
Ponto Ótimo: ponto formado pelas variáveis de projeto que extrema a função
objetivo e satisfazem as restrições.
Valor Ótimo: é o valor da função objetivo no ponto ótimo.
(Http://www.maxwell.vrac.puc-rio.br/7603/7603_4.PDF)
1.2 Métodos determinísticos
Um método é determinístico quando possui um conjunto de entradas conhecido e
do qual resultará um único conjunto de saídas.
“Um sistema determinístico é modelado analiticamente, isto é todos os argumentos
são analisados. Esta análise só não ocorre quando o modelo se torna complexo demais ou possua
um grande número de variáveis ou de relações.” (NEUMANN, 2013, p.47).
Neste caso usa-se simulação como alternativa para solução. Podemos citar como
principais aplicações da simulação determinística o planejamento financeiro e a simulação de
sistemas macroeconômicos.
1.3 Métodos probabilísticos
Um método é probabilístico quando o modelo possui uma ou mais variáveis
aleatórias como entrada. Essas entradas aleatórias conduzem a saídas aleatórias que são
consideradas estimativas das verdadeiras características. Diferente da situação determinística a
simulação probabilística está mais próxima da realidade. Um processo de amostragem das
variáveis aleatórias é estabelecido para tentar reproduzir, o mais fielmente possível, a realidade.
1.3.1 Tipos de probabilidades
A probabilidade de um evento X ocorrer é escrita como P(X). Lê-se "a
probabilidade do evento X". Larson e Farber (2004, p.90) define que existem três tipos de
probabilidade: clássica, empírica e subjetiva. Probabilidade clássica ou teórica é usada quando
20
existe a mesma probabilidade de ocorrência para todos os eventos de um determinado espaço
amostral. Exemplo: um dado de seis faces é jogado, a probabilidade de se obter o evento 3.
O espaço amostral S={1,2,3,4,5,6}. Logo P(3) =1/6 ~0,167. Para obter o evento 7,
P(7) =0/6 =0, pois 7 não está no espaço amostral.
No caso da loteria dupla sena existem 50 dezenas que podem ser combinadas para
gerar apostas de 6 a 15 dezenas por cartela. Utilizando-se a fórmula de arranjo é possível
calcular o número de combinações possíveis.
Onde “C” é o número de combinações, “N” o número de elementos e “P” o número
de elementos por grupo. Assim tem-se:
= 15890700
1.3.2 Probabilidade empírica
Probabilidade empírica segundo Larson e Farber (2004, p.92)
é baseada em
experimentos probabilísticos. P(X)= frequência do evento X/frequência total. Exemplo: num
globo há bolas, com número 1, número 2. A frequência de sorteios é dada na Tabela 1 –
Frequência de sorteios de bolas.
Frequência de sorteio de bolas
Bolas com número
Número de vezes sorteadas
Bola 1
13
Bola 2
17
Bola 3
10
Soma das freq.
40
Tabela 01 – Frequência de sorteio de bolas. Fonte: autoria Própria
Para um próximo sorteio a probabilidade de sorteio da bola 3 é dada por P(3)
=10/40. Ou 0,25. A probabilidade empírica (frequência relativa) de determinado evento
aproxima-se da probabilidade teórica desse evento à medida que se aumenta o número de vezes
21
que se repete um experimento probabilístico. Isso é conhecido como lei dos grandes números.
Como exemplo, suponha-se que se queira determinar a probabilidade de obter o número 5 em
um dado. Se esse dado for lançado dez vezes e se obter 3 vezes o número 5, a probabilidade
empírica será de 3/10. Com essas poucas jogadas a probabilidade empírica não é representativa
da probabilidade teórica que é 1/6. Caso o dado seja lançado milhares de vezes, de acordo com
a lei dos grandes números a probabilidade empírica será mais próxima da probabilidade teórica
ou real.
1.3.3 Probabilidade subjetiva
Probabilidade subjetiva é resultado da intuição, experiência ou estimativa é o grau
de incerteza atribuído a um evento baseado na informação pessoal e julgado pelo próprio na sua
realização. (LARSON E FARBER, 2004, p.94)
Se P(X)=0, significa que o evento X é impossível. Se P(X)=1, significa que o evento
X é certo. Propriedades da probabilidade: a soma das probabilidades de todos os eventos do
espaço amostral é 1 ou 100% em consequência sabendo-se a probabilidade de um evento Y,
poderá obter a probabilidade do complemento X sendo ambos pertencentes ao mesmo espaço
amostra.
P(Y)+P(X)=1, P(Y)=1- P(X), P(X)=1-P(Y).
1.3.4
Probabilidade condicional
É a probabilidade de ocorrência de um evento quando um outro evento tenha
ocorrido. É denotado por P(B/A) e lido "a probabilidade de B, dado A ". Dois eventos são
independentes quando a ocorrência de um deles não afeta a probabilidade de ocorrência do
outro. Denota-se P(B/A) =P(B) ou se P(A/B) =P(A). Os eventos que não são independentes são
dependentes. (LARSON E FARBER,2004, p.99)
Para determinar se A e B são independentes, calcula-se P(B) e P(B/A), se os valores
são iguais, os eventos são independentes e P(B) ≠P(B/A), A e B são eventos dependentes.
22
1.4 Teoria da contagem
Dados dois eventos, o primeiro pode ocorrer de M maneiras distintas e N maneiras
distinta o segundo. Os dois eventos podem ocorrer conjuntamente de M.N maneiras distintas.
A análise combinatória tem fundamental importância para se contar o nº de casos favoráveis e
o total de casos. Para problemas simples ou com poucos elementos, pode-se contar o número
de resultados de forma direta e para problemas menos simples, utiliza-se fórmulas matemáticas
da análise combinatória. (CORREA, 2003, p.72). O número de combinações de n elementos
combinados r a r sendo r<n é dado por:
n
Ar
n!
(n r )!
O número de combinações de n elementos combinados r a r sendo r<n, mas com
grupos que não se repetem é dado por:
n
Cr
n!
(n r )!r!
1.5 Regra da multiplicação
P (A e B) = P(A). P(B/A) define a probabilidade dos eventos A e B ocorrerem em
sequência caso os eventos A e B sejam independentes, a regra pode ser simplificada para P (A
e B) =P(A). P(B). Essa regra simplificada pode ser estendida para qualquer número de eventos
independentes.
1.6 Algoritmo genético
Algoritmos genéticos são uma classe de métodos, com passos distintos bem
definidos que é fundamentado em analogias a conceitos biológicos especificamente na Teoria
da evolução das espécies criada por Charles Darwin.
"Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua
chance de sobreviver e gerar descendentes" (DARWIN, 1958, p.177).
Darwin visitou vários lugares e habilmente, observou animais da mesma espécie
ligeiramente diferentes de seus parentes em outros ecossistemas diferentes. Observou que cada
grupo era mais adaptado às necessidades e oportunidades presentes no seu ecossistema
específico. Darwin concluiu que os indivíduos com uma melhor adequação do seu fenótipo ao
23
meio ambiente reproduzem mais. Com isso possuem mais chances de passar seus genes para a
próxima geração. Os operadores genéticos (recombinação e mutação) os cromossomos dos
filhos não são exatamente iguais aos pais. Dessa forma possuem a capacidade de evoluir e se
adaptar
cada
vez
mais
aos
meios
ambientes
que
os
cercam.
(Disponível
em:<http://www.unaerp.br/arquivos/manual_ referenciatc.pdf> Acesso:13 jul2013.)
Os algoritmos genéticos, ou algoritmos evolucionários utilizam modelos
computacionais dos processos naturais de evolução como método para resolver problemas. Os
AG como um método computacional de busca são baseado em mecanismos de evolução natural
e da genética.
Existe uma grande variedade desses modelos e os conceitos são comuns. Todos os
processos dependem do desempenho dos indivíduos desta espécie dentro do ambiente. É
mantida uma população de estruturas, denominadas indivíduos ou cromossomos. Essa
população se comporta semelhantemente à evolução da espécie. São aplicadas a essas estruturas
operadores genéticos, como recombinação e mutação.
Cada indivíduo é avaliado e quantificado a sua qualidade como solução do
problema em questão. Serão aplicados os operadores genéticos de forma a simular a
sobrevivência do mais apto levando em consideração essa avaliação.
A evolução não é um processo elaborado para gerar o melhor indivíduo,
simplesmente, com a competição por recursos escassos, os melhores geram mais descendentes.
Seus genes proliferam e aquilo que lhes faz ser melhor acaba sendo passado para sua prole.
Leva-se para a computação os seguintes conceitos: vários indivíduos (população) podem ser
considerados um conjunto de soluções isoladamente sendo que essas soluções são avaliadas.
As melhores se reproduzem mais. A existência de algo como os genes para codificar as
características. Filhos compartilham características de ambos os pais. Indivíduos morrem com
o passar do tempo.
1.7 Planejamentos combinatório
No estudo da Teoria dos Planejamentos Combinatórios, um Planejamento
Combinatório é resumidamente e intuitivamente, uma forma padrão de
selecionar subconjuntos, que chamaremos de blocos, de um conjunto finito,
satisfazendo algumas propriedades estabelecidas. Nesta teoria, o foco
principal é a discussão das técnicas para construção de diferentes
planejamentos em blocos. O que vai diferenciar os diversos tipos de
24
planejamentos combinatórios é a forma de estabelecer e padronizar essas
propriedades de seleção de subconjuntos. (BARBOSA, 2011, p.18).
Por meio desse método é possível selecionar um grupo pequeno de um conjunto
maior e manter algumas características desejadas desse conjunto, estabelecendo para isso certas
condições mínimas. Isso permite reduzir determinados custos por exemplo de processamento e
tempo. Nesse trabalho o planejamento combinatório é aplicado no sentido de se obter o menor
número possível de combinações e que ainda assim garantam pontuação suficiente para
premiação.
25
2
DESENHO TEÓRICO E METODOLÓGICO DA PESQUISA
Este trabalho envolve a pesquisa e estudo de métodos utilizados em otimização,
uma fundamentação teórica de conceitos de aleatoriedade e aplicação prática. Possui como
fontes livros, publicações, teses e outros tipos de materiais disponíveis para consulta,
principalmente na web. Além do estudo das técnicas de otimização. Esse estudo visa identificar
as principais deficiências e achar a solução mais adequada com a aplicação dos métodos de
otimização estudados e selecionados.
2.1 Problemas da pesquisa
A aplicação de métodos de otimização pode melhorar a eficácia de algoritmos
usados na elaboração de palpites para aposta em jogos de loteria?
Questões a serem respondidas pela pesquisa.
a) A combinação de métodos de otimização possui maior desempenho que a
aplicação exclusiva de um único método?
b) Quais as melhores abordagens para um desempenho de um sistema eficiente e
eficaz no tocante a métodos de otimização?
c) É possível obter um desempenho satisfatório na elaboração de um algoritmo
utilizando esses métodos, mesmo em uma área complexa como as das loterias?
2.2 Objetivo Geral
Apresentar uma análise dos resultados de testes de algoritmos elaborados, aplicando
métodos de desenvolvimento utilizando recursos de otimização. Para isso foi utilizado como
referência dados de sorteios ocorridos, oriundos da loteria dupla-sena fornecido pela Caixa
Econômica Federal.
2.3 Tipos de Pesquisa
Esta seção especifica e classifica a pesquisa para evidenciar tipo de busca que se
foi feita para chegar ao conhecimento e aos resultados.
26
2.4 Quanto aos fins
É classificada como descritiva. Que possui como finalidade prática a aplicação de
métodos de otimização em um algoritmo que gera palpites para a loteria dupla sena da Caixa
Econômica Federal.
2.5 Quanto aos meios.
Quanto aos meios, a pesquisa classificada como bibliográfica, pois o estudo está
baseado em sites, livros e artigos, sendo grande parte deles disponibilizados em meios
eletrônicos, como a internet e aplicada a um estudo de caso.
2.6 Instrumentos e procedimentos de coleta de dados.
Além do estudo das técnicas de otimização, fez-se a descrição dos algoritmos e
métodos utilizados para seleção de combinações para loteria. Após a implementação e execução
do algoritmo aplicando métodos de otimização, foi elaborado os cálculos estatísticos de acerto
utilizando planilhas e gráficos para análise de desempenho. A execução do algoritmo
implementado destinou-se a obter os melhores palpites possíveis para uma simulação ou aposta
real. Sorteios reais fornecidos pela caixa foram a base para conferência de estatística de acerto.
Esse mesmo processo foi aplicado a um algoritmo que gera a mesma quantidade de palpites por
concurso de forma aleatória e sem possuir nenhum método de otimização. Fez-se um estudo do
funcionamento da loteria dupla sena, bem como os métodos e teorias utilizados pelos
apostadores na confecção de palpites. Após, foram selecionados os métodos e teorias
considerados mais coerentes e estes serviram de base para elaboração de funções de escolhas.
Estas funções foram implementadas no algoritmo que propõe a melhoria do desempenho na
elaboração de palpites. Para essa implementação, foram estudados os conceitos de algoritmo
genético, sistemas de Steiner, estatística e probabilidade. O equipamento necessário e utilizado
foi um notebook com a configuração: 4 Gb de RAM, processador Intel i3 e HD 500Gb.
2.7 Tratamentos dos dados.
O resultado do processamento dos algoritmos implementados foi analisado
estatisticamente. Os resultados das execuções foram armazenados como descrito na Tabela 2.
27
Cada tabela corresponderá o resultado do processamento dos respectivos algoritmos que
utilizam as técnicas de otimização e o que utiliza técnica alguma.
Modelo de resultados de concursos
Concurso Número1 Número 2 Número 3 Número 4 Número 5 Número 6
1
1
2
3
4
5
6
2
1
2
3
4
5
6
3
1
2
3
4
5
6
4
1
2
3
4
5
6
5
1
2
3
4
5
6
...
...
...
...
...
...
...
N
1
2
3
4
5
6
Tabela 2 - Modelo de resultados de concursos. Fonte: autoria própria
Os dados da tabela geraram a contabilização do número de acerto como
exemplificado na Tabela 3.
Modelo levantamento de desempenho
Concurso
0 pt
1 pt
2 pts
3 pts
4 pts
5 pts
6 pts
1
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
2
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
3
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
4
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Qt.Cart
Tabela 3 – Modelo levantamento de desempenho. Fonte: autoria própria
O Gráfico 01 é um modelo que demostra a apresentação final a partir dos dados
obtidos a partir da Tabela 3. Permitindo mais facilmente a análise de desempenho de ambos
algoritmos. Após a análise, as percepções adquiridas foram dissertadas resumidamente.
28
CARTÕES
Modelo de comparativo de desempenho
350
318
264
300
250
200
150
90
100
20
50
20
10
0
4
5
6
PONTOS
Algoritmo 01
Algoritmo 02
Gráfico 01- Modelo de Comparativo de desempenho.
2.8 Resultados esperados.
Esperava-se por meio do estudo e aplicação de uma combinação de métodos,
demostrar, com a implementação de um algoritmo, especificamente para a loteria, na
modalidade de dupla sena, um ganho no desempenho na seleção de combinações para aposta,
demostrando assim a possibilidade de resolução de problemas com a aplicação de otimização.
29
3 CARACTERÍSTICAS E FUNCIONAMENTO DA DUPLA SENA
A loteria dupla sena é mantida pela Caixa Econômica Federal. Os sorteios das 06
(seis) dezenas que definem os ganhadores, ocorrem as terças e sextas feiras às 20:00h. É
utilizado um globo, instalado em um caminhão que a cada dia efetua o sorteio em uma cidade
diferente sob a supervisão de populares e um grupo de auditores. Esse processo visa garantir a
lisura da referida loteria além da divulgação. Oferece premiações para quem acerta 4, 5 e 6
pontos. A premiação é definida pelo número de acertadores de cada faixa de premiação e pelo
valor arrecadado no respectivo concurso. A faixa de premiação 4 pontos paga em média
R$60,00, premiação 5 pontos paga R$1.400,00 e 6 pontos é a que mais oscila, variando de
R$100.000,00 a R$3.000.000,00 (três milhões de reais) aproximadamente dependendo do
número de concursos acumulados por falta de acertadores e do número de acertadores. Cada
aposta concorre a dois sorteios classificados como primeiro sorteio e segundo sorteio.
3.1 Funcionamentos da dupla sena.
O cartão para aposta possui vários campos. A Figura 01 apresenta os mais
pertinentes a esse trabalho os campos 01, 02, 03, 04, 05 e 06. Os campos 01 e 02 contém 50
dezenas onde é feita a marcação daquelas escolhidas para o jogo pelo apostador. O campo 03 é
destinado a definir quantas dezenas serão marcadas nos campos 01 e 02. É possível definir no
mínimo 6 e no máximo 15 dezenas. O campo 04 é utilizado caso o apostador queira os números
gerados aleatoriamente pelo próprio sistema da Caixa Econômica Federal. Os números indicam
o número de apostas que serão geradas pelo sistema. O campo 05 serve para indicar os números
de concursos para a aposta gerada, esses números variam de 2 a 8 concursos. O campo 06 foi
uma mudança efetuada pela Caixa para permitir oficialmente os populares “bolões”, onde
vários apostadores rateiam o valor, geralmente maior, de apostas.
30
Figura 01-Cartão de aposta.
Cada campo 01 ou 02 marcados constitui-se uma aposta. Como o apostador deve marcar
no mínimo 06 dezenas, mas possui a opção de marcar até 15 dezenas o valor da aposta também varia
conforme a quantidade de dezenas marcadas. Uma aposta mínima custa R$1,00. O preço das outras
apostas é dado pela fórmula 𝑐 =
𝑛!
𝑝!(𝑛−𝑝)!
x Va. Onde “c” é a quantidade de apostas simples possíveis
de gerar com o número “n” de dezenas marcadas e “Va” é o preço da aposta simples. Tem-se para uma
aposta de 15 dezenas 𝑐 =
15!
6!(15−6)!
= 5005 x R$1,00 = R$5.005,00.
A probabilidade de acerto de cada aposta também é definida pelo número de dezenas
marcadas. A tabela 01 mostra a probabilidade de acerto conforme o número de dezenas marcadas na
aposta.
Tabela 04 Probabilidades de acerto dupla sena. Fonte: Caixa Econômica Federal
31
Como indicado na Tabela 04 a chance de um apostador acertar os 6 pontos com
uma aposta simples é muito pequena. A medida que se aumenta a quantidade de números
marcados, a chance aumenta consideravelmente, mas os valores gastos também aumentam. Este
é o problema principal que esse trabalho propõe solução.
3.2 Estatísticas de sorteios
Os sorteios são efetuados de forma a se obter o grupo de 6 dezenas aleatoriamente.
Ao analisar estatisticamente todos os sorteios ocorridos, percebe-se que existe um certo padrão
de comportamento que pode ser utilizado a favor do apostador. A tabela 05 mostra como são
formados os sorteios.
Tabela 05 – Estatística de formação de sorteios.
Tem-se na tabela 5 nas células azuis os valores de atraso ou seja uma dezena que
possui 0 significa dizer que ela foi sorteada no último concurso ou se possui um valor “10”
significa que está a 10 concursos sem ser sorteada. As células verdes indicam a quantidade de
dezenas com o mesmo valor de atraso. Ao cruzar as linhas das células verdes com as colunas
das células azuis obtém-se nas células amarelas o percentual de concursos que possuem esta
configuração.
Exemplo: linha verde 1 e coluna azul 0 significa que 39.42% de todos os concursos
já realizados possuem 1 dezena que foi sorteada no concurso anterior. Observando a linha verde
número 2 e a coluna azul número 0 o percentual é de 13,83% na soma total, “linha marrom”
percebe-se que 55,52% dos concursos realizados possuem no mínimo 1 dezena sorteada do
concurso anterior. Isso indica que ao selecionar um conjunto de números para aposta é
interessante selecionar algum número pertencente ao concurso anterior. Dessa forma é fácil
perceber que caso o apostador resolva formular um palpite e inserir na aposta as seis dezenas
32
do último concurso, ele terá no mínimo 55,52% de probabilidade de acertar no mínimo 1
dezena. Caso não selecione nenhuma dezena do último sorteio a probabilidade de não acertar
as seis dezenas é acrescida de 55,52%.
3.3 Características de comportamento de dezenas.
Mesmo sendo a estrutura dos sorteios planejada para gerar um sorteio aleatório, por
algum motivo não determinado, parece haver um certo padrão. Isso é observando ao analisar
os sorteios ocorridos dividindo-os em ciclos. Considera-se o início do primeiro ciclo o primeiro
sorteio e o término quando houver sido sorteada todas as dezenas. O segundo ciclo inicia-se
sucessivamente ao primeiro e assim respectivamente os ciclos seguintes. Nesse modelo de
determinado por ciclos, cada ciclo tem a sua própria duração. Cada ciclo pode conter um
determinado número de sorteio. No grupo de sorteios analisados duraram em média 37
concursos. Essa é a média de concursos para que todas as dezenas sejam sorteadas ao menos
uma vez. Foi observado também, que mesmo dividindo os sorteios ocorridos por um valor entre
29 e 30, muda-se as frequências de sorteios das dezenas dentro do ciclo, todavia o gráfico
continua apresentando certo padrão de comportamento. Ao longo de cada ciclo contabiliza-se
o número de vezes que as dezenas são sorteadas. O ciclo sempre terminará com uma dezena
contendo a frequência 1, pois essa será a dezena que determinará o fim do ciclo. Os valores de
frequência obtidos de cada dezena dentro de cada ciclo são comparados uns com os outros. A
Tabela 04 apresenta na coluna 01 as dezenas da dupla sena que são contidas no globo para
sorteio dezenas de 01 a 50. A coluna 2 a 31 representam os ciclos que formam o conjunto de
todos os sorteios ocorrido até o concurso 1237. Cada linha contém as frequências das
respectivas dezenas mostradas nos respectivos ciclos.
33
Tabela 06-Frequência de dezenas por ciclos.
O gráfico 01 apresenta o comportamento das dezenas indicados na Tabela 03.
Observa-se a formação de certo padrão de sorteio entre as dezenas. Esse gráfico mostra dezenas
especificas tendem a não serem sorteadas quando especificamente outras são mais sorteadas.
Ou ainda que algumas tendem a serem sorteadas quando outras são. Não implicado que tenham
que sair especificamente no mesmo sorteio.
34
Gráfico 02-Coportamento de frequência das dezenas.
35
4 SOLUÇÃO PROPOSTA.
A solução proposta implementa as técnicas de algoritmo genético, matemática
combinatória, probabilidade e estatística. A Fig. 02 descreve o funcionamento do algoritmo
referido.
Figura 02 Digramas de funcionamento do código. Fonte: autoria própria.
4.1 Conjuntos de soluções
O conjunto de soluções é representado por um vetor contendo as dezenas de 1 a 50.
Armazena informações de frequência de sorteio, desvio padrão médio, desvio padrão atual e
classificação de probabilidade calculada pela função de probabilidade. O vetor conjSol[50] [50]
armazena essas informações.
4.2 Funções de probabilidade
Essa função é responsável por determinar as informações estatísticas e
probabilísticas referente a cada dezena. As informações são armazenadas no vetor “conjSol[50]
36
[50]”. A função de probabilidade efetua o cálculo de probabilidade levando em consideração a
frequência em que cada dezena aparece na matriz de sorteios. Essa matriz é um vetor que
contém os resultados de sorteios fornecidos pela Caixa Econômica Federal. Cada dezena possui
um contador que é incrementado cada vez que a dezena aparece. Ao terminar essa contagem,
fica determinada a frequência de cada dezena.
4.3 Implementações do algoritmo
A linguagem escolhida para implementação do algoritmo é a linguagem C. A Figura
03 mostra a tela inicial com a indicação dos campos e o a figura o código.
Figura 03-Tela de abertura do algoritmo.
37
Figura 04- Código da tela inicial
4.4 Fluxos de execução do algoritmo.
A Figura 03 e a Figura 04 mostram o fluxo de execução e partes do código do
algoritmo. Na linha 19 da Figura 04 a função f5_G5 é responsável por carregar para o vetor
“sorteios [] [7]” os resultados dos sorteios a partir de um arquivo .txt e retorna para a variável
“nSorteios” o número do último sorteio. Esses sorteios fornecidos pela Caixa Econômica são
utilizados para formação das informações estatísticas e probabilidade de cada dezena. O
algoritmo utiliza essas informações na implementação da técnica do algoritmo genético
escolhendo as dezenas mais aptas para o sorteio. Na Figura 05, linha 5 a função f1_G21 cria o
diretório para o arquivo que armazena as combinações geradas ao fim da execução do algoritmo
com a extensão “.csv”. A técnica do algoritmo genético está inserida na linha 9. A função
“f2_CF2” implementa essa técnica e essa função é descrita o seu código detalhadamente no
Apêndice I. A função recebe 5 parâmetros, o vetor “int selecDzComb[8] [65]” onde será
armazenada a população selecionada para gerar as combinações. A variável “int ndzDesj”
armazena número de dezenas que forma cada grupo. A variável “int valorParada” define o
número de tentativas máximas para se encontrar um grupo melhor. A variável “int execute”
define o número de grupos que o algoritmo irá forma. A função “f3_G30” linha 17, “f3_G31”
linha32 e “f4_G30” linha 19 define as estatísticas e probabilidade de cada dezena baseado nos
38
sorteios carregados e passam esse vetor para função “f5_G19” linha20 a “roleta russa”. Essa
última efetua a seleção conforme a probabilidade de cada dezena até completar ou formar o
grupo considerado pai. Ao final da execução o grupo selecionado é transferido para outro vetor
por meio da função “f7_G30” linha 32. As funções “f4_G35” linha 30, “f5_G35” linha 31 e
“f8_G30” linha 32 formam um grupo “fitness”. Esse grupo de funções são as responsáveis por
avaliar e definir se o grupo pode permanecer ativo ou se será descartado. As funções “f12_G25”
linha 36, “f10_G25” linha 37, “f4_G25” linha 39 são responsáveis por imprimir na tela o
andamento do processamento.
A função “f1_G10” linha 41 permite inserir manualmente outras dezenas caso se
deseje utilizar uma probabilidade subjetiva. A função “f1_G7” linha 42 recebe o grupo
selecionado e gera todas as combinações possíveis. Armazena as combinações no vetor “int
comb [] [7]” a função “f2_G9”, efetua um arranjo matemático mantendo um número mínimo
de combinações que atenda a garantia de pontos desejada. Essa função é baseada no Sistema de
Steiner. Os códigos das principais funções são apresentados mais detalhadamente no apêndice.
Figura 05-Fluxo de execução do algoritmo parte 01.
39
Figura-06 Fluxo de execução do algoritmo parte 2.
4.4 Fluxos de execução do algoritmo aleatório.
A Figura 7 apresenta a tela inicial do algoritmo que gera as combinações
aleatoriamente. Esse é o algoritmo que serve de referência para comparação de desempenho.
Na linha L01 solicita a quantidade de grupos desejados para gerar os grupos de 6
dezenas. Na linha L02 recebe o valor do número grupos. Esse valor determina a quantidade de
grupos que serão gerados para cada concurso simulado.
A linha L04 recebe o nome do arquivo. A linha 05 define a extensão do arquivo,
esse arquivo pode ser. cvs e .txt. A linha L06 indica a criação de arquivo para o armazenamento
dos dados.
A linha 08 recebe o número do concurso que irá iniciar a simulação.
40
Figura-07 Fluxo de execução do algoritmo aleatório.
A Figura 08 apresenta o código do algoritmo aleatório que serve de referência ao
algoritmo que implementa o método de otimização. Os principais pontos a destacar são: a linha
19 carrega os sorteios de um arquivo .txt. Esse arquivo contém os resultados dos concursos
elaborados pela Caixa Econômica Federal. A linha 31 a 34 serve para popular o vetor com as
dezenas de 1 a 50 e atribuir o valor de probabilidade para cada dezena, nesse caso atribui um
valor 10 a todas as dezenas para essas possuírem probabilidades iguais. As linhas 39 e 40
carregam os sorteios para contabilizar os pontos obtidos na elaboração dos grupos gerado na
linha 43. A linha 44 a função armazena em outro vetor as o grupo gerado na linha 43. A linha
46 e 47 efetua o cálculo de acerto dos grupos gerados. A linha 48 a 53 gravam em arquivo os
grupos gerados nessa interação. A linha 56 e 57 conclui a execução do algoritmo gravando no
arquivo o resultado geral do desempenho dos grupos gerados para os respectivos sorteios.
41
Figura 08-Código do algoritmo aleatório.
42
5 ANÁLISES DOS DADOS
Os dados obtidos foram a partir de simulações do concurso 301 ao concurso 1317
e registrados as pontuações de 0,1,2,3,4,5 e 6 para os dois algoritmos respectivamente. Os
resultados foram contabilizados gerando-se o mesmo número de grupos para cada algoritmo.
Após a execução obteve-se os seguintes dados pelo algoritmo sem a implementação
de nenhuma técnica de otimização:
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Pontos
Cartões
Continua...
Formação de 10 grupos por concurso
Algoritmo AL Arq-(AL01) -Conc 301 a 1317
0
1
2
3
4
8966
8387
2625
347
15
Formação de 20 grupos por concurso
Algoritmo AL Arq-(AL09) -Conc 301 a 1317
0
1
2
3
4
17948
16799
5242
656
35
Formação de 23 grupos por concurso
Algoritmo AL Arq-(AL02) -Conc 301 a 1317
0
1
2
3
4
20670
19291
6012
771
37
Formação de 31 grupos por concurso
Algoritmo AL Arq-(AL03) -Conc 301 a 1317
0
1
2
3
4
28131
25726
8121
1014
59
Formação de 40 grupos por concurso
Algoritmo AL Arq-(AL10) -Conc 301 a 1317
0
1
2
3
4
36314
33258
10392
1320
73
Formação de 53 grupos por concurso
Algoritmo AL Arq-(AL04) -Conc 301 a 1317
0
1
2
3
4
48046
44160
13744
1750
101
Formação de 75 grupos por concurso
Algoritmo AL Arq-(AL05) -Conc 301 a 1317
0
1
2
3
4
67799
62711
19408
2487
144
Formação de 104 grupos por concurso
Algoritmo AL Arq-(AL06) -Conc 301 a 1317
0
1
2
3
4
94001
86737
27068
3520
208
5
0
6
0
5
0
6
0
5
1
6
0
5
3
6
0
5
3
6
0
5
1
6
0
5
1
6
0
5
2
6
0
43
Formação de 125 grupos por concurso
Algoritmo AL Arq-(AL07) -Conc 301 a 1317
Pontos
0
1
2
3
4
Cartões
112792
104334
32766
4135
215
Comparação com formação de 154 grupos por concurso
Algoritmo AL Arq-(AL08) -Conc 301 a 1317
Pontos
0
1
2
3
4
Cartões
138854
128493
40414
5208
264
Tabela 07- Desempenho do algoritmo AL.
5
8
6
0
5
3
0
0
A Tabela 07 apresenta os dados obtidos a partir da execução do algoritmo que
implementa técnicas de otimização. As simulações foram feitas do concurso 301 ao concurso
1317 e registrados as pontuações de 0,1,2,3,4,5 e 6.
Comparação com formação de 10 grupos por concurso 12DZ
Algoritmo TO Arq-(TO01) -Conc 301 a 1318
Pontos
0
1
2
3
4
5
Cartões
9078
8369
2549
327
17
0
Comparação com formação de 20 grupos por concurso 12 DZ
Algoritmo TO Arq-(TO12) -Conc 301 a 1330
Pontos
0
1
2
3
4
5
Cartões
17818
16827
5344
701
28
1
Comparação com formação de 23 grupos por concurso 14DZ
Algoritmo TO Arq-(TO03) -Conc 301 a 1320
Pontos
0
1
2
3
4
5
Cartões
20737
19262
5989
757
34
3
Comparação com formação de 31 grupos por concurso 15DZ
Algoritmo TO Arq-(TO04) -Conc 301 a 1321
Pontos
0
1
2
3
4
5
Cartões
28338
25851
7838
964
61
2
Comparação com formação de 40 grupos por concurso 12DZ P/ COMB
Algoritmo TO Arq-(TO11) -Conc 301 a 1328
Pontos
0
1
2
3
4
5
Cartões
35767
33619
10625
1355
73
1
Comparação com formação de 53 grupos por concurso 16 DZ
Algoritmo TO Arq-(TO05) -Conc 301 a 1322
Pontos
0
1
2
3
4
5
Cartões
47751
44275
13881
1790
101
4
Comparação com formação de 75 grupos por concurso 17 DZ
Algoritmo TO Arq-(TO06) -Conc 301 a 1323
Pontos
0
1
2
3
4
5
Cartões
66699
63612
19687
2439
110
3
Continua...
6
0
6
1
6
0
6
0
6
0
6
0
6
0
44
Comparação com formação de 104 grupos por concurso 18 DZ
Algoritmo TO Arq-(TO07) -Conc 301 a 1324
Pontos
0
1
2
3
4
5
Cartões
93957
86678
27168
3535
194
4
Comparação com formação de 125 grupos por concurso 19DZ
Algoritmo TO Arq-(TO)-Conc 301 a 1325
Pontos
0
1
2
3
4
5
Cartões
114175
103802
32153
4178
184
8
Comparação com formação de 154 grupos por concurso 20 DZ
Algoritmo TO Arq-(TO)-Conc 301 a 1326
Pontos
0
1
2
3
4
5
Cartões
137561
128322
41459
5566
318
10
Tabela 08- Desempenho do algoritmo TO.
6
0
6
0
6
0
5.2 Resultados.
Foram contabilizadas as pontuações de 0,1,2,3,4,5 e 6 pontos, mas para fins análise
de desempenho foram considerados nos gráficos apenas as pontuações 4,5 e 6 por ser essa a
faixa de premiação. Na Tabela 08, Tabela 13, Tabela 14 e seus respectivos gráficos mostram
que o desempenho do algoritmo que implementa as técnicas de otimização apresenta um
desempenho superior nas faixas de pontuações de 4 e 5 pontos, para os mesmos números de
grupos gerados para cada algoritmo. A Tabela 09 apresenta um desempenho menor na
pontuação 4, mas foi superior na faixa de premiação mais importante a de 5 e 6 pontos. A Tabela
10 e respectivo gráfico mostram também um desempenho inferior na premiação 4 pontos, mas
possui um desempenho superior na pontuação 5 que é a mais interessante. A Tabela 11 e
respectivo gráfico apresenta desempenho superior na premiação 4 e um desempenho inferior
na faixa 5 pontos.
Pontos
TO
AL
Formação de 10 grupos por concurso
TO X AL
0
1
2
3
4
9078
8369
2549
327
17
8966
8387
2625
347
15
Tabela 09- Formação com 10 grupos.
N] de cartãoes
Desempenho com 10 grupos
17 15
20
0
0
4
0
5
6
Pontos
TO
0
AL
Gráfico 03- Desempenho com 10 grupos.
0
5
0
0
6
0
0
45
Formação de 20 grupos por concurso
TO X AL
0
1
2
3
4
17818 16827
5344
701
28
17948 16799
5242
656
35
Pontos
TO
AL
5
1
0
6
1
0
5
3
1
6
0
0
Tabela 10- Formação com 20 grupos.
Desempenho com 20 grupos
Nº de Cartões
40
35
28
30
20
10
1
0
1
0
0
4
5
6
Pontos
TO
AL
Gráfico 04- Desempenho com 10 grupos.
Formação de 23 grupos por concurso
TO X AL
0
1
2
3
4
20737 19262
5989
757
34
20670 19291
6012
771
37
Pontos
TO
AL
Tabela 11- Desempenho com 23 grupos.
Desempenho com 23 grupos
Nº de cartões
40
34
37
30
20
3
10
1
0
0
0
4
5
6
Pontos
TO
Gráfico 05- Desempenho com 23 grupos
AL
46
Pontos
TO
AL
Formação de 31 grupos por concurso
TO X AL
0
1
2
3
4
28338 25851
7838
964
61
28131 25726
8121
1014
59
5
2
3
6
0
0
5
1
3
6
0
0
Tabela 12- Desempenho com 31 grupos.
Nº de cartões
Desempenho com 31 grupos
70
60
50
40
30
20
10
0
61
59
3
2
4
5
0
0
6
Pontos
TO
AL
Gráfico 06- Desempenho com 31 grupos
Pontos
TO
AL
Formação de 40 grupos por concurso
TO X AL
0
1
2
3
4
35767 33619 10625
1355
73
36314 33258 10392
1320
73
Tabela 13- Desempenho com 40 grupos.
47
Desempenho com 40 grupos
Nº de cartões
80
73
73
60
40
20
3
1
0
0
0
4
5
6
Pontos
TO
AL
Gráfico 07- Desempenho com 40 grupos
Pontos
TO
AL
Formação de 53 grupos por concurso
TO X AL
0
1
2
3
4
47751 44275 13881
1790
101
48046 44160 13744
1750
101
5
4
1
6
0
0
5
10
3
6
0
0
Tabela 14- Desempenho com 53 grupos.
Nº de cartões
Desempenho com 53 grupos.
120
100
80
60
40
20
0
101 101
4
4
1
5
0
0
6
Pontos
TO
AL
Gráfico 08- Desempenho com 53 grupos.
Pontos
TO
AL
Formação de 154 grupos por concurso
TO X AL
0
1
2
3
4
137561 128322 41459 5566
318
138854 128493 40414 5208
264
Tabela 15- Desempenho com 154 grupos.
48
Nº de cartões
Desempenho com 154 grupos
350
300
250
200
150
100
50
0
318
264
10
4
3
5
0
0
6
Pontos
TO
AL
Gráfico 09- Desempenho com 154 grupos.
5.3 Resultados práticos
Durante a elaboração do código foi aplicado na prática esporadicamente, com o
registro das combinações geradas junto as lotéricas. E apresentou, mesmo no período de
desenvolvimento resultados superiores ao algoritmo aleatório. Foram registrados 10 a 31
apostas por concurso. As cópias dos cartões jogados são apresentadas nas Figuras
Figura 09- Prêmio Concurso 1237
49
Figura 10 – Prêmio Concurso 1258
Figura 11 – Prêmio Concurso 1269
Figura 12 – Prêmio Concurso 1270
50
Figura 13 – Prêmio Concurso 1314
51
6 CONCLUSÕES
Após análise dos resultados, mesmo que sutilmente, ficou evidente que a utilização
de técnicas de otimização melhorou o desempenho nas seleções de grupos para aposta. Nas
execuções em que o algoritmo não foi superior, o seu desempenho foi igual ao do algoritmo
aleatório. O algoritmo com as técnicas de otimização implementadas demostrou que o seu
desempenho é mais estável que o algoritmo aleatório permitindo que os resultados sejam mais
uniformes que o aleatório. Com base nesses resultados afirma-se a importância da utilização de
métodos de otimização nas resoluções de problemas, mesmo nos casos de grande complexidade
como demostrou o estudo de caso utilizado nesse trabalho. É evidente a necessidade de um
estudo mais aprofundado referente ao comportamento dos sorteios, elaboração mais eficiente
nas funções aplicadas no algoritmo e a aplicação de outras técnicas de otimização podem
permitir a escolha mais eficiente do grupo final que irá compor os palpites gerados. Isso
possivelmente permitirá uma maior eficácia no desempenho final das apostas podendo
aumentar o número de acerto por jogo.
52
REFERÊNCIAS
LAKATOS, Eva Maria; MARCONI, Marina de Andrade. Metodologia Científica. 3. ed. São
Paulo: Atlas, 2000. 279 p.
FACHIN, Odília. Fundamentos de metodologia. 4. ed. São Paulo: Saraiva,
2003. 195 p.
MAXWELL PUC Rio de Janeiro. Disponível em: <http://www.maxwell.vrac.pucrio.br/7603/7603_4.PDF>. Acesso em: 13 jul. 2014.
NEUMANN, Clóvis. Engenharia de produção 2.ed.-Elsevier Editora Ltda-2013.146 p.
LARSON, R.; FARBER, B.; Estatística Aplicada 2ª ed.- São Paulo: Pearson Prentice Hall,
2004.476p.
CORREIA, Sonia Maria Barros Barbosa. Probabilidade e estatística 2ª ed. - Belo Horizonte:
PUC Minas Virtual, 2003.116 p.
DARWIN, Charles. The Origino of Species, John Murray, 1859.502 p.
MANOEL, Hermelindo Pinheiro. Disponível em:<http://www.unaerp.br/arquivos/manual_
referenciatc.pdf> Acesso:13 jul2014.
CHAMBERS, Lance. Practical Handbook of Genetic Algorithms - Volume 1 2ªed. - New
York :Chapman & Hall/CRC,2001,521p.
BARBOSA, Enio Perez Rodrigues. Planejamentos Combinatórios. Construindo Sistemas
Triplos de Steiner. 2011.91 p. Disponível em:< http://www.inf.ufg.br/mestrado/sites/www.inf.ufg.br.mestrado/files/uploads/Dissertacoes/EnioPerez.pdf > Acessado em: 6 mai.2014.
CAIXA ECONÔMICA FEDERAL.Disponível em :< http://www1.caixa.gov.br/loterias/loterias/duplasena/probabilidades.asp >Acesso em:12 fev 2013.
53
APÊNDICES
Apêndice A – Código do algoritmo com as técnicas de otimização implementadas.
Figura 14- Código do algoritmo com as técnicas de otimização.
Destaca-se nesse código as seguintes funções: função “f3_G30_defLinaDez” na
linha 17 calcula quantas vezes a dezena foi sorteada e há quantos concursos a dezena foi
sorteada. Esses valores são armazenados na respectiva linha da dezena.
Função “f3_G31_paramLinhas” baseado nos valores calculados pela função
“f3_G30_defLinaDez” essa função vai definir a qual linha pertence cada dezena e cria um vetor
de probabilidades e a cada índice é atribuído um valor de probabilidade baseado na análise dos
sorteios já ocorrido. A dezena recebe então o valor de sua probabilidade que coincide com a
linha respectiva.
Na linha 20 a função “f5_G19_roleta” efetua a seleção dos indivíduos, nesse caso os grupos
mais indicados para gerar as combinações finais.
54
Apêndice B –Função de auxílio a definição a probabilidade.
Figura 15- Função f3_G30_defiLineDez.
55
Apêndice C- Função de atribuição de probabilidade.
Figura 16 – Função f3_G31_paramLinhas
56
Apêncice D – Função roleta russa.
Essa função efetua sorteio levando em consideração probabilidade individual das dezenas.
Figura 17 – Função f5_G19_roleta.
57
Apêndice E – Função de alocação dinâmica de vetor e função de geração aleatória.
Figura 18 – Função f1_G19 e função f2_G19.
58
Apêndice F – Cronograma
OTIMIZAÇÃO DE FUNÇÃO EM ALGORÍTMO APLICADO A LOTERIA.
Ano 2014
Tarefa
Junho
S
T
Q
Q
S
S
D
2
3
4
5
6
7
8
1
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
T
Q
Q
S
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
25
26
27
D
Leitura do regulamento do TC.
Estudo da loteria Dupla sena.
Definição das principais variáveis do jogo.
Descrição do problema e possíveis soluções.
Pesquisa de métodos utilizados.
Conclusos
100%
100%
100%
100%
100%
30
Tarefa
Julho
S
21
22
23
24
28
29
30
31
S
T
Q
Q
S
S
1
2
3
4
5
6
7
8
9
10
Tarefa
Agosto
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
S
T
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Q
S
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
S
T
Q
Q
S
D
1
2
3
4
5
6
7
8
9
10
11
12
Outubro
S
Definição de implementação do algoritmo.
Entrega dos produtos desenvolvidos p/ aval. Parc.
Desenvolvimento Cap 01 - Metodos de Otimização.
Viagem a trabalho.
Tarefa
Setembro
Q
Estudo de "métodos probabilísticos".
Estudo do tópico "Algoritmo Genético".
Estudo de "Redes neurais".
Definição de implementação do algoritmo.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Capítulo 02 -Desenho teórico e metodológico.
Capítulo 03- Solução proposta.
Conclusos
100%
100%
100%
100%
Conclusos
100%
100%
Conclusos
100%
100%
Tarefa
Conclusos
Desenvolvimento da função de probabilidade.
Desenvolvimento da função fitness.
Desenvolvimento do algoritmo genético.
100%
100%
100%
59