Gilberto, dando uma pesquisada aqui sobre a rede neural deste robô japonês, parece que ela utiliza sim programação orientada a objetos, pois trabalha com classes e parâmetros:
http://www.docstoc.com/docs/51275768/Enhanced-Self-Organizing-Incremental-Neural-Network-for-OnlineMeu conhecimento sobre Inteligência Artificial se resume ao pouco que sei sobre Engenharia de Software, com OO e metodologias UML.
Me lembro que uma vez meu professor de especialização disse que a IA trabalhava com a noção de programas que criam suas próprias classes em tempo de execução. Mas isto me pareceu só uma comparação para que nós entendêssemos o que ele estava querendo dizer com programação IA. Mas, aparentemente, pelo link acima, existe realmente classes que são criadas pelo próprio sistema, sem a necessidade de um analista humano para pensá-las antes.
Resumindo, cada Classe é a fôrma (tipo de bolo mesmo) de onde se originam os objetos. Tais objetos possuem métodos, para que exista uma ação (processamento de informações) dentro do programa. Por exemplo, tenho o objeto “carro”, criado a partir da classe Carro. Dentro desta classe existe um método chamado “ande”. Logo, quando eu invoco o comando “carro.ande”, é executado o método da classe Carro destinado a faze-lo andar. Dentro deste método “ande”, que está dentro da classe Carro, há instruções baseadas em uma lógica (que pode ser booleana, que é mais usual ou a fuzzy que é mais destinada a sistemas especialistas). De forma simplista, seria algo como:
Se carro estiver desligado dê ignição (ignição poderia já ser um outro método invocado da classe Carro);
Engate a 1ª marcha;
Acelere;
Alcance velocidade X e mude para a 2ª marcha;
...
A grande questão aí é: como o próprio sistema vai saber programar esta parte onde há instruções e condições (a parte lógica da coisa)? Para isto existe o trabalho dos analistas de sistemas, que primeiro entendem o problema a ser resolvido, projetam a solução utilizando UML e, só depois, repassam as soluções devidamente esquematizadas para os programadores implementarem em códigos de alguma linguagem orientada a objetos, tipo Java.
O que posso supor é que, no caso do sistema neural deste robô japonês “inteligente”, existem algumas classes básicas destinadas a fazer esta análise, baseada em algum conhecimento prévio sobre o assunto. Tais “classes base”, devidamente inicializadas, teriam a capacidade de criar novas classes, incluindo métodos (comandos) com algoritmos, após fazer algumas suposições sobre os dados, utilizando programação neural (talvez usando lógica fuzzy, que penso seria o mais adequado neste caso, pois necessita de uma análise mais subjetiva dos dados e não simplesmente SIM e NÃO). Sendo que os dados preliminares para a análise seriam alimentados via banco de dados local, internet ou por sensores do próprio robô.
No caso do exemplo feito pelo robô (água gelada), primeiramente ele deveria concluir que objetos possuem a capacidade de repassar sua temperatura um para o outro e saber as características da água e do gelo. Após fazer algumas suposições, ele criaria uma classe chamada “gelo” e outra “água”. E depois criaria métodos nestas classes, que seriam ativados nos momentos certos para fazer o robô misturar o gelo e a água para gerar água gelada. Só sei que para fazer apenas isto já exigira uma capacidade muito grande de processamento. Imagine se tal algoritmo for confrontado com um problema realmente complexo?
Justamente os algoritmos envolvidos na criação e inicialização destas “classes base”, voltadas para a análise e criação das demais classes à medida que recebe novos dados, é que fica o X da questão pra mim. Não entendo como se consegue isto. Só sei que é por meio de programação de redes neurais
Teria que estudar muito mais o assunto para tentar entender como estes japas estão conseguindo fazer isto. A única coisa que sei é que ela utiliza o padrão de funcionamento dos neurônios, por isto se chama rede neural.
Os programadores estão ajudando a acabar com a sua própria profissão e a profissão dos analistas de sistemas. Aliados aos capitalistas, também estão ajudando a acabar com profissões como economista e contabilista, por meio de sistemas especialistas com IA.
Posteriormente, tais sistemas especialistas (programadores já eram) juntamente com os capitalistas e os engenheiros ajudarão a acabar com o resto das profissões do setor de serviços