Exemplo 1
# // Classic.walk
#
# Repete
#
# {
#
# 1a rua à esquerda
# 2a rua à direita
# 2a rua à esquerda
#
# }
Esse exemplo de .walk demonstra o algoritmo de psicogeografia generativa clássico - um
haiku de exploração urbana - escrito na forma de uma pseudo-linguagem de programação
de computadores.
Exemplo 2
# // T = Tempo (em minutos)
# // E = Exportacódigo
# // C = Contador
#
#
# E = 2
# C = 0
#
# Repete
#
# {
#
# X = E
#
# 1a rua à esquerda
# 2a rua à direita
# Xa rua à esquerda #
# Quando 2 agentes se encontram
#
# {
#
# Trocar E
#
# C + 1
#
# }
#
# Contar T 0 a 60
# If T = 60
#
# {
#
# Abortar para Raiz
# Print C to
psicogeografia@yahoo.com.br #
# }
#
# }
Ou, em bom português:
"Seu código a ser exportado é 2.
Repita as seguintes instruções: ande à frente e vire a primeira à esquerda, a Segunda à
direita e tome a rua à esquerda que é indicada pelo seu código a ser exportado
(Exportacódigo). Todas as vezes que você encontrar outro psicogeógrafo, vocês irão trocar
de códigos a serem exportados. Esse novo código mudará o terceiro passo do algoritmo
básico. Registre o número de vezes que você exporta o código.
Depois de uma hora de deambulações, retorne ao ponto de encontro.
Quando possível, envie o número de encontros para
psicogeografia@yahoo.com.br" Para uma introdução, o bom português serve. Entretanto, quando (como nos exemplos
que se seguirão) as funções do aplicativo tiverem de tornar-se mais complicadas, uma
explicação verbal irá requerir muito mais texto de uma natureza muito mais densa, já que
as instruções tiverem de ser interpretadas de somente uma forma. A lógica simbólica serve
a esse objetivo de forma muito melhor do que qualquer linguagem natural.
Toda a ação acontece entre os {} que seguem o commando Repete. Perceba também que
nesse aplicativo, agents individuais participando do experimento estão conectados através
de troca de E (código a ser exportado). Essa característica não estava incluída no primeiro
exemplo, mas é necessária para a criação de um computador psicogeográfico: um grupo
interconectado de pequenos aplicativos, chamado software .walk (ou walkware), que roda
em um hardware, as ruas da cidade.
Exemplo 3
# // Fibonacci.walk
# // 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
#
# Z = 1
# Z(x) = 0
#
# Repete
#
# {
# Z Esquerda ou direita {aleatório}
#
# Z(y) = Z
# Z = Z + Z(x)
# Z(x) = Z(y)
#
# }
No exemplo 3, começamos a ver o poder de escrever as regras para deambulações
algorítimicas de forma simbólica ao invés de em português claro.
Esse aplicativo difere consideravelmente dos dois exemplos acima;
Primeiro: não há uma sucessão de "viradas"; há somente uma "virada", que, por causa do
comando {aleatório}, pode ser à esquerda ou à direita, conforme queira o agente.
Assim, quando Z(x) = 5, o psicogeógrafo vira na Quinta rua. Quando a rua tiver duas
direções, tome aquela que preferir.
Segundo: esse aplicativo computa a sua próxima virada. No exemplo 3, isso acontece de
acordo com a série de Fibonacci (1, 1, 3, 5, 8, 13, 21, 34, 55..., ou seja, uma P.A. gerada
pela fórmula an=an-1+an-2 ). Essa série é infinita, e seguir esse aplicativo .walk a suas
conclusões lógicas é surrealista, se não absurdo.
Exemplo 4
# // Divide.walk
# // 8/2
# // C = Contador
#
# A = 8
# B = 2
# C = 0
# E = B
#
# Repete
#
# {
#
# If E = A
# {
# Abortar
# Print C to
psicogeografia@yahoo.com.br # }
#
# C = (C+1)
#
# C rua à esquerda ou à direita {aleatório}
#
# E = (E+B)
# }
Todos sabem de cor que 8 dividido por 2 dá 4, mas só quem gosta muito de matemática
pode dividir 19 por 6 de cabeça e chegar ao resultado correto de 3,1666... Com o
aplicativo que se segue você pode fazer exatamente esse tipo de cálculo. Isso significa,
sim, a introdução de casas decimais.
No exemplo 4, C (contador) conta o resultado da divisão, e também determina o próximo
passo. Todo tipo de variável poderia ser usado para determinar isso, mas usar um
contador torna a conta mais fácil de lembrar – especialmente quando a conta se torna
mais complicada.
Exemplo 5
# // Divide.walk
# // 19/6
# // C = Contador
#
# A = 19
# B = 6
# C = 0
# Cdiv = 0
# Q = 1
# E = B
# Vira_X = 0
#
# Repete
#
# {
#
# If E > A
# {
# E = (E-B)
# A = (A-E)
# A = (A*10)
# Q = (Q*10)
# E = B
# Vira_X = 0
# }
#
# Cdiv = 1/Q
# C = (C+Cdiv)
# Vira_X = Vira_X + (Cdiv*Q)
#
# If E = A
# {
# Abort
# Print C to
psicogeografia@yahoo.com.br # }
#
# Vira_X rua à esquerda ou direita {aleatório}
#
# E = (E+B)
#
# }
A deriva, nesse caso, significa tomar uma seqüência de ações, primeiro a primeira à
terceira à esquerda ou direita, então a primeira à esquerda ou direita, e então seqüências
infinitas da primeira à sexta à esquerda ou à direita. A vírgula vem sempre antes da
primeira seqüência de primeira à sexta à esquerda ou direita.
Lembre-se que a sintaxe desse .walk não é fixa. Pode-se escrever aplicativos de qualquer
espécie; qualquer linguagem de programação pode ser copiada, ou inventada. Vale a pena
pensar numa forma de formular regras que não lembre nenhuma linguagem usada nos
computadores ordinários, sublinhando o fato de que o .walk não é uma mera cria de algo
que já existe mas um novo campo de pesquisa pseudo-científica.
Esse ultimo aplicativo mostra como a atividade pedestre pode ser usada como um
computador não-elétrico, capaz de resolver cálculos difíceis sem requerir grandes
habilidades matemáticas do agente. O .walk foi criado para ser não só independente de
plataforma, como também capaz de ser executado por qualquer um. Ao mesmo tempo, o
walkware ainda é capaz de produzir rotas não-intuitivas para explorações urbanas (que é,
na verdade, sua função principal). Conectando aplicativos diferentes, todos executando
suas próprias regras, fazendo as computações no meio tempo, um computador
psicogeográfico gigantesco emerge.
Os primeiros experimentos na executação do software .walk foram feitos com variações do
exemplo 2. O principal objetivo disso era descobrir a freqüência em que os agents
cruzavam-se durante um experimento. Quanto maior a freqüência, mais facilmente a
informação gerada por agentes individuais se espalha pela rede; isso adiciona velocidade
ao poder de processamento, que, por si só é correlato ao número de agentes envolvidos
em qualquer momento.
A velocidade dos psicogeógrafos é outro fator crucial para a velocidade dos cálculos.
Experimentos passados determinaram que, em grupos pequenos (8 aplicativos
simultaneous ativos em Rotterdam [Nov. 2002], 6 em Londres [Dez. 2002]), o número de
encontros que ocorrem em uma hora é relativamente baixo: somente uma ou duas vezes,
em geral somente uma ou até mesmo nenhuma. Isso pede que aplicativos .walk separados
não computem nada por si só, mas juntam e transferem dados através dos outros nós do
computador psicogeográfico. Isso pode ser feito definindo regras que respondam ao
movimento de outros agentes. Já que os experimentos anteriores demonstraram que
caminhadas psicogeográficas algorítimicas tendem a não levar ao cruzamento de areas
grandes, mas resultam em movimentos semi-circulares à volta de um tipo esquizóide de
eixo imaginário, esses agentes provavelmente deverão aplicar táticas de paciência para
localizar os outros.
A partir dessas informações, o .walk pode ser usado para construir walkwares como bases
de dados peripatéticos, memória artificial psicogeográfica, ou cálculos .walk que podem
alimentar em softwares que produzem gráficos, sons ou comportamentos. Tutoriais futuros
irão delinear os conceitos por trás desses exemplos de usos possíveis de .walk.
-----
última atualização 17-05-2003
.Walk walkware é copyleft
Associação Psicogeográfica de Bauru
psicogeografia@yahoo.com.br Social Fiction Generative Psychogeography
dotwalk@socialfiction.org 