[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [obm-l] Um Algoritmo Legal
Ola Duda,
Tudo Legal ?
A sua solucao e um otimo PRANAYAMA. Todavia, antes do otimo PRANAYAMA e
necessario que se faca corretamente o ASANA ...
Quero dizer que quanto voce diz :
>Construa uma outra matriz X NxP com um 1 na mesma posição onde a >minhoca
>está e 0 em todas as outras posições, e uma matriz Y NxP toda >zerada.
Voce esta implicitamente pressupondo que a posicao da minhoca e um dos dados
de entrada, o que nao esta correto. Em verdade, na lista italiana onde o
problema foi originalmente proposto, o enfoque era justamente descobrir uma
forma diferente e inteligente de encontrar a minhoca, pois partindo-se da
posicao dela ha algoritmos inteligentes e otimos de se encontrar o menor
caminho de saida.
Assim, a parte de maior interesse e justamente o que voce nao fez : Encontre
uma forma inteligente - tao rapida quanto possivel - de encontrar a posicao
inicial da minhoca.
A imensa maioria das solucoes usavam grafos e pesquisa em largura, dando
pouca atencao ao problema de se encontrar a posicao da minhoca. Era
previsivel. Todavia, o autor do problema escreve claramente : O algoritmo e
de IA.
Pelo pouco que conheco de IA, nao ha uma unica padronizacao nesta area ...
vigoram aqui a criatividade e a imaginacao. Essa area e a Teoria da
Computacao sao realmente bonitas e acredito que devem despertar o interesse
de qualquer Matematico.
Um abraco
Paulo Santa Rita
6,1239,050702
>From: "Eduardo Casagrande Stabel" <dudasta@terra.com.br>
>Reply-To: obm-l@mat.puc-rio.br
>To: <obm-l@mat.puc-rio.br>
>Subject: Re: [obm-l] Um Algoritmo Legal
>Date: Thu, 4 Jul 2002 19:57:14 -0300
>
>Oi Paulo,
>
>talvez não seja o melhor algoritmo, mas uma idéia simples é a seguinte:
>
>*****
>Construa uma outra matriz X NxP com um 1 na mesma posição onde a minhoca
>está e 0 em todas as outras posições, e uma matriz Y NxP toda zerada.
>
>INICIO
>
>Para cada 1 presente na matriz X verifique na vizinhança dos elementos de
>LAB onde existe 1 e marque esses elementos na matriz Y (NxP).
>
>(A matriz Y marca todos os movimentos possíveis, sem morte, da minhoca
>nesta
>rodada)
>
>Acrescente à X os elementos de Y que são 1 e que em X eram 0.
>
>Se as matrizes X e Y forem iguais o programa terminha e devolve "0".
>
>Se a matriz X tiver algum elemento em sua borda igual a 1 então o programa
>termina e devolve o número de vezes que executou INICIO.
>
>Zere a matriz Y e repita o procedimento desde INICIO.
>*****
>
>Por que o programa funciona? No caso de Y e X serem iguais, é claro que
>todo
>movimento a partir das casas com 1 em X só levam a casas que já eram 1 em
>X,
>portanto não se pode fugir das casas de X, e portanto se está preso no
>labirinto.
>
>No caso de haver uma saída do labirinto, na vez K que passamos em INICIO Y
>mostra todas as possibilidades de a minhoca estar após o K movimentos,
>TODAS
>as possibilidades, inclusive os K primeiros movimentos do caminho ideal
>(que
>faz sair do labirinto na quantidade mínima de movimentos). Segue que se for
>possível sair do labirinto em K movimentos, na K-ésima vez que passamos por
>INICIO a matriz vai incluir um 1 na borda.
>
>Está bom?
>
>Eduardo Casagrande Stabel.
>Porto Alegre, RS.
>
>
>From: "Paulo Santa Rita" <p_ssr@hotmail.com>
> > Ola Pessoal,
> >
> > Segue abaixo a traducao de um problema de computacao que recebi de outra
> > lista e que achei interessante e digno de figurar nesta nostra lista
>OBM-L.
> >
> > O Algoritmo e de IA.
> >
> > Uma minhoca esta em uma celula de um labirinto quadriculado NxP ( N
>linhas,
> > P colunas ). Ela almeja sair do labirinto. Todavia, sabe-se que nalgumas
> > celulas ha brasa, noutras, terra. A minhoca se movimenta como o rei em
>um
> > tabuleiro de xadrex.
> >
> > Os dados de entrada sao : N ,P e LAB(N,P).
> >
> > LAB(N,P) uma matriz da forma :
> >
> > 0 (zero) -> casa com brasa
> > 1 (um) -> casa com terra
> > 2 (dois) -> a minhoca
> >
> > Exemplo :
> >
> > 101010101010
> > 001100110001
> > 111121011011
> > 100111111101
> > 111110001111
> >
> > O programa ( function ) deve devolver :
> >
> > 1) 0 ( zero ) se nao houver um caminho de saida
> > 2) N ( numero inteiro positivo ) se houver. Neste caso N e o menor
>numero
>de
> > passos que a minhoca deve dar para sair do labirinto sem se queimar.
> >
> > O programa pode estar em qualquer linguagem padrao ou em pseudo-codigo.
> >
> > OBS : O tempo de resposta ( inteligencia do algoritmo ) sera o principal
> > fator na classifucacao final dos algoritmos.
> >
> > Um Abraco a Todos
> > Paulo Santa Rita
> > 5,1709,040702
> >
> >
> >
> >
> >
> >
>=========================================================================
> > Instruções para entrar na lista, sair da lista e usar a lista em
> > http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
> > O administrador desta lista é <nicolau@mat.puc-rio.br>
> >
>=========================================================================
> >
> >
>
>=========================================================================
>Instruções para entrar na lista, sair da lista e usar a lista em
>http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
>O administrador desta lista é <nicolau@mat.puc-rio.br>
>=========================================================================
=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
O administrador desta lista é <nicolau@mat.puc-rio.br>
=========================================================================