sábado, 24 de novembro de 2007

Regresso ao passado :)

Já estou á 20 horas acordado, são quatro da manha e entrei no meu quarto às 18 para resolver o algoritimo iterativo. Gastei perto de cinco folhas com fluxogramas, que resultavam sp em ciclos infinitos.
Finalmente, optei por fazer as coisas passo por passo(voltei à fase de criação de ramificações de nós). e registei esses passos como se estivesse numa maquina URM e EUREKA!!! a solução para este problema formou-se à minha frente com 6 estados !!! BRUTALISSIMO. Pronto, estou a sensacionalizar um bocado a solução, mas os passos vitais reduzem-se a 6 :D

Vou tentar mostrar muito sumariamente através de um cenário para um Array de 4 casas com uma jogada efectuada.

quadro[1,0,0,0], com um array B[x,3,2,1] com o numero de filhos de cada nó por nivel, e um array A[x,0,0,0] cópia do array A mas com todos elementos a 0.

os estágios totais resultantes deste cenário seriam:
1 - [1,0,0,0]----------------------A[1,0,0,0]
2 - [1,2,0,0]----------------------A[1,1,0,0]
3 - [1,2,1,0]----------------------A[1,1,1,0]
4 - [1,2,1,2]----------------------A[1,1,1,1]
5 - [1,2,2,0]----------------------A[1,1,2,0]
6 - [1,2,2,1]----------------------A[1,1,2,1]
7 - [1,0,2,0]----------------------A[1,2,0,0]
8 - [1,1,2,0]----------------------A[1,2,1,0]
9 - [1,1,2,2]----------------------A[1,2,1,1]
10 - [1,0,2,1]----------------------A[1,2,2,0]
11 - [1,2,2,1]----------------------A[1,2,2,1]
12 - [1,0,0,2]----------------------A[1,3,0,0]
13 - [1,1,0,2]----------------------A[1,3,1,0]
14 - [1,1,2,2]----------------------A[1,3,1,1]
15 - [1,0,1,2]----------------------A[1,3,2,0]
16 - [1,2,1,2]----------------------A[1,3,2,1]

Com as seguintes acções por iteração
1 -
2 - marca, avança
3 - marca, avança
4 - marca, avança
5 - Limpa, Recua, Marca, Avança
6 - marca, avança
7 - Limpa, Recua, Limpa, Recua, Marca, Avança
8 - marca, avança
9 - marca, avança
10- Limpa, Recua, Marca, Avança
11- marca, avança
12 -Limpa, Recua, Limpa, Recua, Marca, Avança
13 -marca, avança
14 -marca, avança
15 -Limpa, Recua, Marca, Avança
16 - marca, avança

Basicamente o que acontece, é que a árvore é construída na forma (Norte->Sul) - (Oeste - Este).


Com o seguinte esquema de estados / fluxograma



Fica assim registada a nova estratégia para o algoritmo recursivo. Infelizmente tenho de estudar amanha pq as frequencias estão aí à porta, não posso adiantar muito amanha :(

Abraço

Sem comentários: