Tuesday, April 22, 2008

IA por Bruno Ferreira e João Sousa


Na visão informática da Inteligência Artificial (IA) esta é definida como um campo de estudo que procura explicar e emular o comportamento inteligente em processos computacionais.

Um grande marco na história da IA foi a conferência de Verão em Darthmouth College em 1956 em que várias figuras se dedidcaram ao estudo do tópico Inteligência Artificial.
Mas já nas décadas de '40 e '50 Alan Turing debatia o assunto e deixou um dos maiores contributos para a IA: o Teste de Turing. Este teste consiste em avaliar se um computador tem a capacidade de ser inteligente através do teste de imitação, onde um interrogador tenta distinguir qual das interacções tem origem no computador.



Este teste ainda hoje é utilizado, principalmente no Loebner Prize, concurso que determina o chatterbot mais inteligente. Até hoje, ainda nenhum chatterbot conseguiu passar o Teste de Turing, mas houve um que ganhou a primeira medalha de prata: A.L.I.C.E.

A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) desenvolvido inicialmente por Richard Wallace em 1995. Ganhou por 3 vezes o prémio de programa mais humano do Loebner Prize e o seu desenvolvimento foi inspirado noutro chatterbot, ELIZA.
ELIZA foi o primeiro chatterbot alguma vez concebido. Criado em 1966 por Joseph Weizenbaum, este bot tenta simular o ambiente de um consultório psiquiátrico. Foi escolhido este ambiente, pois assim o bot não precisa de uma grande base de dados com conhecimentos do mundo real.



Há diversos tipos de linguagem para programar um programa em IA. Algumas das linguagens que podem ser utilizadas em IA são a IPL, a LISP, a SAIL, a KRL, a LOGO, a PROLOG, a PHYTON, a C++ e a JAVA.

A IA já tem algumas aplicações práticas hoje em dia:
Planeamento logístico - DART
Robótica - HipNav
Jogos - Deep Blue
Diagnósticos Médicos
Chatterbots - Programas que simulam conversações



Nos Sistemas Baseados em Conhecimento há uma separação clara entre conhecimento e raciocínio, ou seja, o controlo do programa não se mistura com a especificação do conhecimento.
Os Sistemas Periciais são um caso específico de Sistemas Baseados em Conhecimento, sendo um sistema informático que utiliza conhecimento, factos e métodos de raciocínio para resolver problemas que normalmente requerem peritos humanos.

Corpo do Sistema Pericial
-Base de Conhecimento (Contém o conhecimento sobre o domínio)
-Motor de Inferência (Gera novos factos a partir dos factos existentes e da base de conhecimento até chegar conclusões)
-Memória de trabalho (Contém os factos do problema dados pelo utilizador e os novos factos inferidos)

Componentes Adicionais Sistema Pericial
-Módulo de aquisição (Ferramenta que permite a introdução e verificação do conhecimento do domínio)
-Mecanismo de explicação (Responde às perguntas do utilizador acerca do processo de inferência)
-Interface com o utilizador (Faz a interacção entre o utilizador e o sistema pericial. Recebe factos, devolve a conclusão, fornece explicações)

Nos sistemas periciais existem 3 tipos de raciocinio: baseado em regras, em modelos e em casos.
Algumas das aplicações práticas dos sistemas periciais são: diagnóstico, interpretação, prescrição, concepção, planeamento, monitorização, controlo e instrução.
Exemplos de sistemas periciais: Dendral, Mycin, Puff, Pathfinder,...

As redes semânticas são um método de representação de conhecimento usando grafos compostos por nós e arcos onde os nós representam objectos e os arcos relações entre objectos.



A palavra heurística vem da palavra grega Heuriskein, que significa descobrir (e que deu origem também ao termo Eureca), sendo uma pesquisa realizada por meio da quantificação de proximidade a um determinado objectivo. Diz-se que se tem uma boa (ou alta) heurística se o objecto de avaliação está muito próximo do objectivo; diz-se de má (ou baixa) heurística se o objecto avaliado estiver muito longe do objectivo.

A biometria é um método de reconhecer uma pessoa com base numa característica fisiológica (Impressões digitais, íris,..) ou comportamental (Assinatura, forma de andar)

Os bio-computadores utilizam sistemas biológicos que derivam de moléculas como o DNA ou proteínas, para realizarem cálculos computacionais como armazenamento e processamento de dados.
Por todo o mundo, mais de 39 empresas e o MIT, desenvolvem novos bio-blocos que os cientistas utilizam como peças de "LEGO", para criar verdadeiras máquinas microscópicas. Como exemplo temos as bactérias desenvolvidas na Universidade do Texas que mudam de cor quando expostas a luz vermelha. Através deste método consegue-se produzir uma imagem de alta resolução (cerca de 20 megapixels/cm2).

Uma rede neuronal artificial é composta de um número de unidades (neurónios artificiais) interligados, tendo cada unidade um comportamento específico (local). Consiste basicamente de um neurónio que executa uma função lógica. Os nós produzem somente resultados binários e as conexões transmitem exclusivamente zeros e uns.

Sistema de processamento é um sistema que interliga vários nós de processamento (computadores individuais, não necessariamente homogéneos) de maneira que um processo de grande consumo seja executado no nó "mais disponível", ou mesmo subdividido por vários nós, conseguindo-se grandes ganhos.

Um nano computador, é um computador cujas dimensões físicas são microscópicas, sendo esta a única diferença para os computadores normais. Isto é possível ao reduzido tamanho dos chips de silício, esta evolução dos circuitos integrados leva a um aumento da capacidade de armazenamento e de processamento.



Bibliografia:

http://www.dcc.fc.up.pt/~mcoimbra/lectures/PSI_0607/PSI_2007_Trabalho_Biometria.pdf
http://www.anossaescola.com/blog/bioscience.php?blogid=48&archive=2006-11
http://www2.dc.ufscar.br/~saito/download/topicos-pis/AULA02-RNA.ppt
http://pt.wikipedia.org/wiki/Sistema_de_processamento_distribu%C3%ADdo
http://whatis.techtarget.com/definition/0,,sid9_gci514014,00.html
http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/aplicacoes_de_ia.html
http://www.geocities.com/revistaintelecto/iamc.html
http://www.das.ufsc.br/gia/history/node1.html
http://www.das.ufsc.br/gia/softcomp/
http://ltodi.est.ips.pt/hgamboa/SP2003/SP2003.HTM
http://controlo.dem.isel.ipl.pt/inteligentes/inteligentes_index.asp?menu=2
http://www.esec-castro-daire.rcts.pt/ok/Professores/Departamentos/MatInf/informatico/sergio/interest.htm

No comments: