novembro 08, 2003
Prefácio à história da máquina de Turing

Um destes dias vou começar a contar a história da máquina de Turing. A Valerie terá algo a dizer sobre isso, mas só lá para o fim. As coisas começam por um lado bem mais rudimentar. Mas as coisas rudimentares têm interesse quando nelas já germina o desafio. Isto é história que nos explicará uma parte importante do sentido do século XX.
Publicado por Porfírio Silva em
02:47 PM
|
Comentários (2)
novembro 23, 2003
Pequena história da Máquina de Turing (1)
EU PROMETI CONTAR A HISTÓRIA DA MÁQUINA DE TURING! E JÁ HÁ QUEM SE TENHA QUEIXADO DE QUE NUNCA MAIS COMEÇAVA...
AVISO AO NAVEGANTE DESPREVENIDO: O texto que se segue NÃO tem palavreado técnico. Quem saiba um pouco de português não precisará sequer de um dicionário. MAS é preciso um bocadinho de atenção para o compreender. E talvez também um bocadinho de tempo. Com uma contrapartida saborosa: quem se permitir esse pequeno investimento compreenderá mais cabalmente os episódios seguintes desta história. Críticas serão acolhidas com gratidão: tanto quanto ao conteúdo como quanto à clareza da apresentação.
Qual é o interesse de saber o que é uma máquina de Turing?
O computador digital é um ícone da cultura contemporânea. Mais do que tudo, porque correntes pesadas do pensamento ocidental concebe(ra)m a "natureza humana" como racionalidade de um certo tipo. Para essas correntes, o humano caracteriza-se fundamentalmente pela inteligência e a inteligência corresponde essencialmente a processos computacionais. Numa versão mais específica, o que importa é o programa (software); desde que ele corra, a base material (o hardware) é de somenos importância.
Ora, um aspecto interessante desta questão é que essa visão das coisas não foi inspirada pela existência de computadores: ela é historicamente anterior ao aparecimento dos modernos computadores digitais. A máquina de Turing (MdT) tornou-se uma ferramenta para pensar a razão à luz da ideia de um autómato digital que não depende das minudências da implementação física - e isso antes de virem ao mundo os hoje banais computadores digitais.
Uma MdT é um computador... abstracto !
A MdT foi concebida pelo matemático britânico Alan Turing (1912-1954), muitos anos antes de existirem os modernos computadores digitais (o artigo de referência foi publicado em 1936). Turing também se envolveu na construção de máquinas para quebrar os códigos secretos das comunicações alemãs durante a II Guerra Mundial.
Num sentido preciso, uma MdT é um modelo abstracto de um computador, que se atém apenas aos aspectos lógicos do seu funcionamento e não à sua implementação física. Numa MdT pode modelizar-se qualquer computador digital. Entretanto, é mais fácil explicar o que é uma MdT apresentando-a como uma máquina realizada fisicamente.
A componente física da máquina é muito simples:
- uma fita, dividida em células ou casas, estando inscrito em cada célula um símbolo;
- uma cabeça de leitura e escrita, que se move ao longo da fita (esquerda ou direita) parando em cada casa e procedendo do seguinte modo: lê o conteúdo da célula, apaga o símbolo que lá está e escreve um novo (pode reescrever o mesmo), executa um dos movimentos possíveis.

Como funciona uma MdT?
A MdT funciona seguindo instruções, que especificam qual a acção que a máquina deve executar em determinada situação. Há muitas maneiras possíveis de conceber o modo concreto de funcionamento de uma MdT, e portanto de estruturar as suas instruções. Contudo, para efeitos de ilustração, uma instrução típica tem o seguinte formato:
instrução-1, 1, 0, E , instrução-2 .
Isto quer dizer: esta é a instrução-1; se o símbolo na célula for 1, executa esta instrução como segue; escreve o símbolo 0; move para a esquerda; passa para a instrução-2. O conjunto de instruções é o programada máquina. O programa está na "memória" da máquina. A máquina apresenta um resultado quando pára e isso envolve um dos aspectos práticos a definir quando se define uma MdT. No exemplo que apresentaremos abaixo, o resultado é representado por uma sequência de símbolos 1 que começa na célula em que a cabeça parou e continua para a direita (até à primeira interrupção, o primeiro 0). Se uma MdT nunca pára quando está a executar um programa, isso pode dever-se a um defeito do programa ou ao facto de não ser possível uma decisão (pelo menos num tempo finito) do problema que era suposto o programa resolver.
Em geral, uma MdT é determinista, isto é: para cada situação, há uma e só uma instrução que a máquina tem de seguir.
Para definir uma MdT é preciso definir:
- o alfabeto: o conjunto finito de símbolos com que a máquina trabalha;
- o conjunto dos movimentos possíveis da cabeça: mover-se para a esquerda, mover-se para a direita, permanecer na mesma posição
- o conjunto de estados em que a máquina pode ser colocada (o conteúdo da memória).
Quanto ao alfabeto, muitas opções são possíveis. Aqui, vamos considerar que ele é composto por 0 (zeros) e 1 (uns). Temos sempre que dar uma interpretação aos símbolos. No exemplo que a seguir daremos, os 1 e 0 não terão o significado que têm nos modernos computadores digitais, que usam numeração binária. Aqui usaremos uma numeração unária: um 4 em numeração decimal será representado por 1111. O zero significa apenas "ausência de uns".
A fita da máquina supõe-se ser infinita. No entanto, basta que nunca falte fita para a operação e podemos dispensar na prática a infinitude da fita.
Um exemplo muito concreto: uma máquina de somar
Vamos agora dar um exemplo de uma MdT que adiciona dois números inteiros positivos. As instruções desta máquina são simplificadas, porque só mandam escrever um símbolo ou fazer um movimento (a mesma instrução nunca pede as duas coisas). Normalmente, há duas versões de cada instrução: uma para o caso em que se leia um 0 e outra para o caso em que se leia um 1 na célula em observação. A paragem da máquina é aqui determinada por uma instrução que só contempla um dos símbolos (quando a máquina parar, teremos o resultado).
Neste exemplo, trata-se de adicionar 1 e 2 (representados por 1 e 11 em numeração unária).
O programa para somar é o seguinte:
instrução1, 1 , D , instrução1
instrução1, 0 , 1 , instrução2
instrução2, 1 , E , instrução2
instrução2, 1 , E , instrução2
instrução2, 0 , D , instrução3
instrução3, 1 , 0 , instrução3
instrução3, 0 , D , instrução4
instrução4, 0 , D , instrução4
Damos de seguida o comportamento da máquina a seguir este programa. A fita é representada por :::::::::::::::::::::::::: e sobre ela inscrevem-se os símbolos (0 e 1). A posição da cabeça, com o conteúdo da célula que está a ser observada, é assinalada por [>1<] e [>0<]. O processamento começa pela instrução1. Como o conteúdo da célula que a máquina lê no estado inicial é 1, é a versão correspondente da instrução1 que é executada inicialmente. O avançar do programa é indicado passo a passo.
| inst1, 1 , D , inst1---> | | :::0::::: | [>1<]::: | :::0:::::::: | 1::::: | 1::::: | 0:: |
| inst1, 0 , 1 , inst2---> | | :::0::::: | :::1:::::: | [>0<]::::: | 1::::: | 1::::: | 0:: |
| inst2, 1 , E , inst2---> | | :::0::::: | :::1:::::: | [>1<]::::: | 1::::: | 1::::: | 0:: |
| inst2, 1 , E , inst2---> | | :::0::::: | [>1<]::: | :::1:::::::: | 1::::: | 1::::: | 0:: |
| inst2, 0 , D , inst3---> | | [>0<]::: | :::1:::::: | :::1:::::::: | 1::::: | 1::::: | 0:: |
| inst3, 1 , 0 , inst3---> | | :::0::::: | [>1<]::: | :::1:::::::: | 1::::: | 1::::: | 0:: |
| inst3, 0 , D , inst4---> | | :::0::::: | [>0<]::: | :::1:::::::: | 1::::: | 1::::: | 0:: |
| inst4, 0 , D , inst4---> | | :::0::::: | :::0:::::: | [>1<]::::: | 1::::: | 1::::: | 0:: |
A situação final é esta:

Como é que este programa em concreto faz o trabalho? Verifique-se:
(i) começa por procurar o 0 que separa as duas parcelas e, substituindo o 0 por 1, junta as duas parcelas;
(ii) depois procura a posição onde começa a primeira parcela (encontra o 0 mais à esquerda e avança uma casa para a direita);
(iii) substitui o primeiro 1 da primeira parcela por um 0, compensando assim o 1 que introduzira no lugar do separador entre as duas parcelas;
(iv) pára, indicando que na sequência ininterrupta de 111 da cabeça para a direita está o resultado.
Note-se que, com este simples programa, a máquina somaria com a mesma correcção quaisquer dois números inteiros positivos. E isso funcionando puramente como um autómato, sem que a máquina tenha qualquer noção do que seja "somar"!
Esta história vai continuar, aqui no blog. Vamos fazer aqui uma viagem por certas paisagens da cultura do século XX... e talvez também do século XXI. Mas sem pressas, intercalando outras coisas (que, afinal, se revelarão perfeitamente relacionadas).
------------------------------------------------------------
Querendo experimentar tudo isto, pode descarregar um pequeno programa que simula uma máquina de Turing. (Inclui manual de instruções e exemplos.)
Ir buscar programa Turingx.zip (50KB)
O artigo original de Turing pode ser lido aqui , mas é preferível começar por uma introdução séria e concisa (de onde foi tirado o "programa de somar") como esta . A menos que se prefira dar uma espreitadela ao artigo "máquina de Turing" em BRANQUINHO e MURCHO (orgs.), Enciclopédia de Termos Lógico-Filosóficos, da Gradiva.
------------------------------------------------------------
APÊNDICE
Na mesma MdT apresentada acima, o seguinte programa multiplica por dois qualquer inteiro positivo:
instrução1, 1 , E ,instrução2
instrução2, 0 , E ,instrução3
instrução2, 1 , E ,instrução3
instrução3, 0 , 1 ,instrução3
instrução3, 1 , E ,instrução4
instrução4, 0 , 1 ,instrução4
instrução4, 1 , D ,instrução5
instrução5, 0 , D ,instrução6
instrução5, 1 , D ,instrução5
instrução6, 0 , E ,instrução7
instrução6, 1 , D ,instrução6
instrução7, 0 , E ,instrução8
instrução7, 1 , 0 ,instrução7
instrução8, 0 , E ,instrução11
instrução8, 1 , E ,instrução9
instrução9, 0 , E ,instrução10
instrução9, 1 , E ,instrução9
instrução10, 0 , D ,instrução2
instrução10, 1 , E ,instrução10
instrução11, 0 , D ,instrução12
instrução11, 1 , E ,instrução11
Porque não tentar perceber como funciona este?
Publicado por Porfírio Silva em
12:00 PM
|
Comentários (0)
dezembro 03, 2003
Pequena história da máquina de Turing (2)
No apontamento anterior desta série demos o conceito básico de "máquina de Turing" (MdT). Damos agora mais um passo, explicitando as noções de "estado da máquina" e "configuração da máquina" e introduzindo a distinção entre máquinas deterministas e máquinas não deterministas (utilizarei esta distinção no fecho provisório que vou dar ao debate sobre o meu texto "O Erro de Damásio?").
Estado e configuração de uma MdT
Em cada instante, uma MdT encontra-se num determinado estado. Dois estados característicos são: o estado inicial (como está a máquina antes de começar a processar a primeira instrução) e o estado final (quando a máquina parou por já não ter nenhuma instrução que possa executar). Entre o estado inicial e o estado final, a máquina vai passando por outros estados à medida que vai seguindo as instruções. De uma forma simples, o estado da máquina é a fase de execução do programa em que ela se encontra. Designaremos por configuração da máquina num dado momento o seguinte conjunto de elementos: o estado da máquina, a célula em observação nesse momento e a sequência de símbolos na fita à esquerda e à direita da cabeça.
Máquinas deterministas e máquinas não deterministas
A MdT tradicional é determinista: a acção a executar pela máquina em cada momento é determinada pela configuração da máquina. Dado o ponto de execução do programa, a situação da fita, qual a célula em observação nesse momento, o que a máquina fará de seguida está perfeitamente determinado. Em cada momento, a máquina executa uma determinada acção e nenhuma outra é possível - e assim do princípio ao fim do programa. Vendo esta questão do ponto de vista do programa, isso significa que para cada situação só há uma instrução a seguir. Em qualquer outro caso, a MdT é não determinista: se em algum ponto do programa houver uma escolha quanto à instrução a seguir e essa escolha não for ditada pelo próprio programa (a escolha pode ser deixada à máquina, por exemplo implementando uma escolha aleatória - ou ser entregue a um decisor exterior, por exemplo um humano).
Publicado por Porfírio Silva em
02:01 PM
|
Comentários (2)
maio 24, 2004
O problema da decisão (Pequena história da MdT - 3)
Nos dois primeiros capítulos desta história (aqui o 1 e aqui o 2 ) explicou-se o que é e como "funciona" uma máquina de Turing (MdT). Neste capítulo e no seguinte explicamos o "porquê" dessa invenção. O campo da matemática estava confuso quando David Hilbert, um grande matemático e filósofo da matemática que nasceu no século XIX e morreu no século XX, entrou em cena. Tinham surgido vários paradoxos que minavam a confiança na lógica e na matemática e que davam a ideia de que esses domínios não eram tão "certos" e "rigorosos" como pareciam. Esses paradoxos eram em parte causados pela introdução e manipulação de números/conjuntos infinitos (infinitos de vários "tamanhos", por exemplo). Hilbert queria ultrapassar essa situação confusa e dar um fundamento seguro à matemática.
O remédio proposto por Hilbert consiste em renovar o método axiomático. Tudo se passaria dentro de um sistema formal, no qual se definem exactamente o vocabulário (todos os símbolos que podem ser usados no cálculo), as regras de formação (como se podem combinar símbolos para obter fórmulas bem formadas), as regras de transformação (como se podem derivar fórmulas umas das outras), os axiomas (fórmulas primitivas do sistema). Provar ou demonstrar uma fórmula nesse sistema será obtê-la por transformação de fórmulas antecedentes numa sequência, num número finito de passos.
Um sistema destes (um sistema formal), para ser útil quando aplicado à matemática, deveria ter determinadas qualidades, que não vamos aqui especificar. Excepto uma. Um tal sistema teria de garantir a decidibilidade de qualquer fórmula. Isto é: dada qualquer fórmula bem construída tem de ser possível decidir, num número finito de passos, se essa fórmula é ou não um teorema do sistema.
Podemos dar uma formulação geral deste problema assim: será que todo o problema matemático, formulado com clareza, tem, desde que trabalhemos suficientemente nele, uma solução que possamos encontrar?
Aqui temos o problema da decisão.
Ora, o que interessa a esta nossa história é que Turing vai dar uma resposta negativa ao problema da decisão. A máquina de Turing foi inventada precisamente para enfrentar esse problema. Pasme-se: o computador foi inventado para discutir um problema altamente teórico de lógica matemática.
No próximo episódio explicamos como isso se fez.
[ Próximo ponto: E se a máquina não pára?]
Publicado por Porfírio Silva em
09:25 AM
|
Comentários (0)
maio 25, 2004
E se a máquina não pára? (Pequena história da MdT - 4)
Quando é que a máquina nos mostra o resultado do cálculo? Quando pára.
(Isso é explicado no episódio 1 desta história.) Quando a máquina pára, o resultado está em exibição numa certa posição relativamente à cabeça da máquina. É nestes termos que Turing vai dar a sua versão do problema da decisão (ver episódio anterior): na forma do
problema da paragem para máquinas de Turing.
Em certos casos é útil poder saber se a MdT que pomos a resolver um problema irá ou não parar. Consideremos a "conjectura de Goldbach", segundo a qual todo o número par maior do que 2 é a soma de dois números primos. Como podemos saber se isso é verdade? Programamos uma MdT para percorrer toda a lista de números pares e, à vez, decompor cada um deles em pares de números primos (… , 8 = 3+5, 10 = 3+7 = 5+5, …) e, se encontrar um número par que não pode ser decomposto numa soma de números primos, pára. O número em que a MdT pare será um contra-exemplo para a conjectura de Goldbach e decidirá esse problema.
A primeira pergunta que se põe é: essa MdT parará alguma vez? Não sabemos. Mas há outra pergunta mais importante em geral: será possível construir uma MdT que analise essa MdT e indique se ela irá parar? A resposta é negativa e pode ser assim generalizada: não é possível construir nenhuma MdT que seja sempre capaz de nos indicar, após um número finito de passos, se qualquer outra MdT parará ("resolverá o seu problema") após um número finito de passos, para qualquer conjunto de dados iniciais que lhe sejam apresentados. Trata-se, na forma original que lhe deu Turing, de uma resposta negativa ao problema da decisão.
Mostrar a impossibilidade de uma MdT resolver o problema da paragem para máquinas de Turing foi a via usada para mostrar o seguinte: nem sempre é possível saber se existe um procedimento efectivo para determinar se um problema rigorosamente formulado tem ou não uma solução.Note-se que isto não implica a impossibilidade de decidir problemas individuais - não implica a inexistência de uma MdT que seja capaz de nos dizer, para uma MdT específica e um determinado conjunto de dados iniciais, se essa MdT vai ou não parar. O que nega é a existência de soluções algorítmicas para todas as classes de problemas.
ORA PENSE LÁ ! Suponhamos que temos N máquinas de Turing. Queremos saber
quais páram. Para isso basta saber
quantas páram. Porquê?
(Amanhã veremos. Até lá, digam qualquer coisa, se assim o entenderem.) [ Próximo ponto: Que tipo de humano inspira a MdT?]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
09:11 AM
|
Comentários (3)
maio 26, 2004
Que tipo de humano inspira a MdT ? (Pequena história da MdT - 5)
Que tipo de humano inspira a MdT? Originalmente, um "computador" é um humano a calcular. Ao longo de várias páginas do artigo de 1936 em que "cria" a MdT, Turing faz uma extensa e exaustiva comparação entre um humano a realizar um cálculo (um "computador") e a operação das "suas" máquinas. Recorre-se, aí, designadamente, à noção de "estado mental" do humano "computador", para o qual é dado o análogo "estado da máquina". O esforço principal dessa comparação incide na determinação das limitações do humano calculante - e na correspondente ilustração de que as mesmas limitações se aplicam à máquina. O humano é tomado estritamente na medida em que está a calcular: nada mais do seu comportamento é considerado. Não há qualquer tipo de tentativa de mostrar que o humano pode fazer mais ou pode fazer outras coisas - tal como não há qualquer tentativa de mostrar que a máquina pode fazer mais ou melhor do que o humano calculante. Mais à frente, comparando mais uma vez com um humano que calcula, pensa num humano muito pouco metódico (que interrompe o cálculo a cada passo, levantando-se por exemplo) e que, por isso, só tem uma possibilidade de fazer avançar o cálculo: anotar a cada passo onde vai e o que tem de fazer a seguir. Para Turing, a sua máquina faz isso perfeitamente. Durante muitos anos, a Inteligência Artificial e as Ciências Cognitivas deixaram-se iludir por esta identificação entre "mente" e "cálculo" - e pelas consequentes falácias da relação entre máquina e mente. Mas isso foi porque se esqueceram de ler certas partes dos textos de Turing, que mostram que ele estava ciente de que isso não é tudo.
ONTEM PERGUNTÁMOS: Suponhamos que temos N máquinas de Turing. Queremos saber quais páram. Para isso basta saber quantas páram. Porquê? RESPOSTA: Pomos todas as MdT a correr (a executar o seu programa). Quando parar o número de MdT que sabemos que páram, sabemos quais páram.
[ Próximo ponto: A mãe dos modernos computadores]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
09:36 AM
|
Comentários (3)
maio 27, 2004
A mãe dos modernos computadores (Pequena história da MdT - 6)
Turing, além de ter inventado de raíz a própria noção de computador universal que ainda é a nossa, trabalhou na concepção de alguns modelos dos primeiros computadores digitais electrónicos. O caso mais notável é o ACE (Automatic Computing Engine), concebido por Turing em 1945 e que começou a calcular em 1950. Contudo, a arquitectura que veio a generalizar-se (até hoje) na construção de computadores seguiu caminhos um pouco diferentes (mais de acordo com as propostas de John von Neumann).
Isso não desmente o contributo que Turing deu para o desenvolvimento da informática, porque os conceitos elaborados por Turing foram cruciais no desenvolvimento dessa tecnologia. Lassègue (1998), p.ex., argumenta longamente que algumas das contribuições mais importantes de Turing para o desenvolvimento da informática, mesmo em anos muito posteriores, têm as suas raízes no artigo de 1936. Destaca esse autor, nomeadamente: (i) a noção de programa modular, decomposto em partes separáveis que podem ser reutilizadas em muitos contextos diferentes - permitindo "ir e vir" entre o programa principal e múltiplas sub-rotinas; (ii) a noção de máquina auto-organizada, no sentido em que certas decisões que devem ser tomadas no decurso da execução de um programa dependem de resultados obtidos na mesma execução desse programa e, assim, é como se o programa se modificasse a si próprio, como se aprendesse; (iii) a noção de compilação (como diríamos hoje), quer dizer, de uma hierarquização de linguagens entre a máquina (que funciona com uma linguagem de impulsos eléctricos interpretados como código binário) e o humano (que trabalha com uma linguagem formalizada mas mais próxima da linguagem natural).
[ Próximo ponto: As máquinas pensam?]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.

Painel de controlo do ENIAC, o primeiro computador electrónico digital a funcionar nos EUA. O ENIAC ainda não tinha programas armazenados no seu interior, pelo que era necessário modificar fisicamente as ligações entre as suas componentes quando se queria passar de um tipo de cálculo para outro. Isso fazia-se neste painel de controlo: rodando os selectores (de que apenas vemos uma pequena parte) modificava-se a cablagem interna do computador. (Foto de Benjamin C. Pierce)
Publicado por Porfírio Silva em
08:47 AM
|
Comentários (1)
maio 28, 2004
As máquinas pensam? (Pequena história da MdT - 7)
A MdT foi "inventada" por Turing num artigo de 1936. Num outro artigo, de 1950, Turing lança outra "pedrada no charco" da reflexão acerca da relação entre mente e máquina.
Querendo considerar a questão "as máquinas pensam?", mas considerando-a, nessa forma, uma questão "demasiado desprovida de sentido para merecer discussão", Turing propõe-se expressá-la noutra forma. Para isso introduz o "jogo da imitação". Sejam três pessoas: A, um homem; B, uma mulher; C, um interrogador humano que permanece numa sala separada de A e B. O objectivo do jogo é: para o interrogador, determinar, com base nas perguntas que dirige a A e a B e nas respostas obtidas, qual é o homem e qual é a mulher; para a mulher, ajudar o interrogador (dizendo a verdade); para o homem, enganar o interrogador, fazendo-o crer ser ele a mulher. Para que o tom de voz de A ou de B não ajude o interrogador, as respostas ser-lhe-ão transmitidas por telétipo.
Agora, a questão "as máquinas pensam?" pode ser substituída pela questão seguinte, relativa a um particular computador digital C: "É verdade que, modificando esse computador para ter uma capacidade de memória adequada, aumentando satisfatoriamente a sua velocidade de trabalho e fornecendo-lhe um programa apropriado, podemos fazer com que C desempenhe satisfatoriamente o papel de A no jogo da imitação, sendo o papel de B desempenhado por um homem?". De acordo com a distribuição de papéis no jogo, o desempenho satisfatório do computador diz respeito à capacidade para evitar que o interrogador o identifique como tal.
Nesta segunda fase do jogo, tanto o homem como o computador imitam uma mulher. No entanto, tanto Turing no resto do artigo, como a maioria dos comentadores, ignoram o aspecto "género" da questão. Em geral, o jogo é entendido de uma forma simplificada como dizendo respeito à capacidade de uma máquina para, quanto à sua inteligência, se fazer passar por um humano quando apreciado precisamente por um humano. Acreditamos que a correcta interpretação da situação é a seguinte: não nos parece que a questão do género seja essencial ao que Turing nos propõe considerar (nada nos leva a crer que Turing adoptasse qualquer forma de sexismo na concepção desta experiência); mas não nos parece possível eliminar o facto de que tanto o homem como a máquina estão a tentar fazer-se passar por algo que não são. O homem está a tentar imitar uma mulher; a máquina está a tentar imitar um humano. A capacidade de imitar, de simular, mesmo de enganar, está no centro do exercício.
A "aposta" de Turing é então explicitada: por volta do ano 2000 haverá computadores que jogarão tão bem o jogo da imitação que um interrogador humano médio não terá mais do que 70% de hipóteses de fazer uma identificação correcta após 5 minutos de interrogatório, de tal modo que alguém que fale em máquinas pensantes não correrá o risco de ser contraditado. Nos próximos episódios veremos o rebuliço que causou esta aposta de Turing. É a história do que se passou a chamar "o teste de Turing".
Ilustração de Ann Witbrock in Copeland, B.J., Artificial Intelligence, Blackwell,Oxford, 1993[ Próximo ponto: As máquinas não usam carne]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
09:26 AM
|
Comentários (0)
maio 31, 2004
As máquinas não usam carne (Pequena história da MdT - 8)
Vimos no episódio anterior que Turing introduz o "jogo da imitação" como estratégia para investigar a questão "as máquinas pensam?". Um aspecto central do que está em causa é que a proposta de Turing concebe uma separação radical entre inteligência e corporalidade de um sistema: "o novo problema tem a vantagem de traçar uma linha bastante nítida entre as capacidades físicas e intelectuais de um homem". E acrescenta que, mesmo que fosse possível revestir a máquina com um material indistinguível da pele humana, não faria muito sentido tentar tornar uma máquina mais humana revestindo-a com uma carne artificial. É por isto que as condições de organização do jogo têm de evitar que o interrogador veja, toque ou ouça os outros competidores. Se a questão da corporalidade não é essencial na fronteira entre humanos e máquinas, ela também não é essencial na distinção entre máquinas diferentes: o que interessa nos computadores participantes num "jogo da imitação" não são os aspectos físicos da sua construção (por exemplo, se se trata de um computador eléctrico ou não), mas sim os aspectos matemáticos do seu funcionamento.
Turing mostra conceder que vê certas diferenças entre a inteligência de um humano e a de um computador. Considerando que a melhor estratégia para a máquina (no jogo da imitação) consiste em tentar dar as respostas que naturalmente daria um humano, isso implica o erro em domínios em que "errar é humano". Num exemplo de Turing, a máquina responderia, depois de "pensar" trinta segundos (sem o necessitar), que 34.957 + 70.764 = 105.621 (o que está errado). Essa questão é tratada explicitamente quando Turing considera diversas objecções possíveis ao seu ponto de vista. Quando trata de um dos casos da objecção "há certas coisas de que as máquinas não são capazes" - as máquinas não podem cometer erros - responde que "a máquina (programada para jogar o jogo) não tentará dar respostas exactas a problemas aritméticos" e "introduzirá deliberadamente erros de uma forma calculada para confundir o interrogador", ou, de uma forma mais sofisticada, dará ocasionalmente erros se seguir um método de procurar conclusões de forma indutiva.
[ Próximo ponto: Máquinas, crescei e multiplicai-vos!]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
11:42 AM
|
Comentários (0)
junho 01, 2004
Máquinas, crescei e multiplicai-vos! (Pequena história da MdT - 9)
Considerando que o principal desafio a vencer para atingir o objectivo anunciado para cerca do ano 2000 diz respeito à programação dos computadores candidatos, Turing sugere que, em vez de tentar escrever um programa para simular uma mente adulta, se construa um programa que simule uma mente de criança (que Turing parece pensar que seja relativamente rudimentar e simples de programar) e se trate depois de o fazer aprender. Tal processo é considerado comparável à evolução, embora mais expedito do que a sobrevivência dos mais aptos, no seguinte sentido: a estrutura da mente infantil é comparável ao equipamento inato, tal como as modificações dessa mente infantil são comparáveis às mutações e o julgamento do experimentador é comparável à selecção natural. Os aspectos físicos (pernas, olhos, …) serão, insiste-se, ignorados.
A terminar o seu artigo de 1950, Turing interroga-se - sem pretender fornecer uma resposta - acerca de qual de duas vias possíveis será a melhor para prosseguir as investigações neste domínio: investir em actividades altamente abstractas, como o xadrez; investir em órgãos sensoriais para a máquina, ensiná-la a compreender e falar uma linguagem natural e depois proporcionar-lhe um processo de aprendizagem como aquele de que uma criança poderia beneficiar. Longos anos haverá que esperar até que o conjunto de possibilidades entrevistas por Turing em 1950 seja compreendido, levado a sério e explorado.
[ Próximo ponto: Reacções ao teste de Turing]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
11:55 AM
|
Comentários (5)
junho 02, 2004
Reacções ao teste de Turing (Pequena história da MdT - 10)
Gunderson (1964), num dos primeiros comentários ao artigo de Turing, questiona a própria existência de imitação (por parte da máquina) no "jogo da imitação". O seu ponto é que, lá por um artefacto substituir um humano no seu papel no jogo, isso não significa que esse artefacto esteja a imitar o que quer que seja.
Para Purtill (1971), o jogo da imitação não é mais do que uma batalha entre o interrogador humano e o humano que programou a máquina.
Miller (1973) terá sido um dos primeiros a criticar o facto de o jogo da imitação assentar numa concepção antropomórfica de inteligência: a inteligência que ele pode detectar é a inteligência adaptada aos objectivos e à cultura dos humanos, sendo desejável que se permita a um marciano ou a uma máquina exibir inteligência através de comportamentos adaptados à prossecução dos seus objectivos próprios.
Moor (1976) dá uma interpretação indutiva do jogo da imitação: o jogo não nos dá uma definição operacional de inteligência e não constitui uma condição necessária nem suficiente para o reconhecimento de inteligência da máquina. A sua utilidade consiste em fornecer elementos para uma inferência indutiva com uma conclusão favorável à hipótese da inteligência das máquinas, numa apreciação reversível: podemos ter aceite que uma máquina é inteligente com base nos resultados do jogo da imitação, mas revermos posteriormente essa apreciação com base noutros elementos. Moor concorda, no entanto, que o jogo proposto por Turing permite testar muitos aspectos da inteligência.
Para Stalker (1978), a atribuição de pensamento a uma máquina em certas condições é uma tentativa de explicar o comportamento da máquina nessa situação: existindo explicações puramente mecânicas - que são mais "económicas" do que as explicações mentalistas - elas são preferíveis.
[ Próximo ponto: A inteligência de uma torradeira]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
12:04 PM
|
Comentários (0)
junho 03, 2004
A inteligência de uma torradeira (Pequena história da MdT - 11)
Ned Block (1981) ataca o teste de Turing por ele constituir uma abordagem behaviorista à inteligência. O seu objectivo é opôr o psicologismo ao behaviorismo. A tese psicologista que Block pretende defender é a seguinte: que um comportamento seja ou não seja inteligente depende da natureza do processamento interno de informação que o produz; não bastará nunca o comportamento para indicar se um sistema é ou não inteligente. O erro do teste de Turing é querer decidir a questão da inteligência apenas pelo aspecto exterior do comportamento.
Tratemos de dar um esquema do argumento de Block. Block fornece um neo-teste de Turing que mantém as características essenciais do original e, como ele, apenas atende ao comportamento exterior; vai mostrar que uma máquina que reconhecemos (por análise dos seus mecanismos internos) como não sendo de todo inteligente, pode passar esse neo-teste de Turing; vai daí concluir que o neo-teste de Turing (bem como o original) deve ser declarado imprestável como critério de atribuição de inteligência.
Mantendo-se, como o jogo da imitação da versão original, no domínio do comportamento "uso de uma linguagem natural por escrito", esse neo-teste de Turing para a inteligência assenta nesta noção: a inteligência é a capacidade para dar sequência a um diálogo sensato. Qualquer diálogo mantido durante um certo intervalo de tempo finito é uma sequência finita de frases, formadas por um número finito de palavras. Chamemos "diálogo sensato" a qualquer dessas sequências em que cada fala de um dos interlocutores seria reconhecida por um humano como uma continuação razoável das falas anteriores. O número de "diálogos sensatos" com uma duração determinada (por exemplo, os cinco minutos que Turing propõe) que é possível formar combinatoriamente, é um número finito - embora muito grande. Uma máquina podia ser fornecida com todos esses "diálogos sensatos" e ser programada para responder a um ser humano apenas por consulta da "base de diálogos sensatos". Assim, qualquer frase do humano será a frase A de um dos diálogos armazenados e a máquina "responderá" com uma das possíveis frases B (a frase B de qualquer dos diálogos que começam com esse A). O humano seguirá necessariamente com uma frase C de um dos diálogos que começam por aquela sequência AB e a máquina responderá com a frase D de qualquer dos diálogos que começam por essa sequência ABC. E assim sucessivamente, até se esgotar o tempo.
Essa máquina, na expressão de Block, "terá a inteligência de uma torradeira" e, no entanto, passará o neo-teste de Turing (dará sequência a um diálogo sensato). Logo, o neo-teste de Turing (tal como o original) não serve como critério para determinar a presença de inteligência. Porquê? Porque só atende ao comportamento exterior.
[ Próximo ponto: Testes alternativos]
Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
08:57 AM
|
Comentários (0)
junho 04, 2004
Testes alternativos (Pequena história da MdT - 12)
Torna-se interessante acompanhar a forma que tomaram a partir de certa altura as críticas ao jogo da imitação: testes alternativos ao teste de Turing clássico. Vários autores seguiram esse método e essa estratégia contribuiu para a ideia de que o teste de Turing pretendia simplificar "à força" um problema complexo. Vejamos exemplos desses testes alternativos.
Harnad (1989) propõe o Teste de Turing Total, em que já não se aceita que a máquina "esconda" a sua implementação física atrás da comunicação por teletipo, antes se exige que a revele: a máquina submetida ao Teste de Turing Total será um robot envolvendo todos os aspectos que podem contribuir para o desempenho complexo de um sistema com mente, incluindo competências sensoriais e motoras e não fugindo à expressividade da aparência física.
Watt (1996) propõe o Teste de Turing Invertido. Watt parte da ideia de que o aspecto central do jogo da imitação proposto por Turing é a tendência natural dos humanos para atribuir estados mentais aos outros humanos e a si próprios - e também às máquinas. (É por isso que, p.ex., falamos de duas imagens no écran de computador dizendo "ele vai comer o outro".) Essa "psicologia ingénua", que nos é necessária para prever e compreender os comportamentos em sociedades complexas, é responsável pelo enviesamento da tendência do interrogador no teste de Turing para atribuir mentalidade à máquina. A psicologia do observador/interrogador humano seria mais importante do que o próprio desempenho da máquina candidata. Nessa base, Watt propõe o Teste de Turing Invertido, em que a máquina terá de desempenhar o papel do observador. A máquina terá de provar ser dotada de "psicologia ingénua" sendo incapaz de distinguir entre dois humanos, sendo também incapaz de distinguir entre um humano e uma máquina que tenha passado o teste de Turing clássico - mas sendo capaz de distinguir entre um humano e uma máquina que não tenha passado o teste clássico.
Bringsjord (1996) critica o Teste de Turing Invertido, considerando que ele é redundante relativamente ao original, simplesmente porque o interrogador pode fornecer à máquina uma descrição de uma situação envolvendo uma avaliação de psicologia ingénua, pedir-lhe que realize essa avaliação e comparar o que a máquina faz com o que o interrogador humano faria. Esta crítica parece-nos ligeira, uma vez que leva ao máximo a pretensão (já presente no teste original) de que todas as situações podem, sem perda de qualquer tipo relevante de informação, ser substituídas por descrições verbais (escritas) dessas situações. Selmer Bringsjord tece na mesma ocasião uma consideração curiosa: com o desenvolvimento de computadores capazes de emular o comportamento linguístico dos humanos, rapidamente seremos incapazes de os distinguir linguisticamente de nós - ou seja, a nossa "psicologia ingénua" está em vias de extinção.
[ Próximo ponto: O teste da gaivota]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
10:13 AM
|
Comentários (0)
Pode uma máquina pensar?
A "pequena história da máquina de Turing", que tem andado aqui diariamente, está agora numa fase de reflexão sobre um famoso artigo de Alan Turing, de 1950, intitulado
Can a Machine Think? . Descobri (só) agora que está disponível em linha uma tradução portuguesa de parte desse texto. Para tanto, siga-se a ligação seguinte:
Pode uma máquina pensar?
Publicado por Porfírio Silva em
12:31 PM
|
Comentários (0)
junho 07, 2004
O teste da gaivota (Pequena história da MdT - 13)
Robert French (1990) considera que o teste de Turing não é um teste de inteligência em geral, mas apenas um teste de inteligência humana. Para ilustrar o seu ponto - a dependência do teste de Turing face ao contexto cultural dos seus intervenientes humanos - exemplifica com o "teste da gaivota".
Seja uma pequena ilha nórdica onde o único objecto voador conhecido é a gaivota. Os habitantes da ilha, convencidos de que pode haver outros objectos voadores, estabelecem o seguinte teste para determinar o que é ser voador: o registo do comportamento do candidato a "voador" num ecrã tridimensional tem de ser indistinguível, aos olhos dos ilhéus, do registo do comportamento de uma gaivota no mesmo ecrã. Torna-se óbvio que há inúmeros objectos que nós consideramos voadores (desde outras aves até morcegos, abelhas ou helicópteros e aviões) mas que não passarão o "teste da gaivota" - porque o teste é (para usar a terminologia de Block) chauvinista em relação ao voar focado nas gaivotas, do mesmo modo que o teste de Turing é chauvinista em relação à inteligência focada nos humanos.
French procura demonstrar que (e porquê) o teste de Turing não será ultrapassado com sucesso por uma máquina, desde que o interrogador use o tipo adequado de perguntas. É que existe um tipo de questões com que o interrogador pode identificar o não humano com relativa facilidade. Terá de ser um tipo de questões dirigidas para tópicos que dependam da forma humana de cultura, da nossa forma de sermos constantemente inseridos em contextos e de criarmos associações entre elementos que "logicamente" não teriam de estar ligados. O tipo de questões a que se refere French apela à estrutura cognitiva de baixo nível, ao que não chega a aparecer-nos explicitado: questões subcognitivas. Exemplifiquemos. Se pedirmos a uma máquina para classificar frases que estabelecem associações entre dois termos, numa escala de 0 (completamente implausível) a 10 (completamente plausível), um humano e uma máquina provavelmente convergirão em dar uma classificação similar (baixa) a frases do tipo "pianos de cauda como carrinhos de mão". Mas é provável que divirjam largamente na apreciação da plausibilidade de frases como "a canção como arma". A comparação do desempenho dos humanos com o desempenho das máquinas face a questões desse tipo revelará sempre quem é quem. E há uma infinidade de questões que apelam da mesma maneira à nossa imersão na cultura humana.
French ataca, desta maneira, o que considera um elemento essencial do teste de Turing original: a pretensão de separar a implementação física do sistema, por um lado, e, por outro lado, o respectivo nível cognitivo, tornando por essa via "o corpo" ausente (donde a comunicação apenas por telétipo). O uso de questões subcognitivas permite, em seu entender, furar essa barreira, porque só um sistema que tenha a ancoragem física corporal dos humanos no mundo é que pode ter criado as redes de associação conceptual que nós criámos: "Essas redes são o produto de toda uma vida de interacção com o mundo que envolve necessariamente os órgãos sensoriais humanos, a sua localização no corpo, a sua sensibilidade a vários estímulos, etc. Considere-se, por exemplo, um ser parecido exactamente connosco em todos os aspectos físicos excepto em que tinha os olhos nos joelhos. Essa diferença física só por si engendraria enormes diferenças na sua rede associativa conceptual comparada com a nossa." Essa diferença será sempre detectável por qualquer tipo de teste de Turing, porque "o nível físico não é dissociável do nível cognitivo".
[ Próximo ponto: O teste de redacção]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
03:14 PM
|
Comentários (1)
junho 08, 2004
O teste de redacção (Pequena história da MdT - 14)
Collins (1997) propõe uma variante do teste de Turing cuja originalidade consiste em, em lugar de procurar ser mais exigente do que a versão clássica, constituir um sub-teste de Turing - no sentido em que considera que uma exigência mais restrita é representativa da exigência original e, por isso, é suficiente para obter os mesmos resultados.
Na análise de Collins, o que está em causa são as poderosas modalidades de aprendizagem que os humanos adoptam para se adaptarem ao seu meio, incluindo ao seu meio social - residindo aí o cerne da desvantagem comparativa das máquinas. Enquanto os humanos, ao interagirem, interpretam o que acontece na interacção e usam essa interpretação para corrigir deficiências na leitura dos dados que lhes chegam (posso compreender frases mal formuladas, seja de forma flagrante seja de forma subtil, recorrendo a elementos de contexto) - os computadores não têm essa capacidade (só funcionam bem se lhes fornecerem dados ou comandos de forma estritamente identificável: o uso de ícones no ecrã do meu computador serve para limitar drasticamente o que eu posso "dizer-lhe"). Essa diferença, que Collins designa por "assimetria interpretativa", parece-lhe tão fundamental que pode ser captada por uma variante limitada do teste de Turing sem perder o poder discriminatório que se lhe exige. Esse sub-teste de Turing seria um
Teste de Redacção.
O Teste de Redacção assenta na ideia de que todo o poder das nossas capacidades interpretativas pode ser adequadamente representado pelo seu uso num contexto linguístico e, aí, distinguir-nos da máquina. O teste consistiria apenas em exigir que certas frases em linguagem natural, apresentadas com certas incorrecções, sejam apropriadamente corrigidas pelo sistema candidato à qualificação de inteligente. Um dos exemplos fornecidos (em inglês) é o seguinte:
Mary: The next thing I want you to do is correctly spell a word that means a religious ceremony.
John: You mean rite. Do you want me to spell it out loud?
Mary: No, I want you to write it.
John: I'm tired. All you ever want me to do is write, write, write.
Mary: That's unfair, I just want you to write, write, write.
John: OK, I'll write, write.
Mary: Write.
Para um humano (falante de inglês) é claro que o está em causa é uma confusão entre "rite", "write" e "right". Mas, no entender de Collins, será muito difícil programar um computador para resolver problemas novos deste tipo - e, por isso, este teste, mais limitado do que o teste de Turing, será suficiente para distinguir uma máquina de um humano.
[ Próximo ponto: Testar a "mãe natureza"]Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
01:48 PM
|
Comentários (0)
junho 09, 2004
Testar a "mãe natureza" (Pequena história da MdT - 15)
Schweiser (1998) considera que as formas conhecidas de teste de Turing, incluindo a versão robótica de Harnad, são insuficientes. Os humanos atribuem inteligência a outros humanos com base na observação do comportamento (mesmo na falta de uma boa teoria da inteligência humana) porque têm um registo histórico muito rico acerca da espécie. O que se passa face a um humano individual é que a nossa atribuição de inteligência é basicamente uma identificação de um espécime (aquele indivíduo) como pertencente a um tipo (a espécie humana). Assim, a atribuição de inteligência a um tipo cognitivo diferente (robots) requer a produção de um registo histórico das realizações dessa "espécie" que lhe garanta a mesmo tratamento: não basta que os robots falem uma linguagem ou joguem xadrez, eles terão que desenvolver uma linguagem e inventar um jogo como o xadrez. Assim, o teste de inteligência tem primeiro de ser passado ao nível do tipo e só depois (e nessa base) aplicado ao nível dos espécimes.
Alguns autores têm analisado a questão do ponto de vista dos aspectos sociais da inteligência, muitas vezes indicando que a adaptação, a aprendizagem, a comunicação, a cooperação - são aspectos importantes da inteligência que desaparecem na versão original do teste de Turing. Deste ponto de vista, uma das propostas mais radicais será certamente a de Barresi (1987), com o seu "Cyberiad Test". John Barresi considera que o comportamento inteligente é aquele que permite à sociedade sobreviver e que o árbitro desse "jogo" é a "mãe natureza". Por tanto, o seu teste, aplicado a uma sociedade de humanos artificiais, seria passado com sucesso se essa sociedade continuasse a sua evolução sócio-cultural sem se desintegrar durante uma história suficientemente longa - digamos, alguns milhões de anos.
[ Próximo ponto: Oferecemos-lhe um psiquiatra chave na mão]
Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
01:16 PM
|
Comentários (0)
junho 11, 2004
Oferecemos-lhe um psiquiatra chave na mão (Pequena história da MdT - 16)
Uma área de desenvolvimento do teste de Turing que tem de ser considerada é a da implementação de robots de software que "conversam" com humanos. Várias competições cujo objectivo é passar versões (por vezes restritas) do teste de Turing têm sido organizadas. Talvez a mais famosa seja a que é organizada desde 1991 por Hugh Loebner. A primeira edição teve como presidente do comité administrativo o filósofo Daniel Dennett. As primeiras versões do concurso eram restritas (a "conversa" era apenas sobre um tópico pré-definido). Na edição de 1991, além de vários programas terem sido julgados humanos, também aconteceu um humano (que tinha um conhecimento fora do comum da obra de Shakespeare) ser tomado por um programa de computador. Muitos programas deste género seguem o modelo do ELIZA, um programa de conversação em linguagem natural criado por Joseph Weizenbaum durante a sua permanência no M.I.T. nos anos de 1964-1966. O ELIZA simula um psicoterapeuta rogeriano, que incita muito o seu "paciente" humano a falar, mais do que a perguntar. Na realidade, a programação por trás do ELIZA é um tanto simplista (como um pouco de análise crítica poderá revelar se usarmos uma versão em linha que está disponível em
http://www-ai.ijs.si/eliza-cgi-bin/eliza_script).
Consulte o psiquiatra e diga-nos como foi!
("Converse" com ele, inserindo frases - mas tem de "falar" em inglês.)Esta pequena história da máquina de Turing fica, para já, por aqui. Viramos imediatamente para outro aspecto das "ciências do artificial": a robótica colectiva. A esse tema vamos dedicar uma nova série de notas.
Participe na consulta orientada pela pergunta "As máquinas pensam?", (1) votando na coluna aqui mesmo ao lado ou (2) enviando-nos um pequeno texto com uma opinião.
Publicado por Porfírio Silva em
03:46 PM
|
Comentários (3)
julho 22, 2004
Regressar
Bom, acho que já descansei um pouco desta "máquina": posso voltar. Depois das longas tarefas da "pequena história da máquina de Turing", da "intodução ao RoboCup" e da "robótica portuguesa" (com certeza...), vou retomar aqui algumas reflexões que foram aflorando, nomeadamente nos comentários. Faremos isso nos próximos dias. Eu regresso. Regressem também os leitores...
Publicado por Porfírio Silva em
08:54 AM
|
Comentários (1)