Escolar Documentos
Profissional Documentos
Cultura Documentos
Slide 0 Slide 1
Slide 2 Slide 3
Resolução de Problemas
Heurística
NP-difícil e NP-completo
• Algoritmos exatos não-polinomiais: • Heurística é vem do grego Heurikein (descobrir)
• programação dinâmica , branch-and-bound, • Heurística é uma técnica que melhora a eficiência do
branch-and-cut , planos-de-corte, etc. processo de busca de soluções de um problema;
• As Heurísticas não são capazes de garantir a solução do
• Algoritmos aproximativos: encontram uma solução viável com problema;
um valor a uma distância máxima garantida do ótimo
• Os algoritmos heurísticos são algoritmos que não
garantem encontrar a solução ótima de um problema, mas
• Algoritmos heurísticos: são capazes de retornar uma solução de qualidade em um
tempo adequado para as necessidades da aplicação.
• O objetivo de uma heurística é tentar encontrar uma
solução “boa” de maneira simples e rápida.
Slide 4 Slide 5
Slide 6 Slide 7
Heurística - Método Construtivo
• Exemplos de algoritmos construtivos:
1. Problema do Caixeiro Viajante
• Vizinho mais próximo
• Inserção do Mais Distante
Heurística - Métodos Construtivos 2. Problema da Mochila
• (H1) Escolher os itens por ordem decrescente da razão
bi/wi, onde, bi = valor e wi = peso.
• (H2) Escolher os itens por ordem decrescente do valor
(bi).
• (H3) Escolher os itens por ordem crescente do valor
(wi).
Slide 8 Slide 9
http://www.tsp.gatech.edu/index.html
Slide 10 Slide 11
Problema do Caixeiro Viajante: 120 Cidades da Alemanha Ocidental (1977)
Histórico
• 18xx: primeiros relatos sobre o problema;
• 192x: o problema foi definido;
• 194x: o problema foi popularizado e classificado como “difícil”;
• 1954: resolvido na otimalidade um problema de 42 cidades.
Slide 12 Slide 13
Slide 14 Slide 15
Maior Instância Resolvida na Otimalidade (em 1998) : Problema do Caixeiro Viajante:
usa13509 Aplicações
- Fabricação de placas de circuitos eletrônicos: a
fabricação de placas de circuitos eletrônicos é feita
em diversas etapas:
-Perfuração de placas circuito impresso (Print
Circuits Board)
- Soldagem dos chips na placa
- Conexão entre os pinos
- Teste do circuito
Slide 16 Slide 17
Slide 18 Slide 19
Problema do Caixeiro Viajante:
Aplicações Algoritmos construtivos
- Roteamento de veículos como um problema de m-
caixeiros
- clientes exigem certas quantidades de mercadorias
e um fornecedor tem que satisfazer as demandas
com uma frota de caminhões.
- tem-se o problema de designar clientes a
caminhões e encontrar um escalonamento de
entrega para cada caminhão de forma que a sua
capacidade não seja excedida, bem como minimizar
o custo total da viagem.
- se não há restrição de tempo ou se o número de
caminhões é fixo (m), este problerma pode ser
resolvido como um TSP
Slide 20 Slide 21
Slide 22 Slide 23
Problema do caixeiro viajante Problema do caixeiro viajante
i=1
1 1
5 1
7 2
5 3 2 5 2
2 4
3 3
4 5 3 4 3
Slide 24 Slide 25
i=1 i=1
1 1
5 1 1
5 2 5 2
2
7
4 3 4 3
Slide 26 Slide 27
Problema do caixeiro viajante Problema do caixeiro viajante
1 1
1 1
3 i=2 3 i=2
5 2 5 2
4 3
4 3 4 3
Slide 28 Slide 29
1 1
1 1
i=5 3 i=5 3
5 2 5 2
3 2 2
4 3 4 3
Slide 30 Slide 31
Problema do caixeiro viajante Problema do caixeiro viajante
1 1
1 1
3 3
5 2 5 2
2 2
5 i=3 5 i=3
4 3 4 3
Slide 32 Slide 33
1 1 4
7 2
3 3
i=4 5
4 3 3
Slide 34 Slide 35
Problema do caixeiro viajante Problema do caixeiro viajante
• Extensões e melhorias simples:
• Podem encontrar soluções arbitrariamente * Repetir a aplicação do algoritmo a partir de cada nó do grafo e
ruins: selecionar a melhor solução obtida.
1 • Melhores soluções, mas tempo de processamento multiplicado por n.
Heurística (1-5-4-3-2-1): M+4 1 M
2 2 * A cada iteração selecionar a aresta mais curta a partir de
2
Ótimo (1-5-2-3-4-1): 7 5 2 alguma das extremidades em aberto do circuito, e não apenas
2 2 a partir da última extremidade inserida: solução de
comprimento 15 (tempos multiplicados por dois).
1 1
* Critérios mais elaborados para (1) seleção do novo nó
4 1 3 incorporado ao circuito a cada iteração e para (2) seleção da
A solução ótima é encontrada posição onde ele entra no circuito: algoritmo baseado no
crescimento de um circuito até completá-lo.
se o algoritmo começa do nó 5. Slide 36 Slide 37
Slide 38 Slide 39
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração pela inserção mais circuito a cada iteração pela inserção mais
próxima próxima
1 1
5
7
5 2 5 3 2
• Seleção do nó: 4
• Seleção do nó: 2
* Distância mínima do nó 4: 4 * Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
4 5 3 4 3
Slide 40 Slide 41
• Seleção do nó:
5 2 5 2
• Seleção do nó:
* Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
* Nó selecionado: 5 4 3 4 3
Slide 42 Slide 43
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração pela inserção mais circuito a cada iteração pela inserção mais
afastada afastada
1 1
5
7
5 2 5 3 2
• Seleção do nó: • Seleção do nó: 2
4
* Distância mínima do nó 4: 4 * Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
4 5 3 4 3
Slide 44 Slide 45
j j
Slide 48 Slide 49
1 1
1 1
2 ∆12(5) = 5+3-1 = 7 2
∆23(5) = 2+3-3 = 2 3
5 2 5 2
2 ∆13(5) = 2+5-2 = 5 2
3 3
4
4 3 4 3
Slide 54 Slide 55
Problema do caixeiro viajante Problema do caixeiro viajante
1 1
1 1
2 2
3 3
5 2 5 2
2 2
∆12(4) = 7+4-1 = 10
4 3 ∆13(4) = 7+5-2 = 10 4 3
∆35(4) = 5+3-2 = 6
∆25(4) = 4+3-3 = 4
Slide 56 Slide 57
1 comprimento = 12 1
1 1
2 2
3
5 2 5 2
2 2
3 3
∆12(4) = 7+4-1 = 10 4 4
∆13(4) = 7+5-2 = 10 4 3 4 3
∆35(4) = 5+3-2 = 6
∆25(4) = 4+3-3 = 4
Slide 58 Slide 59
Problema do caixeiro viajante Problema do caixeiro viajante
• Comparação: na prática, o método de inserção • Algoritmo de inserção mais barata:
mais afastada alcança melhores resultados do
que o de inserção mais próxima. Escolher o nó inicial i, inicializar um circuito
apenas com o nó i e fazer N ← N-{i}.
• Melhoria simples: método de inserção mais
barata Enquanto N ≠ ∅ fazer:
Encontrar o vértice k fora do circuito corrente e o par
* Por que separar em dois passos (1) a seleção do
de arestas (i,k) e (j,k) que ligam o vértice k ao ciclo
novo nó incorporado ao circuito a cada iteração e
minimizando ∆ij(k) = cik + cjk – cij.
(2) a seleção da posição onde ele entra no circuito?
Inserir as arestas (i,k) e (j,k) e retirar a aresta (i,j).
* Fazer a escolha da melhor combinação em
conjunto. Fazer N ← N-{k}.
* Melhores soluções, mas tempos de processamento Fim-enquanto
maiores (cerca de n vezes maiores).
Slide 60 Slide 61
i j i j
Slide 62 Slide 63
Problema do caixeiro viajante Problema do caixeiro viajante
• Outra idéia diferente: considerar a fusão de • Algoritmo das economias:
subcircuitos Escolher um nó inicial i (e.g., i = 1).
• Considerar dois subcircuitos passando pelo nó 1 Construir subcircuitos de comprimento 2 envolvendo o
e pelos nós i e j. nó inicial (e.g., i = 1) e cada um dos demais nós de N.
1
• Conectá-los diretamente através Calcular as economias sij = c1i + c1j - cij obtidas pela fusão
da aresta (i,j). dos subcircuitos contendo i e j e ordená-las em ordem
• Remover as arestas (1,i) e (1,j). decrescente.
• Economia realizada: Percorrer a lista de economias e fundir os subcircuitos
possíveis: a cada iteração, maximizar a distância
sij = c1i + c1j – cij
economizada sobre a solução anterior, combinando-se
dois subcircuitos e substituindo-os por uma nova
i j
aresta.
Slide 64 Slide 65
1 1
5 2 5 2
s45 = 9 s45 = 9
s35 = 5 s35 = 5
s34 = 4 s34 = 4
s24 = 4 s24 = 4
s25 = 3 4 3 s25 = 3 4 3
s23 = 0 s23 = 0
Slide 66 Slide 67
Problema do caixeiro viajante Problema do caixeiro viajante
1 1
5 2 5 2
s45 = 9 s45 = 9
s35 = 5 s35 = 5
s34 = 4 s34 = 4
s24 = 4 s24 = 4
s25 = 3 4 3 s25 = 3 4 3
s23 = 0 s23 = 0
Slide 68 Slide 69
Slide 72 Slide 73
Bibliografia
• A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M. Laguna,
P. Moscato e F. T. Tseng, Optimización Heurística Y Redes
Neurolales, Editorial Paraninfo, Espanha, 1996.
• Z. Michalewicz, Genetic Algorithms + Data Structures =
Heurística - Métodos de Busca
Evolution Programs, Springer-verlag, 1992.
• C. R. Reeves, Modern Heuristic Techniques for Combinatorial
Problems, Blackwell, 1993.
• F. Glover e M. Laguna, Tabu Search, Kluwer Academic
Publishers, USA, 1997.
• V. J. Rayward-smith, I. H. Osman, C. R. Reeves e G. D.
Smith, Modern Heuristic Search Methods, Wiley, Inglaterra,
1996.
Slide 74 Slide 75
Conceitos básicos Espaço de busca
• Espaço de soluções • Movimento
100 101
* O conjunto de todas as soluções (viáveis) possíveis * É a transição de uma solução
(satisfazendo as restrições do problema) para outra solução vizinha.
000 001
• Vizinhança
* Dada uma solução x, os elementos da vizinhança N (x ) de x • Espaço de busca
são aquelas soluções y que pode ser obtida aplicando uma * O conjunto das soluções obtidas
perturbação elementar sobre x. por meio de uma vizinhança. 010 011
* Exemplo: Considere x = (0,1,0) e a vizinhança 1-flip de um vetor 0/1.
x = (0,1,0)
110 111
(0,0,0) movimento
(1,1,0) (0,1,1)
N (x )
Slide 76 Slide 77
51 50
48 49
• Ótimo local
49 50 52 50
* é uma solução tão boa ou melhor do qualquer das
soluções vizinhas 47 48
Ótimo
46 48
local
• Ótimo global (solução ótima). 50 51
* É a melhor solução dentre todos os ótimos locais.
49 48
Ótimo
global 50 52 50 49
48 47
48 46
Slide 78 Slide 79
Heurística - Busca Local Representação de soluções
• Algoritmos de busca local são construídos como uma forma de • Os métodos de busca local são dependentes da forma
exploração do espaço de busca. adotada para representar as soluções, pois a
vizinhança de uma solução é obtida a partir da sua
• Partida: solução inicial obtida através de um método representação.
construtivo
• Representação de uma solução: indicar quais
• Iteração: melhoria sucessiva da solução corrente através de elementos estão presentes e quais não estão.
uma busca na sua vizinhança • As formas mais adotadas são:
* Vetores de Pertinência
• Parada: primeiro ótimo local encontrado, ou seja, não existe * Combinações
solução vizinha melhor.
* Permutações
Slide 80 Slide 81
Slide 86 Slide 87
Vizinhança Vizinhança
N(s) = {s1,s2,…,sk} soluções vizinhas de s Exemplo de vizinhanças no espaço de permutações:
Slide 88 Slide 89
010 011
110 111
Slide 92 Slide 93
4 3 4 3
1 1
5 2 5 2
4 3 1 4 3
L=14 (-) 5 2 L=16 (-)
Melhor vizinho
L=17 (=) 4 3
Slide 94 Slide 95
Busca Local Busca Local: problema de minimização
Questões fundamentais: inicie com uma solução S
1. Representação da solução faça
2. Definição da vizinhança melhora ← 0
3. Estratégia de busca na vizinhança S’ ← seleciona
4. Complexidade de cada iteração: ∆custo ← custo(S’) -custo(S)
a) Proporcional ao tamanho da vizinhança
se ∆custo < 0 então
b) Eficiência depende da forma como é calculada a variação
da função objetivo para cada solução vizinha: algoritmos S ← S’
eficientes são capazes de recalcular as variações de modo melhora ←1
a atualizá-las quando a solução corrente se modifica,
evitando cálculos repetitivos e desnecessários da função enquanto (melhora)
objetivo.
Slide 96 Slide 97
Slide 98 Slide 99
Busca Local - Prob. da Mochila Busca Local - Prob. da Mochila
• (H1) • (H2)
* Iniciar com uma solução (aleatória ou com um * Iniciar com uma solução (aleatória ou com um
método de construção). método de construção).
* retirar da mochila o item que possui o menor * colocar na mochila o item com maior custo que
custo.
esteja fora da mochila.
* colocar na mochila o item que possui o maior
custo, tal que * Se infactível, então retire os elementos com
• melhore o valor da função objetivo. menor custo até que a solução fique factível.
• não torne a solução infactível. * Termine quando não houver mais movimentos
* Termine quando não houver mais movimentos ou um determinado número fixo de
ou um determinado número fixo de movimentos tenha sido realizado
movimentos tenha sido realizado
Slide 100 Slide 101
Tarefas Comentários
• Ler o primeiro capítulo de Reeves (1993) • Representação da Solução?
• Faça uma pesquisa na internet com algum
buscador • Vizinhança? Movimento?
• heuristics, metaheuristics • Funcionamento da Heurística de Busca Local?
• simulated annealing * Solução Inicial?
• tabu search
* Como será realizada a busca?
• genetic algorithms
• memetic algorithms * Critério de parada?
• GRASP • Respostas: Pensar e Realizar Testes
• Implementar uma heurística de busca local Computacionais!!!!
para o PCV
Slide 106 Slide 107
Meta-heurística: Simulated Annealing
SIMULATED ANNEALING
• É uma analogia entre um processo de mecânica
estatística e a solução de um problema de
Bibliografia Básica
otimização combinatória
• O termo annealing:
C. R. Reeves, Modern Heuristic Techniques for
Combinatorial Problems, Blackwell, 1993. * refere-se a um processo térmico que começa pela
liquidificação de um cristal a uma alta temperatura
A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M. * seguido pela lenta e gradativa diminuição de sua
Laguna, P. Moscato e F. T. Tseng, Optimización Heurística
Y Redes Neurolales, Editorial Paraninfo, Espanha, 1996.
temperatura
* até que o ponto de solidificação seja atingido
* quando o sistema atinge um estado de energia mínima
Slide 109
Slide 112
p ( ∆E ) = e − ∆E / T Slide 113
Probabilidade X Temperatura
Simulated Annealing
• A estratégia que é utilizada no simulated
annealing é: 1,2
local. 0,6
-T
• (1) aceita T
soluções T ruins”
ou “muito boas” ou “pouco
• (2) rejeita soluções “muito ruins”.
Slide 122 Slide 123
Desvantagens Comentários
• Apesar de convergir para a solução ótima, a • Pela simplicidade de implementação, pode ser
velocidade de redução de temperatura exigida implica utilizado em conjunto com alguma outra
em visitar um número exponencial de soluções. heurística ou outra meta-heurística.
• Em princípio é necessário um processo lento de
redução da temperatura e isso resulta em tempos de
• Existem implementações, onde apenas a idéia
processamento elevados. de simulated annealing é utilizado para
• Pouco “inteligente”, pois utiliza como informação do melhorar o desempenho de outra
problema somente a variação do valor da função heurística/metaheurística, como por exemplo,
objetivo. embutir a estratégia de aceitar soluções ruins
• Muitos parâmetros para calibrar. com certa probabilidade.
Vizinhança/Espaço de Busca
Exemplo - sequenciamento
1243-9 1342-16
• S = (4 3 2 1), atraso = 9
1234-15 1324-18
i j valor atraso 2143-10 2134-16 3124-23 3142-21
movimento 2314-21 3214-21
4 3 +6 15
2341-17 3241-17
3 2 +2 11
2 1 +6 15 2431-11 3421-15
4231-11 4321-9
2413-8 4213-8 4312-15 3412-17
• Ótimo Local!!! 4123-5 4132-9
Slide 134
1423-5 1432-9 Slide 135
Vizinhança/Espaço de Busca
Simulated Annealing
1243-9 1342-16
1234-15 1324-18
• Poderíamos aplicar nessa heurística de busca
2143-10 2134-16 3124-23 3142-21
local, simulated annealing (SA).
2314-21 3214-21
2341-17 3241-17 • Com SA sairíamos do ótimo local, pois
2431-11 3421-15 movimentos que permitem soluções ruins são
aceitos, mas com certa probabilidade.
4231-11 4321-9
2413-8 4213-8 4312-15 3412-17
4123-5 4132-9
Vizinhança/Espaço de Busca
Exemplo - sequenciamento
1243-9 1342-16
• S = (1 4 2 3), atraso =5
1234-15 1324-18
i j valor atraso 2143-10 2134-16 3124-23 3142-21
movimento 2314-21 3214-21
1 4 0 5
2341-17 3241-17
4 2 +4 9
2 3 +4 9 2431-11 3421-15
4231-11 4321-9
• O Algoritmo entra em ciclagem!!
2413-8 4213-8 4312-15 3412-17
• Logo: S = (1 4 2 3) ou S = (4 1 2 3) seria as 4123-5 4132-9
soluções encontradas. Neste caso, soluções
1423-5 1432-9
ótimas Slide 142 Slide 143
Exercício Comentários
• A implementação deve utilizar o procedimento de
• Acrecentar ao programa um procedimento de
busca local acrescido das características da SA…
melhoria da solução utilizando Simulated
isso permite uma comparação mais justa
Annealing
• Implementar mecanismos de comparação entre as
soluções obtidas por diferentes procedimentos
heurísticos
BUSCA TABU
* S = (1 4 3 2), atraso = 9
• S = (1 4 2 3), atraso = 5
• S = (4 2 1 3), atraso = 8
• TABU = {(2,3), (1,4),(2,1)}, atraso* = 5 • S = (2 4 1 3), atraso = 8
Slide 176 • TABU = {(2,3), (1,4),(2,1),(2,4)}, atraso* = Slide
5 177
(1,2) 4312
Slide 182 (1,3) 4132 Slide 183
Memória de longo prazo - medida
Exemplo - scheduling
de freqüência
• Supondo o denominador • construímos a matriz e o vetor utilizando todas
como sendo o número de as soluções durante a busca.
soluções = 10 • Poderíamos também utilizar um subgrupo de
matriz residência soluções
residência
de todas as soluções
0.2 0.2 0.3 0.3 * soluções de elite
0.2 0.1 0.4 0.3 * em heurísticas composta por diferentes
0.1 0.2 0.3 0.4 procedimentos, poderíamos construir tais matrizes
0.5 0.5 0.0 0.0 utilizando apenas soluções produzidas por
transição específicos procedimentos.
0.5 0.6 0.4 0.4
Tarefa Tarefa
• Implementar Busca Tabu para o problema do • A cada novo elemento implementado façam
caixeiro viajante com pelo menos as seguintes testes para analisar o seu efeito.
estratégias:
• Pensem que vocês vão implementar pelo
* curto prazo
menos 4 tipos de meta-heurísticas onde cada
• atributo (teste pelo menos 2 tipos)
tamanho da lista (testes) uma delas terá várias versões
critério de aspiração.
* longo prazo • Vocês precisarão fazer uma prova e entregar
• pelo menos uma medida de freqüência (por exemplo, um “artigo” com as implementações, testes,
residência das soluções de elite) para implementação de análises e conclusões
pelo menos uma estratégia de intensificação e uma de
diversificação. Slide 194 Slide 195
ALGORITMOS GENÉTICOS
Algoritmos • A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M.
Genéticos
Laguna, P. Moscato e F. T. Tseng, Optimización
Heurística Y Redes Neurolales, Editorial Paraninfo,
Espanha, 1996.
Evolução Evolução
• população → grupo de organismos vivos • características hereditárias são herdadas →
cruzamento entre os cromossomos
• maior capacidade de adaptação → maior
chance de sobreviver • cromossomos contêm informações
denominados genes, que por sua vez são
• os sobreviventes vão se reproduzir → gerando compostos por valores chamados de alelos.
uma nova população
• genes podem se alterar de uma geração para
outra → mutação
Slide 198 Slide 199
Evolução x Problemas de otimização Glossário
• Introduzido por Holland, 1973 • indivíduo (genotype, cromossomo, estrutura, string,
etc.)
• princípio → sobrevivência do mais capaz * cadeia de genes que codifica uma possível
configuração do problema.
• Inicialmente, algoritmos simples, mas * codificação de uma solução (existem várias maneiras
de codificar uma mesma solução).
conseguiam boas soluções para problemas
considerados difíceis naquela época.
Glossário Glossário
• gene (caracter)
* representa uma certa característica da solução- • população
cromossomo * um conjunto de indivíduos (cromossomos)
representando os atuais pontos que fazem parte da
• allele busca no espaço de soluções.
* um particular estado de um gene
• geração
• locus * uma maneira de identificar diferentes populações
no processo de evolução.
* posição de um gene em um cromossomo
• mutação
* pequena perturbação aleatória que modifica um
cromossomo.
Características Características
• os cromossomos que codificam indivíduos • a evolução não tem memória
mais “capazes”, se reproduzem com maior
probabilidade • utiliza um grupo de soluções
• a mutação produz filhos com cromossomos • não partem de uma solução e uma aplicação
diferentes dos pais. posterior de movimentos (simulated annealing
e busca tabu)
Operadores de reprodução
Reprodução: escolha dos pais
(crossover)
• aleatória
• one-point crossover
• aleatória relacionada com o valor de fitness
(veremos no exemplo) pai1 (0 1 0 1 1 0 1 0 0) pai2 (1 1 0 0 1 0 0 1 0)
Operador de reprodução
Operador de mutação
(crossover)
• Exemplos para representação não binária • Troque o valor de cada bit com uma
probabilidade de 10%.
(1 2 4 6 3 5) (2 3 4 1 6 5) ( 1 0 1 0 1 1)
(x x 4 x x 5) (1 0 1 0 0 1)
Exemplo 1 Exemplo 1
• Problema: max f(x) = x2, x ∈ [0,31] e • População inicial gerada:
inteiro
x f(x)
A1 → 0 1 1 0 1 13 169
• representação → cada inteiro como um A2 → 1 1 0 0 0 24 576 Pai 1
cromossomo de 5 bits
A3 → 0 1 0 0 0 8 64
0 = (0,0,0,0,0)
A4 → 1 0 0 1 1 19 361 Pai 2
31 = (1,1,1,1,1)
• população inicial → aleatória • Escolha dos pais com maior fitness
• população de tamanho 4 • geração de 1 filho, que substituirá o indivíduo com
menor fitness
• função de fitness → f(x)
Slide 222 Slide 223
Exemplo 1 Exemplo 1
x f(x) x f(x)
Pai1 = A2 →11000 24 576 Pai1 = A2 →11000 24 576
Pai2 = A4 →10011 19 361 Pai2 = A3 →11001 25 625
Filho →11011 Filho →11001
mutação → 1 1 0 0 1 25 625 mutação → 1 1 0 1 1 27 729
x f(x) x f(x)
A1 → 0 1 1 0 1 13 169 A1 → 1 1 0 1 1 27 729
A2 → 1 1 0 0 0 24 576 A2 → 1 1 0 0 0 24 576 Pai 1
A3 → 1 1 0 0 1 25 625 Pai 2 A3 → 1 1 0 0 1 25 625 Pai 2
A4 → 1 0 0 1 1 19 361 Pai 1
A4 → 1 0 0 1 1 19 361