Você está na página 1de 90

PROF.

MAYCON GUEDES CORDEIRO


PROF. FREDERICO CÉSAR RIBEIRO MARQUES

LICENCIATURA EM INFORMÁTICA
Inteligência Artificial

CACHOEIRO DE ITAPEMIRIM
INSTITUTO FEDERAL DE EDUCAÇÃO,
CIÊNCIA E TECNOLOGIA DO ESPÍTIRO SANTO
2014
Governo Federal
Ministro de Educação
José Henrique Paim
Instituto Federal do Espírito Santo - Ifes
Reitor
Denio Rebello Arantes
Pró-Reitora de Ensino
Araceli Verónica Flores Nardy
Diretor-geral do Campus Cachoeiro de Itapemirim
Carlos Cezar de Oliveira Bettero
Diretora do Centro de Educação a Distância - Cead
Vanessa Battestin Nunes
Coordenadores da Universidade Aberta do Brasil - UAB
Danielli Veiga Carneiro Sondermann
Esther Ortlieb Faria de Almeida
Curso de Licenciatura em Informática
Coordenação de Curso
Rafael Vargas Mesquita dos Santos
Designer Instrucional
João Paulo Brito Gonçalves
Professor Autor
Maycon Guedes Cordeiro
Frederico César Ribeiro Marques
Ficha Catalográfica

DIREITOS RESERVADOS
Instituto Federal do Espírito Santo - Ifes
Avenida Rio Branco, nº 50 - Santa Lúcia - CEP. 29056-255 – Vitória – ES - Telefone: 3227-5564
Créditos de autoria da editoração
Capa: Juliana Cristina da Silva
Projeto gráfico: Juliana Cristina e Nelson Torres
Iconografia: Nelson Torres
Editoração eletrônica: Produção de Material - Cead/Ifes
Revisão de texto:
Esther Ortlieb Faria de Almeida

COPYRIGHT – É proibida a reprodução, mesmo que parcial, por qualquer meio, sem autorização escrita dos
autores e do detentor dos direitos autorais.
Olá, Aluno(a)!

É um prazer tê-lo conosco.

O Ifes oferece a você, em parceria com as Prefeituras e com o Governo


Federal, o Curso Licenciatura em Informática na modalidade a distância.
Apesar de este curso ser ofertado a distância, esperamos que haja
proximidade entre nós, pois, hoje, graças aos recursos da tecnologia da
informação (e-mails, chat, webconferência, etc.) podemos manter uma
comunicação efetiva.

É importante que você conheça toda a equipe envolvida neste curso:


coordenadores, professores formadores e tutor, porque, quando precisar
de algum tipo de ajuda, saberá a quem recorrer.

Na EaD – Educação a Distância, você é o grande responsável pelo sucesso


da aprendizagem. Por isso, é necessário que se organize para os estudos
e para a realização de todas as atividades, nos prazos estabelecidos,
conforme orientação dos professores especialistas e tutor.

Fique atento às orientações de estudo que se encontram no Manual


do Aluno!

A EaD, pela sua característica de amplitude e pelo uso de tecnologias


modernas, representa uma nova forma de aprender, respeitando , sempre,
o seu tempo.

Desejamos sucesso a você.

Equipe do Ifes
ICONOGRAFIA

Veja, abaixo, alguns símbolos utilizados neste material para guiá-lo em seus estudos.

Fala Professor Fala do Professor.

Conceitos Conceitos importantes. Fique atento!

Atividades que devem ser elaboradas por


Atividades
você, após a leitura dos textos.

LEIA Indicação de leituras complementares,


Indicações MAIS
referentes ao conteúdo estudado.

Destaque de algo importante, referente ao


Atenção
conteúdo apresentado. Atenção!

Reflexão/questionamento sobre algo importante,


Reflexão
referente ao conteúdo apresentado.

Espaço reservado para as anotações que você


Anotações
julgar necessárias.
APRESENTAÇÃO

Seja bem-vindo a disciplina de Inteligência Artificial!

Meu nome é Maycon Guedes Cordeiro e sou o professor responsável por


esta disciplina. Sou graduado em Ciência da Computação com mestrado
em Pesquisa Operacional e Inteligência Computacional. Coordeno um
grupo de pesquisa de Computação Natural, onde oriento vários projetos
na área e tenho trabalhos publicados no tratamento de problemas de
análise combinatória com Inteligência Artificial.

Este material está organizado para iniciarmos nossos estudos com alguns
conceitos fundamentais a respeito de Inteligência Artificial, em seguida
será explorado alguns tópicos de maior relevância desta área, a ideia desta
disciplina é a de fazer um estudo introdutório, por isso, faremos apenas um
estudo teórico evitando a implementação dos algoritmos que geralmente
são abordados nos cursos de Ciência da Computação em pós-graduações.

Como futuros profissionais licenciados em informática é muito importante


que saibam identificar as principais subáreas da Inteligência Artificial,
assim como, suas aplicabilidades no mundo real.

O objetivo deste material é auxiliá-lo no estudo da disciplina, por meio


de dicas, sugestões e exemplos práticos, destacando os pontos relevantes a
serem estudados. Em geral, para ser bem sucedido neste curso, é importante
que se faça os exercícios e se estude regularmente, evitando, dessa forma,
o acúmulo de conteúdo.

Desejo sucesso a você!!!

Prof. Maycon Guedes Cordeiro


CAP. 1 - INTRODUÇÃO A INTELIGÊNCIA ARTIFICIAL  9
1.1 UM BREVE HISTÓRICO  14

CAP. 2 - REPRESENTAÇÃO DO CONHECIMENTO  17


2.1 INTRODUÇÃO  17
2.2 ABORDAGENS SOBRE O CONHECIMENTO E SUA
REPRESENTAÇÃO  18
2.3 TIPOS DE CONHECIMENTO  19
2.4 NÍVEIS DE CONHECIMENTO  20
2.5 LINGUAGENS DE REPRESENTAÇÃO DE CONHECIMENTO  20
2.5.1 Redes Semânticas  20
2.6 FRAMES  23
2.6.1 Especificação dos Slotes  23
2.6.2 Exemplo de um Sistema de Frames  24
2.6.3 Raciocínio em Sistemas de Frames  26
2.6.4 Vantagens e desvantagens dos frames  27

CAP. 3 - PROCESSAMENTO DE LINGUAGEM


NATURAL  29
3.1 INTRODUÇÃO  29
3.2 ANÁLISE MORFOLÓGICA  31
3.3 ANÁLISE SINTÁTICA  31
3.4 ANÁLISE SEMÂNTICA  32
3.4.1 Gramáticas Semânticas  32
3.5 ANÁLISE PRAGMÁTICA  34
3.6 APLICAÇÕES  34
3.7 DISCUSSÃO  35

CAP. 4 - SISTEMAS ESPECIALISTAS  37


4.1 ESTRUTURA GERAL DE UM SISTEMA ESPECIALISTA  39

CAP. 5 - REDES NEURAIS ARTIFICIAIS  45


5.1 CARACTERÍSTICAS DE UMA REDE NEURAL ARTIFICIAL  48
5.2 MODELAGEM  49
5.3 CLASSIFICAÇÃO DAS REDES NEURAIS ARTIFICIAIS  51
5.4 PROCESSAMENTO NEURAL  55
5.5 APLICAÇÕES  56

CAP. 6 - ALGORITMOS GENÉTICOS  57


6.1 INTRODUÇÃO  57
6.2 OTIMIZAÇÃO  58
6.3 MÍNIMOS E MÁXIMOS LOCAIS  59
6.4 APLICABILIDADE  60
6.5 PROBLEMAS DAS P-MEDIANAS  61
6.6 ALGORITMO DE TEITZ AND BART  65
6.7 PRINCIPAIS CONCEITOS DE UM AG  65
6.8 FUNCIONAMENTO DOS ALGORITMOS GENÉTICOS  67
6.8.1 População inicial  69
6.8.2 Avaliação  69
6.8.3 Seleção  69
6.8.4 Cruzamento  70
6.8.5 Mutação  71
6.8.6 Atualização  72
6.8.7 Finalização  72
6.8.8 Resultado final  73
6.8.9 Considerações finais  74

CAP. 7 - TUTORES INTELIGENTES  77


7.1 INTRODUÇÃO  77
7.2 ARQUITETURA DOS SISTEMAS TUTORES INTELIGENTES  79
7.3 MODELO DO ALUNO  80
7.4 MODELO DO DOMÍNIO  82
7.5 MODELO PEDAGÓGICO (TUTOR)  83
7.6 MODELO DE INTERFACE  85
7.7 EXEMPLOS DE SISTEMAS TUTORIAIS INTELIGENTES  87

REFERÊNCIAS 89
INTRODUÇÃO A INTELIGÊNCIA
ARTIFICIAL

No universo dos filmes encontramos várias abordagens do tema


inteligência artificial. Em filmes como 2001: Uma Odisseia no Espaço Fala Professor
(1968), Matrix (1999), A.I. - Inteligência Artificial (2001), Eu, Robô
(2004) e Transcendence (2014), dentre outros que poderíamos citar.
Temos a certeza do fascínio dos homens em produzir entidades
artificiais capazes de realizar tarefas que, se fossem realizadas por
humanos, seriam ditas inteligentes. Entretanto, sabemos que nossa
atual tecnologia ainda está longe de produzir essas “máquinas
pensantes”. Ao sair do universo “hollywoodiano” surge uma pergunta:
Qual a abordagem científica do tema INTELIGÊNCIA ARTIFICIAL?.

A Inteligência Artificial (IA), hoje tratada como Inteligência


Computacional, surgiu como ciência logo após a Segunda Guerra
e teve seu nome criado em 1956 por John McCarthy. Já temos um
conhecimento intuitivo do potencial do cérebro animal e sua grande
capacidade de processar informações com notável velocidade e baixo
custo energético. Entretanto:

Como definir inteligência artificial sem definir o que é inteligência? Reflexão

Para isso iremos nos valer de algumas das definições históricas de


inteligência encontradas em alguns textos sobre o assunto:

• A atividade inteligente consiste na compreensão do essencial de


uma situação e numa resposta reflexa apropriada (Helm);
• A inteligência pode ser considerada um prolongamento da adaptação
orgânica do homem e dos animais ao meio ambiente (Jean Piachet);
• Julgar bem, compreender bem, raciocinar bem (Binet);
• A capacidade de conceituar e compreender o seu significado
(Tearman).
10 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Poderíamos citar inúmeras definições de celebres estudiosos no decorrer


do tempo, porém, isso seria um esforço fora do escopo deste texto. O
dicionário Aurélio ainda traz uma definição mais detalhada:

• Faculdade de aprender, apreender ou compreender; percepção,


apreensão, intelecto, intelectualidade.
• Qualidade ou capacidade de compreender e adaptar-se facilmente;
capacidade, penetração, agudeza, perspicácia.
• Maneira de entender ou interpretar;
• Acordo, harmonia, entendimento recíproco.
• Relações ou entendimentos secretos; conluio, maquinação, trama.
• Destreza mental; habilidade.
• Psicol. Capacidade de resolver situações problemáticas novas
mediante reestruturação dos dados perceptivos.

O objetivo de trazer as mais diversas definições à luz de nossos estudos


é entender a complexidade de simplesmente tentar definir o conceito
INTELIGÊNCIA. Observe que cada uma das definições aborda certo
aspecto do que é inteligência, mas, suprime outros, não apresentando
um conceito único e completo.

Na década de 80 a equipe chefiada pelo psicólogo Howard Gardner,


da universidade de Harvard, traz a teoria das inteligências múltiplas.
Naquela época entendeu-se que os conceitos apresentados eram
insuficientes para descrever a grade variedade de habilidades cognitivas
apresentadas pelos seres humanos. Com grande repercussão no campo
da educação, essa teoria dividia a inteligência em nove tipos, sendo eles:

• Lógico-Matemática;
• Linguística;
• Musical;
• Espacial;
• Corporal-Cenestésica;
• Intrapessoal;
• Interpessoal;
• Naturista e;
• Existencial.
11
Inteligência Artificial

Procure definir e exemplificar os nove tipos de inteligência


abordados por Gardner. Atividades
O interessante no estudo de Gardner e que é de suma importância
para nosso estudo é o fato de que, não necessariamente, um agente
é dito inteligente por raciocinar bem ou executar cálculos com
extrema rapidez. Somos inteligentes porque realizamos inúmeras
atividades que necessitam de habilidades bem diferentes das
apresentadas por processadores artificiais:
• Jogar xadrez;
• Entender a linguagem humana;
• Decidir diante de incertezas;
• Resolver problemas complexos (de difícil formulação
matemática envolvendo muitas variáveis);
• Reconhecer objetos pela imagem.

Já conhecemos computadores que realizam essas atividades com


maior ou menor maestria que seres humanos, então por si só, Reflexão
computadores são inteligentes?

Após refletir sobre a questão abordada estamos preparados para


entender o conceito de inteligência artificial como deve ser entendida.
Para isso, vamos dividir os inúmeros conceitos de inteligência artificial
em duas grandes vertentes.

1. Desenvolvimento de sistemas que pensam como humanos ou que


pensam racionalmente:
• “O novo e interessante esforço para fazer os computadores pensarem...
máquinas com mentes, no sentido total e literal.” (Haugeland, 1985);
• “Automatização de atividades que associamos ao pensamento
humano, atividades como a tomada de decisões, a resolução de
problemas, o aprendizado...” (Bellman, 1956);
• O estudo das faculdades mentais pelo uso de modelos
computacionais” (Charniak e McDermott, 1985);
• “O estudo das computações que tornam possível perceber, raciocinar
e agir.” (Winston, 1992).
12 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

2. Desenvolvimento de sistemas que atuam como humanos ou que


atuam racionalmente:
• “O estudo sobre como fazer computadores realizarem coisas nas quais,
no momento, as pessoas sejam melhores.” (Rich e Knight, 1992);
• “A Inteligência Artificial pode ser definida como o ramo da Ciência
da Computação que se ocupa da automação do comportamento
inteligente”. (Luger,2004).

Assim como no livro “Uma Introdução à Inteligência Computacional:


fundamentos, ferramentas e aplicações.” de Ronaldo Ribeiro Goldschmidt,
que é base do texto apresentado nessa introdução; vamos utilizar como
foco do nosso estudo a seguinte definição de inteligência artificial:

“A Inteligência artificial é uma disciplina científica que utiliza as


capacidades de processamento de símbolos da computação com o
fim de encontrar métodos genéricos para automatizar atividades
perceptivas, cognitivas e manipulativas, por via do computador.”
(Pereira 2004).

É interessante ressaltar a característica multidisciplinar da IA,


envolvendo diversas áreas do conhecimento:

Figura 1 – Multidisciplinaridades da Inteligência artificial

Fonte: Elaborado pelo autor (2014)


13
Inteligência Artificial

Com toda a complexidade apresentada pela definição é fácil perceber a


necessidade da divisão da inteligência artificial em vários paradigmas,
criando assim, uma taxonomia da IA:

Figura 2 – Principais subáreas da Inteligência artificial

Fonte: Elaborado pelo autor (2014)

• Lógica Fuzzy: Também conhecido como Lógica Nebulosa, tem o


objetivo de mimetizar o comportamento humano frente a situações
de incerteza, subjetividade e imprecisão. Fornece ferramentas para
tratar computacionalmente problemas que envolvem conceitos
imprecisos como: muito, pouco, pequeno, grande, bom, quente, frio
entre outros.
• Redes Neurais: mimetiza o comportamento e o processamento
cerebral baseado em unidades de processamento chamadas de
neurônios artificiais que trabalham de forma não linear a paralela.
Reproduz habilidades cerebrais como: aprendizagem, generalização,
associação e abstração.
• Computação Evolucionária: É um paradigma baseado na teoria da
evolução de Charles Darwin e na recombinação genética. Desdobra-
se em várias especialidades, entre elas podemos citar os algoritmos
genéticos (busca adaptativa de uma solução ótima que se baseia
na recombinação de possíveis soluções mais bem adaptadas ao
problema), programação genética (baseia-se na evolução natural
de programas para a solução de diversos problemas) e hardware
evolucionário (extensão do modelo genético para trabalhar com
circuitos eletrônicos).
• Inteligência Artificial: Conforme estamos estudando ao longo desse
texto, se baseia no processamento simbólico do conhecimento
produzindo softwares e hardwares que pareçam inteligentes.

É importante ressaltar que a taxinomia aqui apresentada não é única e


definitiva, tendo assim, outras apresentações em outros textos científicos
e que essa foi escolhida como forma de simplificação.

Quando desenvolvidos e utilizados de forma separada (individualizada)


os paradigmas são chamados de Clássicos ou IA Clássica. Porém,
muitos estudos vêm sendo desenvolvidos no intuito de explorar a
14 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

potencialidade de utilização híbrida dos paradigmas acima citados.


Desenvolvendo sistemas Híbridos onde as limitações de cada sistema
são trabalhadas de forma a gerar uma inteligência grupal, sendo então
chamados de paradigmas distribuídos ou IA Distribuída.

Tão ampla quanto à diversidade das áreas do conhecimento que


envolve o estudo de inteligência artificial é o potencial de utilização dos
resultados obtidos. São diversas as possibilidades de aplicação sendo em
sua grande maioria utilizada como sistemas de suporte a decisão.

Investigue alguns exemplos de aplicação de IA e discuta com seus


Atividades colegas.

1.1 UM BREVE HISTÓRICO

O primeiro trabalho reconhecido como de Inteligência Artificial surgiu


em 1943 com a modelagem matemática de neurônios naturais proposta
por Warren McCulloch e Walter Pitts. Na proposta desses dois estudiosos,
o neurônio apresentava apenas dois estados (Ligado/Desligado) os
quais eram determinados por estímulos dos neurônios mais próximos.
McCulloch e Pitts ainda sugeriram que redes de neurônios artificiais
adequadamente compostas, eram capazes de aprender.

Donald Hebb, em 1949, propõe a então chamada regra de Hebb onde


se dizia que as redes neuronais aprendiam através da modificação da
intensidade das conexões dos neurônios mais próximos.

Em 1950, Alan Turing apresenta em seu artigo o Teste de Turing que seria
uma ideia mais concreta do que seria IA. O teste consistia em introduzir
um juiz humano para conversar, via terminal, com uma máquina e com
um ser humano, sem saber quem é quem. Então a máquina seria dita
inteligente se, ao final da conversa o juiz não conseguisse distinguir o
homem da máquina.

Marvin Minsky e Dean Edmonds em 1951 desenvolveram o primeiro


computador utilizando redes de neurônios artificiais, o SNARC.
Entretanto, mais tarde, foi o próprio Minsky responsável pelo
“esfriamento” dos estudos em IA. Provando teoremas importantes, ele
provou a limitação dos modelos atualmente utilizados.
15
Inteligência Artificial

Após o seminário de Dartmouth, em 1955, um novo ânimo surgiu na


comunidade científica e novos estudos sobre o tema foram surgindo.
Instituições importantes como a IBM, MIT e Stanford se esforçavam em
apresentar soluções para problemas envolvendo prova automática de
teoremas e compreensão de linguagem natural. Surge então a primeira
linguagem de programação voltada para inteligência computacional: LISP.

Dentre os avanços e percalços quem envolveram o estudo de IA nos


anos subsequentes podemos citar dois grandes problemas: Aplicação
dos programas desenvolvidos em soluções reais com grande volume
de dados e variáveis, e as limitações das aplicações em reconhecer o
conhecimento a partir do domínio do problema.

O primeiro sistema especialista comercial bem sucedido foi desenvolvido


em 1982 e era usado no apoio a configuração de novos computadores.

Até então, os estudos envolvendo redes neurais artificiais haviam


estagnado e somente no final da década de 80 foram retomados com
força total, após o surgimento de estruturas conexionistas e o algoritmo
de retro propagação de erro capaz de dar as redes capacidade de aprender
e tratar, de forma bem sucedida, problemas não lineares.

Desde então a IA vem se consolidando como ciência e como metodologia.


As subáreas da inteligência computacional vêm se integrando assim
como a própria IA se integra com outras áreas do conhecimento, se
tornando cada vez mais robustas e aplicáveis.
16 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques
REPRESENTAÇÃO DO
CONHECIMENTO

Olá,
Nesse capítulo vamos entender os conceitos básicos de conhecimento Fala Professor
na Inteligência Artificial. Esse conteúdo é primordial para o
entendimento dos capítulos seguintes que iremos nos aprofundar.
Bons estudos!

Alguns autores definem representação do conhecimento


como a formalização e estruturação de conhecimento em um Conceitos
computador, de forma que ele possa ser manipulado pelo sistema
gerenciador da base de conhecimento. Barr, em 1986, a definiu
como uma combinação de estruturas de dados e procedimentos de
interpretação que, se usados de maneira correta em um software,
irão produzir um comportamento inteligente (observável através
do conhecimento que demonstra).

2.1 INTRODUÇÃO

Para utilizar um corpo de conhecimento em uma máquina, é


necessário escolher uma maneira de representá-lo. Todo programa de
computador contém o conhecimento sobre um determinado problema
a ser resolvido. O conhecimento está nos algoritmos que o programa
emprega e nos procedimentos de decisão que determinam qual destes
algoritmos empregar em determinada circunstância. Quando carrega-
se um programa em um computador, pode-se dizer que o computador
adquiriu o respectivo conhecimento, entretanto, na maioria dos
programas, estas informações não são representadas explicitamente e
não podem ser facilmente atualizadas ou manipuladas.

Uma das principais características dos programas de IA é que o sistema


é estruturado de modo a separar o código executável dos dados ou
conhecimento do sistema. Assim, em IA, o termo “conhecimento”
significa a informação que um programa de computador necessita para
que possa comportar-se inteligentemente.
18 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

As interpretações de “representação de conhecimento” e seu papel em


IA variam bastante, mas a questão central, ainda segundo Brachman, é
a seguinte: “Como transmitir o conhecimento do mundo para um robô
ou outro sistema computacional, dando-lhe uma capacidade adequada
de raciocínio, de modo que, este conhecimento possa ser utilizado para
permitir ao sistema uma adaptação e exploração do seu ambiente?”.

Com relação a isto, surgem algumas indagações básicas importantes:

• De que forma o conhecimento pode ser expresso?


• Como encontrar a linguagem adequada para a representação deste
conhecimento?
• Como formar uma base de conhecimento suficientemente detalhada
e que represente a compreensão do domínio?
• Como realizar inferências automáticas, dando acesso tanto ao
conhecimento implícito na base de conhecimento, quanto àquele
armazenado explicitamente (declarativo)?
• Como o sistema deve proceder na presença de informações
incompletas, incorretas ou de senso comum?

2.2 ABORDAGENS SOBRE O CONHECIMENTO


E SUA REPRESENTAÇÃO

Existem duas tradicionais abordagens ou metodologias que direcionam


as pesquisas em representação do conhecimento, praticamente desde
os anos formativos de IA. Uma delas representada por John McCarthy,
tenta adaptar os problemas de IA a um mundo sistematizado da lógica
simbólica, onde seu principal interesse é a maneira de representar
relações e características de um problema através do uso de expressões da
lógica simbólica para ampliar o limite das possibilidades para estes tipos
de expressões. A segunda abordagem, representada por Marvin Minsky,
afirma que o comportamento do cérebro humano é muito complexo
para ser expresso dentro da lógica simbólica. Ele criou uma combinação
de ferramentas e métodos que podem descrever as atividades do
cérebro humano sem permanecer confinado à lógica simbólica. A lógica
simbólica é geralmente referida como abordagem declarativa, enquanto
esta última abordagem é chamada de procedimental.
19
Inteligência Artificial

Figura 3 – John McCarthy e Marvin Minsky

Fonte: http://www.din.uem.br/ia/precursores/mccarthy.html; http://en.wikipedia.


org/wiki/Marvin_Minsky

David Israel faz uma boa análise sobre estas duas vertentes e, segundo ele,
o que estas duas correntes de pesquisas em IA vêm debatendo ao longo
dos anos é, na verdade, o papel da lógica na resolução de problemas em
IA. McCarthy acredita que a maneira de resolver problemas é projetar
programas de computador para raciocinar de acordo com linguagens bem
definidas da lógica matemática, sendo ou não a maneira como as pessoas
pensam. Por outro lado, Minsky acredita que uma abordagem proveitosa
é tentar utilizar os computadores para imitar a maneira como o cérebro
funciona e, afirma ele, isto nada tem haver com a lógica matemática.

2.3 TIPOS DE CONHECIMENTO

Conhecimento é um termo abstrato usado para capturar a compreensão


de um indivíduo num domínio específico, na representação do
conhecimento é importante diferenciar três tipos:

1. Conhecimento Procedural: Conhecimento que descreve como


o problema é resolvido. Regras, estratégias e procedimentos são
representações típicas para este tipo de conhecimento. Exemplo:
Receita de Bolo.
2. Conhecimento Declarativo: Descreve o conhecimento sobre o
problema. Inclui declarações que são assumidas como verdadeiras ou
falsas e que descrevem um objeto ou conceito. Exemplo:
• Fumar pode provocar câncer no pulmão.
• Raiz quadrada de um número positivo é um número positivo.
20 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

3. Meta Conhecimento: Conhecimento do próprio conhecimento.


É usado para determinar conhecimentos mais específicos para
resolver determinado problema, usado para aumentar a eficiência de
resolução de problemas dirigindo o raciocínio para o subconjunto de
conhecimento adequado. Utiliza a Representação por Meta-Regras:
“Regras que descrevem como usar outras regras.” Exemplo:
• Se o carro não pega;
• E o sistema elétrico está funcionando;
• Então usar regras relativas ao sistema de injeção.

2.4 NÍVEIS DE CONHECIMENTO

1. Conhecimento Superficial: Faz uma descrição superficial do


conhecimento.
2. Conhecimento Profundo: Considera a estrutura causal e interna
de um sistema e contempla a interação entre os componentes desse
sistema.
3. Conhecimento do Perito: Geralmente não é baseado em definições
claras nem em algoritmos precisos, composto por teorias de caráter
geral, regras de dedo, estratégias e truques aprendidos com a
experiência.

2.5 LINGUAGENS DE REPRESENTAÇÃO DE


CONHECIMENTO

Sistemas computacionais precisam de formalismos matemáticos para


expressar e manipular conhecimento declarativo de forma tratável
e computacionalmente eficiente, dos formalismos encontrados na
literatura destacam-se as redes semânticas e os Frames.

2.5.1 Redes Semânticas

Uma rede semântica é uma forma gráfica de representação de


conhecimento, onde os objetos, conceitos ou situações no domínio são
representados por um conjunto de nós conectados entre si através de
um conjunto de arcos, que representam as relações entre os nós.

Para entendermos as Redes Semânticas, vamos opor o tratamento


necessário e suficiente que os sistemas convencionais (administrativos,
financeiros, etc – modelados via técnicas convencionais da TI),
costumam aplicar aos termos descritivos em seus bancos de dados, contra
21
Inteligência Artificial

o tratamento demandado quando o assunto é medicina, onde os bancos


de dados são conjugados com bancos de conhecimentos especializados.
Na modelagem convencional um termo como “pedra”, por exemplo,
poderia significar um item de estoque e nada mais precisaria ser
entendido sobre o papel da “pedra” nos demais aspectos do conjunto de
aplicativos. Já na medicina, se a tal “pedra” se refere a um cálculo renal, o
termo é um nome de doença, enquanto que, a pedra, como objeto, se foi
engolida por uma criança, trata-se de um corpo estranho no organismo.
Na medicina alternativa, se for uma pedra de ônix, uma das variantes do
quartzo, terá o papel terapêutico de estabilizar a energia do paciente. A
Figura 2 mostra, propositalmente simplificado (desmistificado), o que
poderia ser um trecho de rede semântica que ilustra essa ideia.

Figura 4 – Fragmento de rede Semântica

Fonte: Elaborado pelo autor (2014)

Os nós representam objetos com suas propriedades e valores. E os arcos


representam as relações entre os nós. O programa busca o casamento
de padrões de tal forma que se não existir a resposta em um arco, ele
procura a resposta em suas ligações isa e ako, ou seja, passa a questão até
um nó que contenha um arco com a resposta.
22 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Exemplo de Busca:

Figura 5 – Fragmento de rede Semântica

Fonte: Elaborado pelo autor (2014)


Para provocar a declaração “Cães comem”, pode-se usar busca sobre a
rede para provar a hipótese.

Buscando a partir do nó “Cão”, temos:


• “Cão é um mamífero”
• “Mamífero é um animal”
• “Animal faz comer”
• Isto prova que: “Cães comem”

Vantagens do uso de Redes Semânticas:

• Simplicidade de representação devido às características de herança;


• Permitem uma redução no tempo de pesquisa, visto que os nós estão
diretamente ligados aos nós vizinhos com interesse;
• As redes semânticas estão na origem da Programação Orientada a
Objetos.

Desvantagens do uso de Redes Semânticas:

• Busca em redes semânticas grandes podem ser muito ineficientes;


• Não há homogeneidade na definição de nós e links;
• Hereditariedade pode causar dificuldades no tratamento de
exceções;
• Pode haver conflito entre características herdadas;
• Não tem uma norma de interpretação, a interpretação depende dos
programas que a manipulam;
23
Inteligência Artificial

• Podem permitir inferências inválidas;


• Menos expressiva que Lógica de Primeira Ordem;
• Não há quantificadores.

2.6 FRAMES

A representação por frames está intimamente relacionada com as redes


semânticas, um frame é uma estrutura que tem um nome e um conjunto
de pares atributo-valor. O nome do frame corresponde a um nó numa rede
semântica, os atributos correspondem aos nomes dos arcos associados
com este nó e os valores correspondem aos nós nas outras extremidades
desses arcos. Os pares atributo-valor são geralmente chamados de slots, um
atributo dá o nome de um slot e os valores correspondem ao seu conteúdo.

Os frames dividem-se em construtores, que definem as categorias do


domínio e em instâncias, que representam os objetos do domínio.

Na construção da estrutura de um frame definem-se os slots que


caracterizam a categoria correspondente. Exemplos típicos de slots são:

• O seu identificador.
• Em que classe ou classes está contido.
• Os atributos que qualificam a categoria e todas as suas subclasses.
• Tipos de dados, intervalos de variação e outras restrições que os
valores podem assumir.
• Procedimentos associados aos atributos e que devem ser executados
para buscar um valor específico de atributo (num banco de dados ou
através de um cálculo, por exemplo).
• Relações entre este frame e os demais do sistema

2.6.1 Especificação dos Slotes

Tipicamente os slots especificam as seguintes informações:

• Um tipo comum de dado (integer, real, string, booleano);


• Uma lista de dados de um determinado tipo;
• Um nome de outro frame (relacionamentos do tipo associação ou
especialização/generalização);
• Uma restrição sobre possíveis valores que podem ser assumidos;
• Uma chamada de procedimento.
24 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

2.6.2 Exemplo de um Sistema de Frames

Figura 6 – Frame Hotel

Fonte: Elaborado pelo autor (2014)

Figura 7 – Frame Hospedagem

Fonte: Elaborado pelo autor (2014)


25
Inteligência Artificial

Figura 8 – Frame Raiz

Fonte: Elaborado pelo autor (2014)

Figura 9 – Frame Acomodação

Fonte: Elaborado pelo autor (2014)

Figura 10 – Frame Hotel3s

Fonte: Elaborado pelo autor (2014)


26 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 11 – Frame Apartamento

Fonte: Elaborado pelo autor (2014)

Figura 12 – Rede semântica correspondente aos frames do exemplo

Fonte: Elaborado pelo autor (2014)

2.6.3 Raciocínio em Sistemas de Frames

Como no caso das redes semânticas, a principal forma de inferência


em sistemas de frames se dá por herança de atributos, as instâncias de
um frame herdam todos os atributos definidos para aquele frame, bem
como seus valores, métodos e restrições.

As exceções à herança de atributos são especificadas pela representação


explícita no slot correspondente da classe especializada.

Pode-se expandir o mecanismo de raciocínio com frames associando-


se regras de produção, essas regras podem descrever aspectos
comportamentais dos objetos ou sequências de ações que devem ser
desencadeadas por determinados valores de atributos. As premissas e
conclusões das regras se referem a frames, atributos e valores definidos.
27
Inteligência Artificial

Exemplo:

Se solicitada reserva
E acomodação.número = X
E acomodação.diária < cliente.diária
E acomodação.categoria = confortável
Então reserva.apto := X
cliente.hotel := acomodação.é_parte_de

2.6.4 Vantagens e desvantagens dos frames

• Frames permitem uma rápida modelagem do domínio, uma vez


que, as estruturas de representação são extensas e flexíveis.
• Permitem obter um modelo descritivo do domínio de uso genérico.
• Permitem o encapsulamento dos métodos de manipulação e
procedimentos, garantindo modularidade e consistência do sistema
mesmo em domínios complexos.
• Na maioria dos domínios de aplicação é necessário combinar o
mecanismo de inferência por herança de atributos com regras de
produção, aumentando a complexidade da solução.

1. No planeta dos alienígenas Klingons, as naves só servem para


transportar alienígenas do tipo Klingon. Nesse planeta existem
Atividades
naves marítimas e terrestres: as primeiras têm um leme verde,
enquanto que as segundas têm 3 rodas. Mais tarde foram
inventadas as naves hibridas, que se movem no mar e em terra,
tendo por isso um leme verde e também 3 rodas. O Klingon
Wolf comprou uma nave hibrida, que pintou de vermelho e
lhe chamou Rapina. Represente a Base de Conhecimento
Utilizando Enquadramento (Frames).
2. A propriedade mais importante de um avião é que ele voa. Para
o fazer, um avião pode ter um motor do tipo hélice. Neste caso, é
classificado pelo número de motores (monomotor ou bimotor).
Em alternativa, se for um jato, o motor é do tipo turbina.
• Represente o Problema com Rede Semântica;
• Represente o problema com Frame
28 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques
PROCESSAMENTO DE
LINGUAGEM NATURAL

Olá,
Neste capitulo vamos descrever as etapas do Processamento de Fala Professor
Linguagem Natural levantando as principais características
necessárias para uma implementação desse mecanismo, bem como
alguns exemplos de suas aplicações, demonstrando o potencial desse
ramo da Inteligência Artificial que está cada dia mais presente no
cotidiano das pessoas.

Processamento de linguagem natural é um conjunto de técnicas


computacionais para a análise de textos em um ou mais níveis Conceitos
linguísticos, com o propósito de simular o processamento humano
da língua.

3.1 INTRODUÇÃO

O processamento da linguagem natural (PLN) trata computacionalmente


os diversos aspectos da comunicação humana, como sons, palavras,
sentenças e discursos, considerando formatos e referências, estruturas
e significados, contextos e usos. Em sentido bem amplo, podemos dizer
que o PLN visa fazer o computador se comunicar em linguagem humana,
nem sempre necessariamente em todos os níveis de entendimento e/ou
geração de sons, palavras, sentenças e discursos. Estes níveis são:

• Análise morfológica: Identificação dos elementos básicos que


formam as palavras. Por exemplo, o verbo “chegou”, expressa a ação
de chegar mas também, devido à presença do sufixo –“ou”, temos a
informação que essa ação aconteceu no passado. Outro exemplo, a
palavra “pessoas” contém o sufixo -s que indica que a palavra denota
mais de uma pessoa.
• Análise sintática: O resultado da análise morfológica é um conjunto
de palavras cujas categorias foram identificadas, junto com todas as
informações pertinentes que foram possíveis extrair da composição
30 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

morfológica. A análise sintática tenta identificar como as palavras se


combinam para determinar a estrutura da frase.
• Análise semântica: A estrutura produzida pela análise sintática é
normalmente uma árvore cujas folhas são as palavras e os nodos
internos, categorias. A partir das folhas, informações são propagadas
até a raiz para produzir uma representação do conteúdo vinculado
pela frase.
• Análise Pragmática: Para interpretar uma frase, às vezes é preciso se
referir às frases anteriores. É o caso com os pronomes. Considere, por
exemplo, a segunda frase do seguinte discurso: “Há muito tempo que
João está com meu livro. Eu gostaria de recuperá-lo.” Para interpretar
o pronome da segunda frase, é preciso procurar um antecedente na
frase que precede. Nesse caso, teremos um mecanismo para relacionar
o pronome com o “meu livro” e não com “João”.
A representação do significado de uma sentença, independente de
contexto, é obtida através de sua forma lógica como podemos observar
na Figura 3.

A forma lógica codifica os possíveis sentidos de cada palavra e identifica


os relacionamentos semânticos entre palavras e frases. Uma vez que os
relacionamentos semânticos são determinados, alguns sentidos para as
palavras tornam-se inviáveis e, assim, podem ser desconsiderados.

Figura 13 – Transformações da sentença na estrutura sintática e na forma lógica

Fonte: Elaborado pelo autor (2014)

A estrutura sintática de uma sentença é obtida através do processamento,


sendo que a representação desta estrutura é regida por leis gramaticais
- definidas em uma gramática. Outras informações necessárias a esta
etapa, como as categorias morfológicas das palavras, são encontradas
em um léxico.
31
Inteligência Artificial

O mapeamento da estrutura sintática da sentença em sua forma lógica é


realizado pelo processamento semântico e, nele, o léxico também exerce
papel fundamental, com informações sobre o significado dos itens.

3.2 ANÁLISE MORFOLÓGICA

Este tipo de análise é necessário para que o tamanho do dicionário não


fique muito extenso, uma vez que é mais simples o armazenamento do
radical da palavra e seus afixos. Estes são os componentes que formam
uma palavra juntamente com o radical, como prefixos e sufixos. Um
exemplo de prefixo é “des” na palavra desesperança e de sufixo é “mos”
na palavra calamos.

O tratamento computacional deste tipo de análise é relativamente


simples. Basicamente com regras que analisam as palavras e as classificam
segundo tabelas de afixos. Por exemplo, a entrada zinho de uma tabela
de sufixos está associada a um diminutivo de um substantivo, portanto,
a palavra bonezinho é o diminutivo da palavra boné, que é seu radical.
Desta forma, são reconhecidas as palavras que não estão na sua forma
padrão, já adequando-as para a fase posterior de análise sintática. A
tabela 3.0 apresenta o uso de dois sufixos.

Tabela 1 – Sufixos
Sufixo Substantivo (radical) Palavra derivada
-zinho boné bonezinho
botão botãozinho
-zinha árvore árvorezinha
flor florzinha
Fonte: Elaborado pelo autor (2014)

Este tipo de sistema é o que passa uma palavra de sua forma como
é normalmente escrita para uma forma etiquetada, ou seja, com
identificação de seu radical e afixo.

Um exemplo de analisador morfológico para o português é o sistema


Palavroso, que realiza a identificação do afixo e pré-classifica as palavras
em quatro grupos: verbos, nomes e adjetivos, classes fechadas e advérbios.

3.3 ANÁLISE SINTÁTICA

No contexto do processamento da linguagem, as gramáticas utilizadas


na análise sintática têm sido chamada de Modelos de Linguagem
(Language Models - LM). Esta definição está associada ao amplo
32 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

universo de frases possíveis de serem modeladas para representação de


determinado domínio de análise.

O primeiro processamento que é efetuado na análise sintática é a


identificação das classes das palavras (também conhecidas como classes
morfológicas, etiquetas lexicais ou partes de fala). Para proceder esta
classificação, são implementados “parsers” que identificam nas frases
as classes das palavras que as compõem. Esta classificação de palavras
também é conhecida como etiquetagem (tagging).

Por exemplo, a frase “Eu tropecei na pedra.” Poderia ser etiquetada


da seguinte forma: Eu/PPE tropecei VP na/PAF pedra SSF. Esta
representação segue a tabela 3.1, onde são apresentadas as etiquetas, sua
descrição e a palavra correspondente na frase apresentada.

Tabela 2 – Etiquetagem Sintática


Etiqueta Descrição Palavra
PPE Pronome PEssoal eu
VP Verbo no Passado tropecei
PAF Preposição + Artigo Feminino na
SSF Substantivo Singular Feminino pedra

Fonte: Elaborado pelo autor (2014)


A etiquetagem das palavras, contudo, não basta para a análise sintática.
Por vezes ocorrem situações ambíguas onde é necessário recorrer-se a
mais um nível, uma vez que, dependendo onde se encontra a palavra na
frase, ela pode ter a função de advérbio ou de substantivo (ex.: branco),
de verbo ou conjunção (ex.: como), e assim por diante.

3.4 ANÁLISE SEMÂNTICA

Apesar do extenso processamento realizado nas análises morfológica


e sintática, apenas com estas não é possível distinguir certas categorias
de palavras e muito menos precisar o objetivo da frase. Para tanto, são
acrescentadas nas árvores de “parser” os chamados anexos semânticos. Este
tipo de análise semântica tradicional pode ser construído ainda em tempo
de análise sintática, à medida que a árvore de “parser” vai sendo completada.

O anexo semântico apresentado na árvore da figura 3.1 é uma


composição de uma rede semântica onde é definido o verbo tropeçar. A
definição diz que este verbo necessita de um agente (aquele que tropeça)
e um paciente (algo em que o agente tropeça).

Por outro lado, há outras formas de análise semântica: gramáticas semânticas,


gramáticas baseadas em casos e outros métodos para casos específicos.
33
Inteligência Artificial

3.4.1 Gramáticas Semânticas

As gramáticas tradicionais são utilizadas apenas para definir regras de


sintaxe. Por outro lado, podem ser definidas regras associadas a frases-
padrão, onde variam as palavras envolvidas. É uma forma viável quando
existe uma hierarquia de diferentes contextos e necessita-se diferenciá-
los através de padrões. Infelizmente, para cada frase analisada, é
necessária uma regra distinta, dificultando sua utilização em diferentes
domínios do conhecimento.

A construção de gramática semântica baseia-se na colocação de variáveis


que serão preenchidas de acordo com a afirmação ou questionamento do
usuário ao sistema. Um exemplo de regras de uma gramática semântica.

Figura 14 – Árvore de parser com anexo semântico

Fonte: Elaborado pelo autor (2014)

Poderia ser:

QUESTÃO → quem tropeçou ONDE

RESP_QUEST → QUEM tropeçou ONDE

QUEM → eu

ONDE → PREPOSIÇÃO LUGAR

PREPOSIÇÃO → na

LUGAR → pedra
34 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Caso fosse questionado Quem tropeçou na pedra? A resposta seria eu


tropecei na pedra, pela associação da expressão na pedra com a variável
ONDE e o pronome eu com a variável QUEM.

3.5 ANÁLISE PRAGMÁTICA

A medida que se avança no processamento da Linguagem Natural


é necessário fazer uma interpretação do todo e não mais analisar o
significado de suas partes, como ocorre na análise das informações
morfológicas, sintáticas e semânticas.

As palavras podem se associar através de dois tipos de relações:


paradigmáticas e sintagmáticas. As relações paradigmáticas associam
palavras através do significado, como “nadar” e “água”. As relações
sintagmáticas conectam palavras que são frequentemente encontradas
no mesmo discurso, como “água” e “poça”.

3.6 APLICAÇÕES

O Processamento de Linguagem Natural pode ser utilizado em diversas


aplicações, tal uso justifica a compreensão desta ampla área. A seguir
veremos algumas aplicações que se utilizam dessa técnica de Inteligência
Artificial.

• Consulta em Banco de Dados Utilizando Linguagem Natural:


Podemos usar Linguagem Natural em consultas à Banco de Dados,
de forma que o usuário não precisa conhecer especificamente a
estrutura, funcionamento e nem a linguagem a ser utilizada para
a realização de consulta neste Banco de Dados. Sem a utilização
de Linguagem Natural o usuário precisa conhecer todos os dados
referentes à implementação do Banco de Dados, ou seja, a sua
estrutura e a linguagem que por ele possa ser usada, para realizar
uma consulta entre os campos. Com o devido uso de Linguagem
Natural, é apenas necessário conhecer a área em que o Banco de
Dados foi desenvolvido, para se fazer as devidas formulações para
a realização de pesquisas internas em sua base. Se alguma consulta
através de Processamento Linguagem Natural for feita de maneira
errada ou inexata, a Linguagem Natural busca por termos próximos
ou semelhantes do correto.
Com o uso de um tradutor de Linguagem Natural, o usuário poderá
criar suas próprias consultas em linguagem natural, assim o tradutor
verificará a sentença e a transformará em uma consulta SQL.
35
Inteligência Artificial

• O Robô Ed: É um Robô/Virtual desenvolvido pela empresa Insite


para a Petrobras com base no software InBot, porém foram realizadas
diversas melhorias como, por exemplo, a utilização de modernas
técnicas de Processamento de Linguagem Natural. O intuito do
projeto era o desenvolvimento de um personagem virtual/robô
voltado para o público infanto-juvenil, que pudesse se comunicar
com as pessoas para esclarecer dúvidas sobre alguns temas afins,
entreter, ensinar e interagir com as pessoas. Alguns dos temas
abordados pelo robô virtual são: utilização racional dos derivados
do petróleo e do gás natural, preservação de energia, meio ambiente,
projetos e dicas de economia.
• ChatterBot Doroty: Chatterbot pode ser definido como um
programa de computador que procura simular uma conversação,
em linguagem natural, com a finalidade de tornar esta comunicação
a mais próxima possível da conversação de um ser humano.
Chatterbots podem ser utilizados em várias situações, uma delas é
para o gerenciamento de redes. Com esse objetivo desenvolveram
um chatterbot, o qual recebeu o nome de Doroty. Doroty tem
o objetivo de interagir e comunicar com o gerenciador da rede e
também com a própria rede em si, através do protocolo SNMP.

3.7 DISCUSSÃO

Os conceitos de processamento de linguagem natural estão bem


estabelecidos e o seu uso ainda está restrito aos meios acadêmicos.
Algumas aplicações comerciais têm usado os conceitos vistos para
auxiliar a criação de funções de atendimento a clientes automatizados,
com recursos adicionais de reconhecimento de voz, ou ainda aplicativos
que fazem traduções de textos e resumem textos.

Atualmente existem pesquisas em andamento onde existe um grupo de


estudos sobre traduções de linguagens complexas como Chinês, Árabe
e Alemão, incluindo marcações, segmentação e tradução sintática,
bem como processamento de fala e sobre linguagens dinâmicas para
programas de computador.

Pesquise sobre outras três aplicações de processamento de linguagem


natural implementados em áreas diferentes onde um deles deve usar
Atividades
Chatterbot. Depois escreva um resumo sobre cada um deles.
36 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques
SISTEMAS ESPECIALISTAS

Quando estamos doentes e vamos ao consultório de um clínico


geral, somos bombardeados por perguntas sobre nossos sintomas Fala Professor
com o objetivo de validar ou não uma determinada hipótese sobre
nossa doença. Nesse caso, o clínico geral age como um especialista
que utiliza de seu conhecimento, previamente armazenado por anos
de estudo e das informações que fornecemos (sintomas e exames
médicos), para chegar a uma conclusão. Será possível desenvolver
programas de computador que simulem o comportamento de um
especialista humano?

Um Sistema Especialista é um paradigma da inteligência


computacional, que emula o comportamento de um especialista Conceitos
humano. A partir do conhecimento previamente adquirido
sobre uma determinada área do conhecimento e munido de uma
metodologia de inferência resolve problemas não triviais que
necessitam de perícia humana para a solução.

Os sistemas especialistas se utilizam de um conhecimento previamente


armazenado e são desenvolvidos para solucionar problemas de uma área
específica do conhecimento humano. Dentre as inúmeras características
de um sistema especialista podemos citar:

• A flexibilidade de incorporação de novos conhecimentos,


geralmente sem a necessidade de acesso ao código-fonte do sistema.
Esses conhecimentos incorporados auxiliam o sistema e melhoram
seu raciocínio sobre problemas envolvendo a sua área de atuação.
• A metodologia de inferência utilizada, geralmente baseada em
alguma heurística, proporciona ao sistema condições para tomar
decisões sem a necessidade de testar todas as hipóteses.
• Diferentemente do que ocorre com os especialistas humanos, os
Sistemas Especialistas não sofrem interferências do meio externo ao
domínio do problema. Ou seja, a solução ou decisão tomada por
um sistema especialista não é influenciada por emoções ou pressões.
Sempre que um mesmo conjunto de entrada for apresentado ao
sistema, uma mesma decisão ou solução será apresentada.
38 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

• Geralmente os sistemas especialistas são empregados para


problemas de difícil estruturação algorítmica ou que levem a um
processamento muito complexo e demorado.
O processo de decisão de um especialista perante uma situação a ele
apresentada se baseia em levantar hipóteses, verificar fatos e utilizar o
conhecimento prévio adquirido (experiência). Durante a avaliação da
situação apresentada, novos fatos podem ser avaliados assim como novas
hipóteses podem sem construídas, tudo isso influenciará no processo de
raciocínio. A dependência existente entre a obtenção de informações
acerca do domínio do problema e a decisão a se tomar faz com o que o
especialista, em algumas situações, não chegue a uma conclusão efetiva
ou tome uma decisão errada. Porém, como toda decisão esta baseada
nos fatos e no conhecimento prévio, esse erro pode ser justificado pelos
fatos que encontrou ou pela experiência que adquiriu, sendo fácil sua
correção. A tabela abaixo faz uma analogia entre o especialista humano
e o Sistema Especialista Computacional, evidenciando vantagens e
desvantagens:

Tabela 3 - Especialista Humano x Sistema Especialista


Especialista Humano Sistemas Especialista
Perecível Permanente
Difícil de transferir fácil de ser transferido
Difícil de documentar fácil de documentar
Imprevisível Consistente
Caro viável economicamente
Criativo sem inspiração
Adaptável deve ser atualizado
Sensorial alimentado com dados simbólicos
Visão ampla visão estreita
Bom senso conhecimento técnico
Fonte: Elaborado pelo autor (2014)

Para minimizar esses problemas em um Sistema Especialista sua


construção deve seguir alguns pré-requisitos:

• Definir qual a área do conhecimento tal problema esta inserido,


preservando assim a especificidade do sistema;
• Um bom Analista do Conhecimento, que será responsável pela
aquisição e formalização do conhecimento bem como pela
construção do sistema especialista.
• A presença de especialistas humanos que auxiliarão na representação
do conhecimento e na validação do sistema.
De acordo com Goldschmidt, 2010, seguem algumas das principais
características de um sistema especialista:
39
Inteligência Artificial

• Utilizam raciocínio inferencial;


• Armazenam conhecimentos de forma permanente;
• Resolvem problemas muito complexos tão bem quanto, e às vezes
melhor que especialistas humanos;
• Raciocinam heuristicamente, usando o que os peritos consideram
efetivamente regras práticas;
• Podem interagir com usuários humanos utilizando inclusive
linguagem natural;
• Manipulam e raciocinam sobre descrições simbólicas;
• Funcionam com dados errados e regras incertas de julgamento;
• Contemplam hipóteses múltiplas simultaneamente;
• Explicam porque estão fazendo determinada pergunta;
• São tolerantes a erros, podendo chegar a respostas não ótimas,
porém aceitáveis;
• São de fácil manutenção;
• São de fácil documentação;
• Agem sem influência de fatores emocionais, stress ou pressões;
• Apresentam baixo custo operacional;
• Em geral, oferecem segurança;
• São estáveis;
• Requerem um número reduzido de pessoas para interação;
• Justificam suas conclusões, explicando como chegaram a um
resultado.
Dentre outras características, o que define a robustez do sistema
especialista é a qualidade do corpo de conhecimento incorporado a ele
durante sua construção. O conhecimento deve ser explicito e organizado
de tal forma que toda decisão seja passível de justificativa, baseada na
busca pelo conhecimento acumulado pelo sistema, além disso, deve ser
construído de tal forma que seja fácil a inserção de novos conhecimentos.

4.1 ESTRUTURA GERAL DE UM SISTEMA


ESPECIALISTA

Geralmente um Sistema Especialista apresenta três elementos


fundamentais: Uma base do conhecimento, um motor de inferência e
uma interface com o usuário.
40 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 15 – Elementos de um Sistema especialista

Fonte: Elaborado pelo autor (2014)

• Base do Conhecimento: A ideia de base do conhecimento perpassa


a ideia de um simples banco de dados contendo dados, arquivos ou
registros. Corresponde ao conhecimento dos especialistas humanos,
por isso é composto de regras, fatos e heurísticas de busca. O motor
de inferência processa o conhecimento armazenado na base de
conhecimento e identifica as possibilidades de decisão para o problema
apresentado. A interação com o usuário permite a aquisição de novas
informações relevantes. O uso das heurísticas permite que, a cada
informação incluída no processo de inferência, o espaço de busca
seja reduzido, minimizando a distância entre o problema e a solução.
Além disso, a flexibilidade de inserção de novos conhecimentos
na base, por meio da inclusão de novas regras, permite ao sistema
aprender cada vez mais sobre o domínio do problema, entretanto,
carece de um sistema de refinamento do banco de regras no intuito
de adicionar e retirar regras sem a alteração da lógica global do
sistema. Normalmente o conhecimento é formalizado na forma de
regras de produção que podem facilmente serem reunidas em uma
árvore de decisão. As árvores de decisão são grafos acíclicos que
organizam a informação de maneira compacta e podem ser utilizadas
para classificar novas informações. Após a montagem da árvore de
decisão, regras de produção podem ser extraídas considerando o
trajeto do nó raiz até os nós folhas da árvore.
• Motor de Inferência: É o núcleo do sistema especialista. É onde os
fatos, regras e heurísticas são processados para a obtenção da solução
do problema. Geralmente, um motor de inferência realiza uma
combinação de procedimentos e raciocínios que se processam de
forma regressiva e progressiva. Na forma de raciocínio progressivo,
as informações são fornecidas ao sistema pelo usuário, que com suas
respostas, estimulam o desencadeamento do processo de busca,
navegando através da base de conhecimento, procurando pelos fatos,
regras e heurísticas que melhor se aplicam a cada situação. Já modelo
de raciocínio regressivo, os procedimentos de inferência funcionam
41
Inteligência Artificial

de forma inversa. O sistema parte de uma opinião conclusiva sobre o


assunto, podendo ser inclusive oriunda do próprio usuário, e inicia
uma pesquisa pelas informações por meio das regras e fatos da base
de conhecimento.
• Modelo de Raciocínio Progressivo: A partir da interface o usuário
introduz informações acerca do problema que são processadas e
iniciam o processo de busca pela base do conhecimento por regras,
fatos e heurísticas que melhor se apliquem a cada situação. O
processo continua até que toda possibilidade de resposta se esgote.
• Modelo de Raciocínio Regressivo: O motor de inferência considera
uma hipótese de conclusão do problema e constrói sua busca por
informações no intuito de validar ou não a referida hipótese. Essa
hipótese pode estar já incluída na base de conhecimento ou ser
oriunda do usuário, a partir da interface.
A tabela abaixo descreve as diferenças entre os modelos de raciocínio
apresentados:

Tabela 4 - Especialista Humano x Sistema Especialista


Encadeamento para frente Encadeamento para trás
Dirigido aos dados Dirigido às metas
Planejamento, monitorização e Diagnósticos
controle
Presente para o futuro Presente para o passado
Antecedente de uma regra para o Do consequente de uma regra
consequente para o antecedente
Trabalha para frente para encontrar Trabalha para trás para encontrar fatos
soluções, partindo dos fatos que suportem as hipóteses levantadas
Os antecedentes das regras Os consequentes da regra
determinam a busca determinam a busca
Fonte: Elaborado pelo autor (2014)

Existe um melhor modelo de raciocínio para todas as possíveis


situações encontradas? Qual é? Reflexão

Existe, na verdade, uma regra geral que auxilia na escolha do modelo


de raciocínio. Lembre-se: as regras de produção são estruturadas da
seguinte forma:

SE <condições> ENTÃO <conclusões> FAÇA <ações>


42 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Logo:

a. Se o número de premissas (condições) no antecedente da regra for


pequeno, comparado com o número de conclusões então use o
encadeamento para frente.
b. Se o número de conclusões for pequeno, comparado com o número de
premissas então use o encadeamento para trás. (Goldschmidt, 2010)

Interface com o Usuário: Talvez a parte do sistema especialista que leve


mais tempo de planejamento e implantação. Isso se deve pelo fato de ser
a porta de comunicação entre o sistema e o usuário. É onde e por onde
são apresentados ao sistema: o problema com suas particularidades,
as informações para encadear a busca por solução e os objetivos. Uma
interface flexível viabiliza a recuperação do caminho (trace) percorrido
pelo sistema para solucionar o problema. Isso é muito importante na
implementação do processo de explanação que consiste na explicação,
quando requerida pelo usuário, de quais foram os caminhos de busca
necessários para se atingir o objetivo necessário. O objetivo principal da
interface é tornar a utilização do sistema fácil e agradável, eliminando
possíveis complexidades ocasionadas na utilização do sistema.

Conforme descrito por (Passos, 1997) apud (Goldschmidt, 2010) os


passos para a confecção de um sistema especialista são os seguintes:

• Reconhecimento do Problema: Consiste na exploração do domínio


do problema e suas características;
• Estudo de Viabilidade: Será realmente necessário um sistema
especialista dotado de inteligência para a solução do problema em
questão. Geralmente, quando as soluções requerem passos bem pré-
definidos ou não existir a necessidade de tomada de decisão, um
sistema especialista nem sempre é a melhor opção.
• Aquisição e Formalização do Conhecimento: Nesse passo o
analista do conhecimento transforma o conhecimento adquirido
do especialista humano ou de alguma literatura em regras de
produção, inferência e heurísticas. Nesse passo, é construída a base
de conhecimento.
• Projeto: Envolve toda a parte de operacionalização das informações
obtidas nos passos anteriores. É onde são definidos os modelos de
inferência e a linguagem computacional a ser utilizada.
• Implementação: Onde são incorporados todos os módulos de
processamento do conhecimento.
• Testes e Validação: O sistema é submetido a uma bateria de testes para
validar a robustez e a lógica empregada nos modelos implementados.
43
Inteligência Artificial

• Treinamento e Implantação: Consiste em treinar novos usuários e


inserir o sistema no ambiente de operacional.
Alguns exemplos de aplicações dos sistemas especialistas:

• MYCIN 1972 – Utilizado para diagnosticar e sugerir tratamentos


para doenças de sangue. Criado pela Universidade de Stanford é
conhecido como um marco dos estudos envolvendo Inteligência
Artificial.
• META-DENDRAL 1978 – Era uma ferramenta de inserção automática
de regras usadas pelo DENDRAL. A partir de informações oriundas
da espectrometria de massa identificava estruturas moleculares com
bastante precisão.
• PROSPECTOR final da década de 1970 – Pioneiro na abordagem
probabilística de ocorrência de fatos. Desenvolvido pela SRI
International era utilizado no auxílio à tomada de decisão sobre a
exploração de minerais.
Outros exemplos podem ser encontrados com grande facilidade na
literatura científica.

Acesse o site do LIA Laboratórios de Pesquisa em Ciência da


Computação Departamento de Computação – UFC, http:// Atividades
www.lia.ufc.br/site/projetos, obtenha o software Expert Sinta.
Este é um sistema especialista utilizado na confecção de sistemas
especialistas. Abra o sistema e seguindo as instruções do manual
rode o banco de conhecimento SECAJU. Observe a estruturação e
relate em sala sua experiência.
44 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques
REDES NEURAIS ARTIFICIAIS

O estudo de Redes Neurais Artificiais tem como definição, entre


outras, um excitante esforço para criar as condições necessárias Fala Professor
para que um computador digital convencional possa processar
informações como um cérebro natural. Mas como isso seria possível?

O cérebro é um sistema de processamento de informações bem


diferente do sistema utilizado pelos computadores convencionais. De
acordo com Haykin, 2001, o cérebro é altamente complexo, não linear
e paralelo. Através da organização das suas unidades de processamento
(neurônios) é capaz de realizar certos processamentos com uma rapidez
ainda não atingida pelos mais desenvolvidos computadores.

Tente imaginar a complexidade das atividades que realizamos no


cotidiano e nem nos damos conta, como por exemplo, a visão humana.
Todo o sistema empregado na visão tem por objetivo nos dar informações
detalhadas sobre o ambiente à nossa volta e nos dar condições de
interagir em grande velocidade. Por exemplo, podemos reconhecer um
rosto familiar em uma cena não familiar em aproximadamente 200 ms
(milissegundos). Processamentos bem menos complexos podem levar
até dias em computadores convencionais.

Outra característica importante do cérebro é sua capacidade de


“aprender” sobre o domínio do problema através de experiências, ou seja,
nenhuma informação prévia é necessária para que possamos começar
a interagir com o ambiente e comecemos a armazenar informações
necessárias para a generalização de situações.

Dessa forma as Redes Neurais Artificiais, RNA, se baseiam na


modelagem do neurônio natural, o chamado neurônio artificial
(unidade de processamento) e suas conexões. Criando uma estrutura
de processamento que imite o processamento natural. A tabela abaixo
faz uma analogia entre o modelo natural (cérebro) e o modelo artificial
(RNA) de processamento de informações:
46 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Tabela 5 - Comparação de modelos


Modelo Natural Modelo Artificial
Cérebro RNA
Neurônio Biológico Neurônio artifical/ elementos processadores
Rede de Neurônios Estrutura em camadas
10 bilhões de Neurônios Centenas/ milhares de neurônios
Aprendizado Aprendizado
Generalização Generalização
Associação Associação
Reconhecimento de Padrões Reconhecimento de Padrões
Fonte: Elaborado pelo autor (2014)

Segundo Hecht-Nielsen, 1990, apud Goldschmidt, 2010, uma rede


neural artificial pode ser definida como sendo “uma estrutura que
Conceitos
processa informação de forma paralela e distribuída e que consiste
de unidades computacionais (as quais podem possuir memória
local e podem executar operações locais) interconectadas por
canais unidirecionais chamados de conexões. Cada unidade
possui uma única conexão de saída, que pode ser dividida em
quantas conexões laterais se fizer necessário, sendo que cada
uma destas conexões transporta o mesmo sinal (sinal de saída
da unidade). Esse sinal de saída pode ser contínuo ou discreto.
O processamento executado por cada unidade pode ser definido
arbitrariamente, com a restrição de que ele deve ser completamente
local, isto é, deve depender somente dos valores atuais dos sinais
de entrada que chegam até a unidade via as conexões e dos valores
armazenados na memória local da unidade computacional.”

O marco inicial dos estudos em RNA foi o trabalho de McCulloch e


Pits em 1943. McCulloch era um psiquiatra e estudava a anatomia dos
neurônios e de sua associação com Pitts, que era um prodígio matemático
da época, surgiu a primeira modelagem matemática do neurônio
natural. O neurônio artificial de McCulloch e Pits apresentava apenas
uma saída (0 ou 1) que era influenciada pela somatória dos valores de
entrada do sistema. Eles conseguiram, ainda, provar que um número
suficiente dessas unidades simples de processamento conectadas através
de sinapses artificiais bem ajustadas poderia a principio, processar
qualquer função computável.

A figura 5 ilustra a modelagem proposta por McCulloch e Pitts em 1943.


47
Inteligência Artificial

Figura 16 – Aplicações de redes neurais

Fonte: Elaborado pelo autor (2014)

O neurônio de McCulloch e Pitts foi muito importante para os estudos


de RNA e é um dos artigos mais lidos sobre o assunto até hoje. Porém,
na sua modelagem, não explicava como redes neurais naturais poderiam
aprender através da experiência. Só então em 1949 com o livro “The
Organization of Behavior”, Hebb propôs seu tão famoso “postulado de
aprendizagem” onde a força das sinapses entre os neurônios de uma
rede eram variáveis e aumentavam com a ativação do neurônio pós-
sináptico pela estimulação do neurônio pré-sináptico.

No final da década de 50, Frank Rosenblat propõe um modelo neuronal,


baseado na ideia de McCulloch e Pitts, porém com sinapses ajustáveis
por um processo de “aprendizagem supervisionada” ao qual deu o nome
de PERCEPTRON. Em 1960, Widroff e Hoff, apresentaram o modelo
ADALINE (ADAptive LInear NEuron). A principal diferença entre o
PERCEPTRON e ADALINE estava no processo de aprendizagem. O
ADALINE utilizava o algoritmo de mínimos quadrados (LMS) no ajuste
dos pesos sinápticos. Estruturas de PERCEPTRON em várias camadas
(MLP - Multilayer Perceptron) e MADALINE (Multiple-Adaline) foram
desenvolvidas e apresentados à comunidade cientifica. A Figura abaixo
mostra a modelagem de um neurônio de uma rede MLP.
48 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 17 – Aplicações de redes neurais

Fonte: Elaborado pelo autor (2014)

Em 1969, Minsky e Papert utilizaram a matemática para provar teoremas


importantes e mostraram as limitações dos modelos propostos até então.
Esse foi um dos motivos para o “esfriamento” dos estudos em RNA.

Entretanto, muitos estudos ainda foram publicados e podem ser


verificados na publicação de Simon Haykin intitulada “Redes
LEIA

Indicações MAIS
Neurais – Princípios e Práticas” 2ª Edição, entre as páginas 63 e 69.

Rumelhart, Hinton e Williams (1986) publicaram um trabalho onde


apresentavam um algoritmo de aprendizagem que revolucionou os
estudos sendo o mais utilizado até hoje, o back-propagation. Esse
trabalho trouxe novo gás aos estudos de RNA. Hoje as Redes Neurais
são amplamente utilizadas em várias áreas do conhecimento, entre elas,
a robótica, a eletrônica e até a medicina.

5.1 CARACTERISTICAS DE UMA REDE


NEURAL ARTIFICIAL

A similaridade entre o cérebro humano e as RNAs fica evidente quando


comparamos suas características (Goldschmidt, 2010):

• Busca paralela e endereçamento pelo conteúdo: O cérebro


humano não apresenta endereçamento de memoria, nas RNAs o
conhecimento fica distribuído entre as unidades de processamento
e é utilizado de forma paralela e não sequencial.
49
Inteligência Artificial

• Aprendizado por Experiência: Geralmente, os algoritmos de


aprendizagem associados às redes neurais utilizam um conjunto de
dados de treinamento onde as conexões sinápticas são ajustadas.
• Generalização: O conhecimento armazenado no treinamento pode ser
utilizado em conjunto de dados ruidosos ou distorcidos, permitindo
que as redes respondam corretamente a esses novos padrões.
• Associação: As Redes Neurais são capazes de associar padrões de
naturezas distintas, por exemplo, reconhecer pessoas por seus
padrões de vozes.
• Abstração: É a capacidade de extrair a essência dos padrões
apresentados.
• Robustez e Degradação Gradual: Como o conhecimento fica
distribuído entre as unidades de processamento, há a perca de
parte da eficiência dessa unidade acarretando em uma diminuição
gradual do potencial da rede, não ocasionando necessariamente um
mau funcionamento global do sistema.
• Não Programáveis: As redes são construídas e não programadas.
Os constituintes, unidades de processamento e algoritmos de
aprendizagem, são ajustados ao problema buscando mapear padrões.
• Soluções Aproximadas: A grande maioria dos algoritmos de
aprendizagem utilizam técnicas de minimização do erro que nem
sempre chegam ao patamar nulo. Assim como o cérebro humano, as
RNAs são suscetíveis ao erro.

5.2 MODELAGEM

Figura 18 – Neurônio Artificial

Fonte: Elaborado pelo autor (2014)


50 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Como vimos anteriormente, a essência de uma RNA é o neurônio


artificial. Basicamente o sentido de propagação do sinal no neurônio
é “da entrada para a saída” (feedforward). Esse também é o sentido de
propagação das redes. Podemos, entretanto, encontrar redes neurais
artificiais com propagação cíclica (como veremos posteriormente).

Os pesos são números reais que têm o papel de determinar o efeito da


entrada na saída do neurônio. Geralmente são identificados por Wkj,
onde, k identifica o neurônio de entrada e j, a posição do sinal de entrada.

O neurônio artificial apresenta um somador que determina a forma


como os estímulos de entrada serão combinados para influenciar o
novo estado do neurônio atual. Geralmente é utilizado o produto escalar
entre o vetor de entrada e o vetor de pesos, gerando assim, o potencial
de propagação do neurônio k (netk):

Onde k é a identificação do neurônio em questão e j é a identificação da


entrada e seu respectivo peso sináptico.

A função de ativação determina o novo estado do neurônio a partir


do potencial de propagação. Normalmente as modelagens apresentam
uma entrada fixa, chamada BIAS (bk), que tem o objetivo de aumentar/
diminuir a entrada líquida da função de ativação. Essa função é
representada por:

Várias são as funções utilizadas como função de ativação do neurônio


artificial, veremos algumas delas a seguir:

• Função degrau (onda quadrada binária):

ou

para função degrau bipolar.

• Função Linear:
51
Inteligência Artificial

• Função Linear por Partes:

• Sigmoide: (uma das mais utilizadas)

• Tangente Hiperbólica:

A figura abaixo apresenta a representação gráfica de algumas das funções


de ativação:

Figura 19 – a) Função Degrau Bipolar, b) Função Linear, c) Função


Sigmóide e d) Função Tangente Hiperbólica

Fonte: Elaborado pelo autor (2014)

5.3 CLASSIFICAÇÃO DAS REDES NEURAIS


ARTIFICIAIS

• Quanto ao número de camadas:


a. Redes de Camada Única: Apresentam apenas uma camada de
processamento.
52 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 20 - Redes de Camada Única

Fonte: Elaborado pelo autor (2014)

b. Redes de Múltiplas Camadas: Com mais de uma camada de


processamento. Geralmente a camada do meio é identificada como
camada escondida.

Figura 21 – Redes de Múltiplas Camadas

Fonte: Elaborado pelo autor (2014)

• Quanto ao tipo de conexão:


a. Redes Feedforward (Acíclicas ou Não Recorrentes): O fluxo de
processamento ocorre da esquerda para a direita.
53
Inteligência Artificial

Figura 22 – Redes Feedforward

Fonte: Elaborado pelo autor (2014)

b. Redes Feedback (Cíclicas ou Recorrentes): Caracterizada por um


eventual retorno de sinal.

Figura 23 – Redes Feedback

Fonte: Elaborado pelo autor (2014)

c. Redes com Recorrência Auto associativa: Após a inicialização da rede,


cada saída de um neurônio é utilizada como entrada de outro.
54 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 24 – Redes com Recorrência Auto associativa

Fonte: Elaborado pelo autor (2014)

• Quanto ao tipo de conectividade:


a. Redes Parcialmente Conectadas: Alguns neurônios de uma camada
não se conectam a alguns neurônios da camada seguinte.

Figura 25 – Redes Parcialmente Conectadas

Fonte: Elaborado pelo autor (2014)

b. Redes Completamente Conectadas: Todos os neurônios de uma dada


camada estão conectados a todos os neurônios da camada seguinte.
55
Inteligência Artificial

Figura 26 – Redes Completamente Conectadas

Fonte: Elaborado pelo autor (2014)

5.4 PROCESSAMENTO NEURAL

O processamento de uma RNA pode ser dividido em duas partes


importantes: o aprendizado e a aplicação. No aprendizado, geralmente,
é apresentado a RNA um conjunto de padrões de testes e, a partir
desses padrões, os pesos sinápticos são alterados até que a rede tenha
“aprendido” os padrões propostos. Na aplicação é que se reconhece o
poder de generalização da rede. São apresentados dados de entrada,
diferentes dos padrões apresentados na fase de treinamento, referentes
ao problema em questão e computadas as respostas.

Existem vários processos de treinamento, cada um com sua


particularidade. Entretanto, podem ser divididos em três grandes grupos:

• Supervisionado: Nesse caso é apresentado um conjunto de dados


de entrada com suas saídas desejadas. Diz-se então supervisionada
porque os dados de saída da rede são comparados aos dados de saída
desejados e os pesos sinápticos são atualizados até que a taxa de erro
esteja em um nível aceitável para a aplicação.
• Não-Supervisionado: Nesse caso, um conjunto de dados é
apresentado à rede que tenta extrair características importantes,
emergindo assim o conhecimento da rede.
• Por reforço: Pode ser considerado um caso especial do aprendizado
supervisionado. Apesar de não ser apresentado dados de saída
desejáveis, respostas das redes para as entradas admitidas que em
geral são ações positivas na solução do problema, são “reforçadas”
no intuito de que sejam repetidas para entradas similares.
56 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

5.5 APLICAÇÕES

Goldschmidt, 2010, traz algumas aplicações para redes neurais artificiais


que seguem abaixo, entretanto, várias outras podem ser encontradas na
literatura científica:

• Reconhecimento de padrões;
a. Transformação de imagens em textos (OCRs);
b. Reconhecimento de placas de veículos (em sistemas de multas
eletrônicas);
c. Reconhecimento de voz;
• Classificação de padrões;
a. Reconhecimento de locutor (próprio ou impostor);
b. Reconhecimento biométrico (próprio ou impostor);
c. Reconhecimento de pintura (autêntica ou falsa);
d. Reconhecimento de SPAMS (SPAMS e não SPAMS);
• Reconhecimento de Fraudes em Sinistros de Seguros;
• Correção de padrões;
a. Correção de imagens incompletas;
b. Correção de textos incompletos;
• Previsão de séries temporais;
a. Planejamento da produção de bens de consumo;
b. Previsão de consumo energético;
c. Previsão de demandas telefônicas;
d. Cotação de ações do mercado financeiro;
• Mineração de Dados;
a. Análise de Crédito (na separação entre bons e maus pagadores) -
Problema de Classificação;
b. Análise de Limite de Crédito;
c. Agrupamento de Clientes com potencial de compra similar;
• Suporte à decisão.
ALGORITMOS GENÉTICOS

Olá.
Neste capítulo, mostraremos os principais conceitos de Algoritmo Fala Professor
Genético. Ao final deste capítulo, você deve ser capaz de identificar
suas aplicabilidades e entender como funciona sua lógica, assim
como cada um de seus componentes.
Vamos a eles então.
Bom estudo!

Algoritmo Genético (AG) consiste em uma técnica de Inteligência


Artificial (IA) que pertence à classe particular de algoritmos Conceitos
evolutivos, que usam técnicas inspiradas pela genética e biologia
evolutiva para achar soluções aproximadas em problemas de
otimização e busca.

6.1 INTRODUÇÃO

Considerado uma Meta-heurística, foi criado por John Holland em


1975 e popularizado por um dos seus alunos David Goldberg em 1989.
Estes algoritmos seguem o princípio da seleção natural e sobrevivência
do mais apto declarado em 1859 pelo naturalista e fisiologista inglês
Charles Darwin, em seu livro A Origem das Espécies. De acordo com
Charles Darwin. “Quanto melhor um indivíduo se adaptar ao seu meio
ambiente, maior será sua chance de sobreviver e gerar descendentes”.
58 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 27 – Charles Darwin, John Holland e David Goldberg

Fonte: http://www.biography.com/people/charles-darwin-9266433; http://jmvidal.


cse.sc.edu/talks/geneticalgorithms/introduction.html; http://www.davidegoldberg.
com/de-goldberg.html

Otimização é a busca da melhor solução para um dado problema.


Consiste em tentar várias soluções e utilizar a informação obtida neste
processo de forma a encontrar soluções cada vez melhores. Um exemplo
simples de otimização é a melhoria da imagem das televisões com antena
acoplada no próprio aparelho. Através do ajuste manual da antena, várias
soluções são testadas, guiadas pela qualidade de imagem obtida na TV
até a obtenção de uma resposta ótima, ou seja, uma boa imagem.

6.2 OTIMIZAÇÃO

Frequentemente nos deparamos com situações em que devemos decidir


determinadas características de um sistema de forma a dele extrair o
maior número possível de benefícios. Exemplos práticos deste tipo
de preocupação no mundo real são: a tomada de decisão de preço de
produtos de forma a maximizar o lucro, ou a escolha de um trajeto de
ônibus que maximize o número de passageiros servidos e minimize as
distâncias percorridas.

Visto que ferramentas matemáticas nos permitem expressar muitos


destes problemas na forma de funções, foram desenvolvidos métodos
para descobrir que valores devem ser escolhidos para se atingir os
pontos máximos ou mínimos destas. A tal processo dá-se o nome de
otimização, e o classificamos em dois tipos:

Otimização numérica: opera sobre o valor de retorno de funções


matemáticas. Exemplo: a descoberta do valor de x que maximize a função:
59
Inteligência Artificial

Otimização combinatória: tem como objetivo descobrir qual a melhor


combinação dos recursos disponíveis e suas características para
otimizar seu uso. Exemplos: qual a melhor forma de alocar processos
concorrentes em uma CPU, qual a melhor sequência de cidades para o
problema do caixeiro viajante.

A própria evolução das espécies pode ser vista como um processo de


otimização: ao longo do tempo, os seres vivos se tornam cada vez mais
adaptados a um meio ambiente em constante mudança.

6.3 MÍNIMOS E MÁXIMOS LOCAIS

As técnicas de busca e otimização, geralmente, apresentam:

• Um espaço de busca, onde estão todas as possíveis soluções do


problema;
• Uma função objetivo (algumas vezes chamada de função de aptidão
na literatura de AGs), que é utilizada para avaliar as soluções
produzidas, associando a cada uma delas uma nota.
Em termos matemáticos, a otimização consiste em achar a solução que
corresponda ao ponto de máximo ou mínimo da função objetivo. Como
exemplo, considere o seguinte problema de otimização:

Achar o ponto máximo da função

dentro do intervalo

Embora aparentemente simples, o problema não é de fácil solução.


Existem vários pontos de máximos nesta função (pontos que maximizam
o valor da função), mas muitos não representam o maior valor que a
função pode atingir, conforme ilustrado na Figura 6.1. Tais pontos são
denominados máximos locais, uma vez que a função nestes pontos
atinge valores maiores do que na vizinhança destes pontos. A melhor
solução para este problema está no ponto em que a função possui valor
máximo, o máximo global. Neste problema, o máximo global encontra-
se no ponto cujo valor de x é igual a 1,85055. Neste ponto, a função
assume o valor 2,85027.
60 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 28 – Gráfico de Função

Fonte: Elaborado pelo autor (2014)

Conforme será mostrado na Seção 3.2, uma grande quantidade de


técnicas de otimização (por exemplo, os métodos do gradiente) não
são capazes de localizar o ponto de máximo global de uma função com
múltiplos pontos de máximo.

6.4 APLICABILIDADE

Os algoritmos genéticos utilizam conceitos provenientes do princípio


de seleção natural para abordar uma série ampla de problemas, em
especial de otimização, apesar de ter bons resultados em problemas
de otimização numérica são mais usados em otimização combinatória
devido ao seu alto desempenho para esses tipos de problemas.

Se pesquisado na literatura vão encontrar uma infinidade de problemas


de otimização, em que podemos aplicar algoritmo genético, dentre os
mais conhecidos podemos citar:

• Problema do Caixeiro viajante;


• Problemas das p-medianas;
• Problemas de roteamento e trafego;
• Problemas de alocação de recursos;
• Problema da mochila;
• Problema de geração de grade de horários.
Para exemplificar a utilização de AG nesses problemas de otimização
vamos adotar o problema das p-medianas como exemplo, porém para
cada tipo de problema o AG teria maneiras diferentes de ser aplicado.
61
Inteligência Artificial

6.5 PROBLEMAS DAS P-MEDIANAS

O problema das p-medianas é um problema da área de teoria dos grafos.


A seguir são descritas as definições referentes a grafos e ao problema das
p-medianas.

Grafos
A teoria dos grafos é um ramo da matemática que estuda as Conceitos
relações entre os objetos abstratos de um determinado conjunto.
Grafo é uma estrutura G(V,A) onde:
• V é um conjunto não vazio de objetos denominados vértices; e
• A é um conjunto de pares não ordenados de V, chamados arestas.
Exemplo:
V = {a, b, c, d, e}
A = {(a, b), (a, c), (b, c), (b, d), (c, d), (c, e), (d, e)}
A representação gráfica de um grafo é feita por pontos (vértices) e
linhas (arestas) unindo estes pontos conforme ilustra a Figura 6.2.
Dependendo da aplicação, arestas podem ou não ter direção; pode
ser permitido ou não arestas ligarem um vértice a ele próprio; e
vértices e/ou arestas podem ter um peso numérico associado.
Figura 29 – Grafo

Fonte: Elaborado pelo autor (2014)

Dos problemas que envolvem os estudos dos grafos pode-se citar:


problema do caminho mínimo, problema do Caixeiro Viajante,
problema das p-medianas dentre outros.

Mediana ou centróide de um grafo G(V, A) é um vértice para o qual a


soma das distâncias aos demais vértices é mínima. Existem problemas
que têm como solução uma única mediana (um único vértice), chamadas
62 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

de 1-mediana, porém, há casos em que existem mais de uma mediana


como solução, chamados de 2-mediana, 3-mediana, ou p-mediana, de
um modo geral.

No problema das p-medianas, pretende-se localizar “p” facilidades


(medianas) para melhor servir a clientes, de forma a minimizar o custo total.

Os dados relevantes para um problema das p-medianas são:

• Um número finito de pontos (vértices) com valores conhecidos de


demanda, denominados clientes ou pontos de demanda;
• Um número finito de locais candidatos para a instalação de facilidades
(medianas). Neste trabalho considera-se que os pontos de demanda
(vértices) são candidatos para a instalação de facilidades;
• A distância entre cada ponto de demanda e os locais candidatos
(arestas). Essas distâncias podem ser calculadas sobre a rede de
caminhos que conectam os pontos (ex.: ruas, dutos e cabos) ou
como distâncias euclidianas, ou seja, uma simples reta que liga dois
pontos; e
• O número “p” de facilidades a serem instaladas.
Considerando G(V,A) um grafo não orientado, deve-se encontrar
um conjunto de vértices Vp ⊆ V (Vp é o conjunto das medianas do
problema) com cardinalidade p, tal que a soma das distâncias de cada
vértice pertencente a V (conjunto de clientes do problema) até seu
vértice mais próximo em Vp seja a mínima possível.

Como um exemplo prático, é possível ver na Figura 6.3 um conjunto V


onde todos os vértices são candidatos a mediana.

Figura 30 – Conjunto de vértices candidatos

Fonte: Elaborado pelo autor (2014)


63
Inteligência Artificial

Conforme ilustra a Figura 6.4 foram definidos aleatoriamente 2 vértices


como medianas onde seu custo é de 768 milímetros. Este custo é
calculado somando as distâncias de todos os vértices (clientes) à mediana
(facilidade) mais próxima.

Figura 31 – Medianas aleatórias

Fonte: Elaborado pelo autor (2014)

Otimizando as 2 medianas no grafo proposto, foi possível diminuir o


custo para 621 milímetros, conforme ilustra a Figura 6.5.

Figura 32 – Medianas otimizadas

Fonte: Elaborado pelo autor (2014)

Aparentemente a solução deste problema pode parecer fácil, porém


quando aumentamos o número de vértices e medianas percebemos
o quanto este problema é de difícil solução. Por exemplo, em uma
instancia com 5 vértices e 2 medianas teríamos 25 combinações
possíveis a serem testadas, já para os 12 vértices e 2 medianas da Figura
64 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

6.5 teríamos 144 possibilidades de solução, em uma instancia de 250


vértices e 12 medianas teríamos 59.604.644.775.390.600.000.000.000.00
0 combinações possíveis, o que mostra que a medida que o número de
vértices e medianas aumenta o espaço de busca cresce exponencialmente.

Tabela 6 – Espaço de busca


Vertices Medianas Espaço de busca
5 2 25
12 2 144
15 3 3375
22 4 234256
250 12 5,96046E+28
800 20 1,15292E+58
Fonte: Elaborado pelo autor (2014)

Sabemos que a melhor solução possível (solução ótima) está neste


espaço de busca, logo para achar esta solução precisaríamos calcular o
custo de todas combinações possíveis e descobrir o menor dentre elas.

Um computador com configurações básicas nos dias de hoje


Reflexão é capaz de calcular o custo de 200 combinações por segundo
em média para uma instancia de 250 vértices e 12 medianas,
em um ano temos 31.536.000 segundos, multiplicando por 200
que é o numero de combinações calculadas por segundo, temos
6.307.200.000 cálculos de custo de combinações por ano, se
dividirmos o número total de combinações pelo número de
combinações calculadas, em um ano descobrimos que seriam
necessários 9,45 quintilhões de anos para percorrer todo espaço
de busca, o que tornaria inviável a solução deste problema.

Problemas cujo sua complexidade cresce exponencialmente, assim como


o problema das p-medianas são ditos como problemas do tipo NP-difícil
e são considerados como intratáveis, onde o espaço de solução é tão
amplo que pode-se considerar que o problema não pode ser resolvido
através de métodos de solução exata. Em termos práticos, um problema
é tratável se o seu limite superior de complexidade é polinomial, e é
intratável se sua complexidade é exponencial, isto é, se seu tempo de
execução é da ordem de uma função exponencial.

Como dito anteriormente, geralmente Algoritmo Genético é usado para


otimizar (melhorar) soluções já existentes, raramente usamos AG para
criar soluções iniciais, pensando nisso iremos gerar soluções iniciais
com algoritmo de Teitz e Bart.
65
Inteligência Artificial

6.6 ALGORITMO DE TEITZ AND BART

Proposto por Teitz e Bart (1968), é um método aproximado para a


determinação de p-medianas entre “n” vértices candidatos à mediana do
problema, baseado na substituição de vértices. Escolhe-se, inicialmente,
p vértices aleatórios para formar um conjunto S inicial. S é considerado
uma aproximação inicial de Vp (conjunto ideal de facilidades). Sendo V
o conjunto de todos os vértices do grafo, verifica-se se pode haver um
vértice vi pertencente ao conjunto V - S que possa substituir um vértice
vj pertencente a S, produzindo um novo conjunto S’ (S’ = S + {vi} - {vj}),
tal que o somatório das distâncias entre cada cliente (vértices de V) e
a mediana mais próxima deste seja menor em S’ do que em S. Se isto
for possível, é feita a substituição de vj por vi e S’ passa a ser a melhor
aproximação, até o momento, para o conjunto Vp. O processo continua
até obter um conjunto S* onde nenhuma substituição de vértice de S* por
outro vértice em V – S* produza melhora no somatório das distâncias
entre os clientes e as medianas.

6.7 PRINCIPAIS CONCEITOS DE UM AG

Os principais conceitos de um AG são cromossomos, genes e população.

Cromossomo: A representação do cromossomo é fundamental para o


AG e consiste em uma maneira de modelar a informação do problema
num formato viável de ser tratado pelo computador. Em AGs, um
cromossomo é uma estrutura de dados que representa uma das possíveis
soluções do espaço de busca de um problema, o qual geralmente é
representado por um vetor.
66 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 33 – Representação gráfica do problema das p-medianas

Fonte: Elaborado pelo autor (2014)

Como pode ser observado na Figura 6.6, os vértices escolhidos como


medianas são 01, 09 e 12. Logo para se representar essa solução em forma
de cromossomos em um AG, pode-se utilizar um vetor de 3 posições.

Figura 34 – Vetor “cromossomo”

Fonte: Elaborado pelo autor (2014)

Um outro modo de se representar esse cromossomo seria através de um


vetor binário com o números de posições iguais ao número de vértices
do grafo, onde 0 “zero” representaria um vértice a ser atendido por uma
mediana e 1 “um” representaria a própria mediana, conforme observa-
se na Figura 6.8.

Figura 35 – Cromossomo com vetor binário

Fonte: Elaborado pelo autor (2014)

Gene: Um cromossomo é composto de genes, os quais descrevem a


solução candidata. Os genes de um cromossomo podem ser compostos
por uma String de bits “11011110” ou por outros valores “inteiros, reais
ou caracteres” como ilustra a Figura 6.9.
67
Inteligência Artificial

Figura 36 – Gene destacado em um


cromossomo

Fonte: Elaborado pelo autor (2014)

População: É o conjunto de todas as soluções “cromossomos” a serem


armazenadas. Cada cromossomo deste conjunto representa uma solução
possível. Cada uma das possíveis soluções é avaliada pelo seu valor de
aptidão para o problema. A Figura 6.10 Ilustra uma população de 10
cromossomos.

Figura 37 – População de cromossomos

Fonte: Elaborado pelo autor (2014)

6.8 FUNCIONAMENTO DOS ALGORITMOS


GENÉTICOS

Inspirado na maneira como o darwinismo explica o processo de evolução


das espécies, Holland decompôs o funcionamento dos AGs nas etapas
de inicialização, avaliação, seleção, cruzamento, mutação, atualização e
finalização ver Figura 6.11. Basicamente, o que um algoritmo genético
faz é criar uma população de possíveis soluções para o problema a ser
tratado (inicialização) para depois submetê-la ao processo de evolução,
constituído pelas seguintes etapas:

• Avaliação: avalia-se a aptidão das soluções (indivíduos da


população) — é feita uma análise para que se estabeleçam quão bem
elas respondem ao problema proposto;
68 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

• Seleção: indivíduos são selecionados para a reprodução. A


probabilidade de uma dada solução i ser selecionada é proporcional
à sua aptidão:
• Cruzamento: características das soluções escolhidas são
recombinadas, gerando novos indivíduos;
• Mutação: características dos indivíduos resultantes do processo
de reprodução são alteradas, acrescentando assim variedade à
população:
• Atualização: os indivíduos criados nesta geração podem ser inseridos
na população e indivíduos já pertencentes a população podem ser
removidos;
• Finalização: verifica se as condições de encerramento da evolução
foram atingidas, retornando para a etapa de avaliação em caso
negativo e encerrando a execução em caso positivo.

Figura 38 – Ciclo do Algoritmo Genético

Fonte: Elaborado pelo autor (2014)

Com referência ao diagrama da Figura 6.11, observa-se que cada


interação do Algoritmo Genético corresponde à aplicação de um
conjunto de cinco operações básicas: avaliação, seleção, cruzamento,
mutação e atualização. Ao fim destas operações, cria-se uma nova
população onde espera-se representar uma melhor aproximação da
solução do problema de otimização que a população anterior.
69
Inteligência Artificial

6.8.1 População inicial

A população inicial é gerada atribuindo-se aleatoriamente valores


aos genes de cada cromossomo ou usando algum tipo de inteligência
artificial ou heurística para gerar uma população de melhor qualidade,
seguindo um critério de aptidão que é medido através da função objetivo
do problema de otimização.

6.8.2 Avaliação

Geralmente a avaliação de uma população é determinada através do


cálculo da função objetivo, que depende das especificações de otimização.
Cada cromossomo é uma entrada para uma função objetivo (algoritmo
que calcula o desempenho do cromossomo), cuja saída fornece o valor
de aptidão “fitness” do cromossomo.

6.8.3 Seleção

A ideia principal da seleção em um algoritmo genético é oferecer


aos melhores indivíduos da população corrente a preferência para o
processo de reprodução, permitindo que estes indivíduos passem as
suas características às próximas gerações. Dentre os métodos de seleção
encontrados na literatura, destacam-se:

• Torneio: neste método um subconjunto de indivíduos (normalmente


um par) é escolhido aleatoriamente. Contudo, somente o indivíduo
com a melhor aptidão é selecionado para participar do cruzamento.
• Roleta: cada indivíduo tem uma probabilidade de ser selecionado
proporcional à sua aptidão. Para visualizar este método considere um
círculo representando a população sendo dividido em setores, onde
a área de cada setor é proporcional à aptidão de cada indivíduo. Este
método também é denominado amostragem universal estocástica. A
Figura 6.12 faz uma representação gráfica deste método de seleção,
onde ilustra 10 cromossomos e suas respectivas probabilidades de
serem escolhidos para o cruzamento representado pelos seus setores
no círculo.
70 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 39 – Método roleta de seleção

Fonte: Elaborado pelo autor (2014)

6.8.4 Cruzamento

Uma das principais características dos algoritmos genéticos que os


distinguem de outras técnicas de busca é o operador cruzamento
(MITCHELL, 1996). Cruzamento é a troca de segmentos entre “casais”
de cromossomos selecionados, com a finalidade de originar novos
indivíduos que poderão ser incluídos na próxima geração. A ideia do
cruzamento é a propagação das características dos indivíduos mais
aptos da população. Dentre os métodos de cruzamentos encontrados na
literatura, os mais conhecidos são:

• Cruzamento por ponto de corte único (single-point crossover):


neste método de reprodução um ponto de corte no cromossomo
é escolhido de forma aleatória sobre a longitude do vetor que o
representa e a partir desse ponto se realiza a troca de material
cromossômico entre os dois indivíduos. Na Figura 6.13 é possível
ver um esquema da representação desse tipo de cruzamento, na qual
o ponto de corte foi definido após o quarto gene.
71
Inteligência Artificial

Figura 40 – Cruzamento por ponto de corte

Fonte: Elaborado pelo autor (2014)

• Cruzamento uniforme (uniform crossover): neste método cada


gene do descendente é criado através da cópia de um gene dos
pais, escolhido de acordo com uma máscara de cruzamento gerada
aleatoriamente. Onde houver 0 na máscara de cruzamento, o gene
correspondente será copiado do primeiro pai e onde houver 1 será
copiado do segundo. O processo é repetido com os pais trocados
para produzir o segundo descendente. Uma nova máscara de
cruzamento é criada para cada par de pais. A Figura 6.14 demonstra
graficamente o processo.

Figura 41 – Cruzamento uniforme

Fonte: Elaborado pelo autor (2014)

6.8.5 Mutação

A mutação é vista como o operador responsável pela introdução


e manutenção da diversidade genética na população. Ela trabalha
alterando arbitrariamente, logo após o cruzamento, um ou mais genes
de um cromossomo filho escolhido aleatoriamente, fornecendo dessa
72 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

forma meios para a introdução de novos elementos na população


(HOLLAND, 1975). Na maioria dos casos o operador de mutação é
aplicado aos indivíduos com uma probabilidade dada por uma taxa de
mutação definida pelo usuário. A Figura 6.15 ilustra a representação
gráfica do operador de mutação, onde através de uma máscara são
selecionados os genes a serem trocados. Geralmente os novos valores
atribuídos aos genes mutados são aleatórios, porém nada impede de
haver algum processo de inteligência ou otimização nisso.

Figura 42 – Mutação

Fonte: Elaborado pelo autor (2014)

6.8.6 Atualização

Nesta etapa é definida a porcentagem de indivíduos substituídos em


cada iteração do algoritmo genético ou a cada n-iterações realizadas.
(GOLDBERG; DEB, 1989). Dentre os métodos encontrados na
literatura, destacam-se:

• Simple Genetic Algorithm (SGA): proposto por Holland em 1975


foi a primeira forma de implementação de AGs. Nesta, a população
de uma geração é completamente substituída pela geração seguinte.
• Simple Genetic Algorithm (SGA) com elitismo: o elitismo é uma
estratégia de implementação onde os N melhores indivíduos de
cada geração são preservados para a geração seguinte. Isto garante
que ao menos o(s) melhor(es) indivíduo(s) de uma nova geração
seja(m) equivalente(s) ao melhor(es) que a geração anterior.
• Steady State Genetic Algorithm (SSGA): nesse algoritmo,
usualmente, somente um ou dois descendentes são produzidos em
cada geração. Após o cruzamento, são definidos os indivíduos da
população que serão substituídos pelos novos descendentes.

6.8.7 Finalização

Nesta etapa é verificado se o AG deve continuar ou não evoluindo sua


população. Dentre os métodos encontrados na literatura, destacam-se:
73
Inteligência Artificial

• Número de Iterações: o número máximo de iterações é um parâmetro


definido pelo usuário. Quando o AG alcança este valor, o algoritmo
é finalizado.
• Convergência da População: o melhor valor encontrado para a
função objetivo dentro da população é subtraído da média dos
valores das funções objetivo de todos os indivíduos da população.
Se este cálculo não exceder um valor pré-determinado pelo usuário,
a população convergiu e o algoritmo é finalizado.
• Tempo de Computação: neste método, o usuário define o tempo
máximo de computação para a execução do algoritmo. Após
decorrido este tempo, o algoritmo é finalizado.
• Aptidão Alvo: um valor alvo para a aptidão é definido pelo usuário.
O algoritmo finaliza quando, em uma geração, o cálculo da função
objetivo de um dos indivíduos da população resultar em um valor
melhor ou igual a aptidão alvo pré-definida.

6.8.8 Resultado final

Ao finalizar os ciclos do AG basta selecionarmos na população atual o


cromossomo de melhor fitness.

Vantagens e Desvantagens dos Algoritmos Genéticos


Vantagens: Atenção
• São robustos e aplicáveis a uma grande variedade de problemas.
• Não requerem conhecimentos ou informações dos gradientes
da superfície definida pela função objetivo.
• Descontinuidades ou complexidades presentes na superfície
acarretam pouco ou nenhum efeito no desempenho da busca.
• São mais resistentes a se prenderem a ótimos locais.
• Apresentam um bom desempenho para uma grande escala de
problemas.
• São de fácil implementação e proporcionam maior flexibilidade
no tratamento do problema a ser resolvido.
Desvantagens:
• Dificuldade para achar o ótimo global exato.
• Requerem um grande número de avaliações de funções de
aptidão.
• Grandes possibilidades de configurações que podem complicar
a resolução do problema tratado.
74 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

6.8.9 Considerações finais

Com atual nível tecnológico que vivemos hoje o único meio de acharmos
a solução ótimo (ótimo global) em um problema é percorrendo todo
espaço de busca, e apesar do AG não garantir a solução ótima ele é capaz
de encontrar soluções mais próximas ao ótimo global para inúmeros
problemas do tipo NP-Difícil.

Pelas suas características de robustez, flexibilidade e relativa facilidade


de implementação, acredita-se que os Algoritmos Genéticos irão ganhar
uma maior atenção com o decorrer do tempo, principalmente, pela
rápida evolução dos computadores que deverão tornar as aplicações
desta técnica cada vez mais viáveis e engenhosas.

Para os próximos anos um maior número de alternativas “mistas”


da ideia genética com outras estratégias, que lhe agreguem novas
capacidades, serão desenvolvidas, aprimoradas e difundidas no meio
técnico, aumentando o leque de aplicações e trazendo novos benefícios
na resolução dos problemas já tratados.

Para problemas de otimização as vantagens do emprego de Algoritmos


Genéticos são consideráveis, principalmente pela sua versatilidade
na obtenção de soluções ótimas globais, enquanto espera-se que suas
desvantagens sejam sanadas por uma maior consolidação da técnica e
pelo avanço das capacidades computacionais.

Atividades
Atividades 1. Estude como é o problema do caixeiro viajante e responda. Para
um grupo de 20 cidades enumeradas de 1 à 20 como seria um
cromossomo qualquer deste problema em um AG? Desenhe.
2. Assim como o problema das p-medianas, para os cromossomos da
tabela abaixo quando menor o seu fitness melhor a sua avaliação,
informe suas respectivas porcentagens na seleção por roleta.
Cromossomo Fitness Porcentagem
C1 116
C2 103
C3 165
C4 151
C5 172
75
Inteligência Artificial

3. Considerado a Tabela da questão 2. Qual seriam os cromossomos


selecionados para o cruzamento pelo método de torneio entre Atividades
C2 x C4 e C5 x C1?
4. Quais seriam os filhos resultantes do cruzamento por ponto de
corte dos cromossomos abaixo, com seu corte estipulado antes
do quarto cromossomo?

Pai1 14 63 24 81 87 38 68 52 24 62 54

Pai2 55 95 61 96 19 89 95 26 99 84 98

Filho1

Filho2

5. Quais seriam os filhos resultantes dos cromossomos pais da


questão 4 pelo cruzamento uniforme com a máscara abaixo.

Máscara 0 1 0 1 0 1 1 0 0 0 1

Filho1

Filho2

6. Sendo o cromossomo abaixo um filho dos cromossomos pais da


questão 4, qual de seus genes sofreu mutação?

14 95 61 96 87 89 95 33 24 62 98
76 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques
TUTORES INTELIGENTES

Olá,
Neste último capítulo, discutiremos os sistemas de tutores inteligentes, Fala Professor
assunto mais presente no cotidiano da licenciatura, diferentemente
dos demais conteúdos estudados nesta disciplina.

Um Sistema de Tutores Inteligentes (STI) é um programa de


computador baseado no sistema de aprendizagem com conteúdo Conceitos
e incorporando técnicas de programação que habilitam um tutor
a exigir um grau de “Inteligência Artificial”.

7.1 INTRODUÇÃO

Embora os softwares educacionais tenham tido uma significativa


evolução, eles continuam tendendo a ser do tipo Instrução Assistida
por Computador (CAI - Computer Aided Instruction) apresentando
restrições quanto a aspectos cognitivos, pois induzem o aluno a atuar
de forma passiva, além de não permitir uma utilização mais adequada
e personalizada ao perfil do aluno que utiliza o software, pois o
comportamento do ambiente é sempre o mesmo, sessão após sessão.

Os sistemas ICAI são diferenciados dos CAI por separarem as estratégias


de ensino do conhecimento subjetivo a ser ensinado e por manterem
um modelo dinâmico e atualizado da performance do usuário. Mais
recentemente, passou-se a utilizar para os sistemas ICAI a denominação
Sistemas Tutores Inteligentes ou STI (Intelligent Tutoring Systems).
Os sistemas tutores inteligentes são usualmente definidos através de
componentes. A arquitetura pode ser feita com quatro componentes
principais: módulo estudante, módulo pedagógico, módulo domínio do
conhecimento e módulo de comunicação. Abaixo se encontra a relação
entre os componentes.
78 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Figura 43 – Intercepção de ciências pertencentes na ICAI

Fonte: Elaborado pelo autor (2014)

Dentro da proposta de ambientes heurísticos, a IA estuda os STI para


um aumento do potencial de aprendizado através de técnicas cognitivas
e simulação do pensamento humano.

Os STI enfatizam que o fato do conhecimento, e não uma base de dados


convencional, é o principal fator que determina a diferença entre um
STI e um CAI convencional.

Diferenças mais profundas estão na forma com que se concebe o


projeto. Os CAI induzem o aluno a uma resposta correta mediante uma
série de estímulos cuidadosamente planejados, já os tutores Inteligentes
procuram ensinar por instrução direta com o computador conduzindo
o diálogo. É uma sequência de telas, de informações, de conteúdo com
perguntas sobre o material para o estudante, com pontuação para as
respostas, motivando o aluno a rever o material.

Os Tutores Inteligentes podem adaptar seu conteúdo e apresentação


baseado em sua interação com o estudante. Isto é feito com o
conhecimento anterior do estudante, e com base nas respostas dos
alunos o tutor alterará seu material, ora simplificando, ora estendendo,
de forma que possa se adaptar aos alunos individualmente. Eles auxiliam
o ensino de forma a incorporarem técnicas de IA de modo a fazê-los
capazes de saber o Que ensinar, a Quem ensinar e Como devem ensinar.
79
Inteligência Artificial

7.2 ARQUITETURA DOS SISTEMAS TUTORES


INTELIGENTES

O principal objetivo dos Sistemas Tutores Inteligentes é proporcionar um


ensino adaptado a cada aluno, tentando se aproximar ao comportamento
de um professor humano na sala de aula. Estes sistemas se baseiam em
uma arquitetura composta basicamente por quatro componentes. A
arquitetura básica tradicional (Figura 2), tem quatro componentes:

• Modelo do aluno: neste módulo estão armazenadas/modeladas as


características individuais do aluno.
• Modelo do tutor: possui o conhecimento sobre as estratégias e
táticas (representadas no Modelo do aluno).
• Modelo do Especialista: detêm o conhecimento sobre a matéria no
formato de regras de produção, estereótipos, etc.
• Modelo da Interface: intermedia a interação entre o tutor e o aluno.
Os STIs têm como função atribuir uma lição de acordo com o aluno,
mudando o nível de compreensão para responder à determinada entrada
do estudante em vários níveis, podendo mudar as estratégias instrucionais.

Figura 44 – Diagrama de funcionamento para um STI

Fonte: Elaborado pelo autor (2014)

Esta arquitetura é denominada clássica e também conhecida como função


tripartida ou arquitetura tradicional de STI. O termo tripartido se refere às
funções associadas aos modelos do tutor, do aluno e do especialista. Esta
proposta trouxe grandes avanços à modelagem de ambientes educacionais,
pois separou o domínio da sua forma de manipulação (utilização).
Permitindo assim, que estratégias de ensino fossem associadas em função
das informações oriundas da modelagem do aluno.
80 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

7.3 MODELO DO ALUNO

O que distingue os STI dos CAI é objetivo de serem capazes de responder


ao estilo individual de aprendizagem do aluno para distribuir instruções
sob medida. Embora, alguns autores têm questionado o objetivo do
modelo do aluno, por causa de limitações técnicas ou por questões
filosóficas, esta é ainda uma área de pesquisa ativa. Este módulo
representa o conhecimento e as habilidades cognitivas do aluno em um
dado momento. E constituído por dados estáticos e dados dinâmicos
que serão de fundamental importância para o tutor poder comprovar
hipóteses a respeito do aluno. Contém uma representação do estado do
conhecimento do aluno no momento que interage com o STI. A partir
desse modelo e do conteúdo a ser ensinado, o sistema deve ser capaz
de inferir a melhor estratégia de ensino a ser utilizada em seguida. Um
modelo realista do aluno implica numa atualização dinâmica à medida
que o sistema avalia o desempenho do aluno.

Os dados dinâmicos referem-se ao desempenho do aluno frente


às questões formuladas pelo tutor e confrontadas com as hipóteses
elaboradas pelo aluno, frente ao uso que o aluno faz do sistema e frente
aos novos conhecimentos que o aluno pode vir a ensinar ao tutor.
Muitas técnicas são utilizadas para construir o modelo do aluno como,
por exemplo:

• Incluir um reconhecimento de padrões aplicados à história das


respostas fornecidas por ele.
• Comparar a conduta do aluno com a de um especialista e verificar
os pontos em comum.
• Colocar as preferências do aluno.
• Seus objetivos particulares.
• Coisas que ele sempre costuma esquecer quando interage com o tutor.
• Indicação dos seus objetivos particulares.
O modelo do aluno pode ser representado apoiando-se em alguns
modelos de descrição, sendo eles:

Modelo diferencial: onde a resposta do aluno é comparada com a base


de conhecimento. Esta modelagem, se compara a performance do
especialista com a do aluno e não o conhecimento deles. A modelagem
por diferenciação divide o conhecimento em duas classes: a do
conhecimento que se espera que o aluno tenha e a outra que não se
espera que ele possua. Nesta modelagem, o conhecimento do aluno é
somente um subconjunto do conhecimento do especialista.
81
Inteligência Artificial

Modelo de Overlay ou superposição: o conhecimento do aluno é


representado como um subconjunto da base de conhecimento do
sistema tutor. Obviamente, isso implica em que a representação de
conhecimento utilizada no modelo do aluno e na base do domínio seja
a mesma. O modelo overlay assume (implícita ou explicitamente) que
os erros ou comportamentos anómalos do aluno são sempre devidos
à ausência de alguma informação presente na base do domínio.
Este pressuposto psicológico é excessivamente simplista: muitos
comportamentos incorretos originam-se da presença de concepções
incorretas na mente do aluno.

Modelo de Perturbação: também relaciona o modelo do aluno com a


base de conhecimento do domínio. O modelo de perturbação assume
que os erros do aluno são decorrentes da concepção errônea de algum
conceito ou ausência dele.

Modelo de Simulação: O ambiente possui um modelo de como o aluno pode


ou deve se comportar em determinada situação e através deste modelo ele
permite prever o comportamento futuro do aluno, ou seja, a resposta do
aluno baseado no seu comportamento durante a sessão de trabalho.

Modelo de Crenças: consiste em um conjunto de crenças refletindo o


grau que pensamos que o aluno entende sobre um conceito em particular.

O Modelo do aluno tem três tarefas:

1. Deve colher dados do e sobre o aprendiz. Estes dados podem ser:


a. Explícitos: pedir ao aluno para resolver problemas específicos.
b. Implícitos: caminhos de navegação dos alunos e outras interações
e compará-los com informações acerca de respostas similares do
aprendiz.
2. Deve usar os dados para criar uma representação do conhecimento do
aluno e processos de aprendizagem. Estes muitas vezes tomam forma
dos modelos ‘buggy’, que representam o conhecimento do aluno em
termos de desvios de um conhecimento especialista.
3. O Modelo do Aluno deve representar os dados fazendo algum tipo
de diagnóstico, tanto no estado do conhecimento do aluno como em
termos de seleção ótima de estratégias pedagógicas para apresentar
depois a informação do domínio ao aluno. Uma das grandes mudanças
é representar os dados errados, o fato é que o aluno não sempre
responde consistentemente, em particular quando seu conhecimento
é frágil e eles estão indecisos acerca das respostas corretas.
82 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

7.4 MODELO DO DOMÍNIO

O modelo do domínio é o componente especialista do tutor, constituído


pelo material instrucional, por uma sistemática geração de exemplos,
pela formulação de diagnósticos e pelos processos de simulação. Contém
o conhecimento sobre o domínio que se deseja ensinar ao aluno. Vários
modelos de representação de conhecimento podem ser usados aqui:
redes semânticas, frames, scripts, regras de produção, programação
orientada a objetos (OOP), entre outras. A escolha deve recair sobre
aquele método que melhor e mais facilmente atenda aos requisitos de
representação e manipulação do raciocínio.

O modelo de domínio, é um banco de dados organizado em


conhecimentos declarativos e procedurais num domínio específico. Os
sistemas especialistas (sistemas baseados em regras) e redes semânticas
são duas formas para capturar o conhecimento do especialista. A forma
apropriada é determinada pelo tipo e complexidade do conhecimento a
ser representado. Desenvolver um modelo de domínio que forneça uma
cobertura abrangente do conteúdo do material pode ser uma grande
dificuldade e uma tarefa cara.

Este módulo contém o conhecimento real dos elementos e de seus


relacionamentos. Contém fatos e regras de um determinado domínio
que será ensinado ao aluno. É uma lista de conceitos de domínio e
relações entre dados de um tema.

O conhecimento pode ser:

Declarativo e teórico: Os primeiros princípios, a compreensão do


domínio. Para representá-lo são utilizadas redes semânticas e a
metodologia utilizada para sua aquisição é dividida em 3 fases:

• Determinar os objetos a serem incluídos no domínio;


• Decidir como os objetos se relacionam entre si;
• Verificar quais relações estão corretas.
Procedimental: É tipicamente explicativo, explica como fazer uma certa
tarefa, como diagnosticar um problema ou recomendar uma ação. Para
incorporar o conhecimento em um sistema se recomenda:

• Estabelecer as metas;
• Estabelecer os fatos;
• Estabelecer as relações entre as metas e os fatos.
83
Inteligência Artificial

O meio enriquecido de apresentação do material instrucional com o


uso de textos, gráficos, recursos de vídeo, animações, músicas, aliada à
possibilidade de percorrer o material de maneira vinculada à semântica
do conteúdo, é dada no Modelo de Domínio.

As principais funções são:

1. Servir como fonte do conhecimento a ser apresentado ao estudante


- incluindo a geração de material, geração de perguntas e respostas,
entre outras.
2. Fornecer um padrão para avaliar o desempenho do estudante. Para
isso o sistema deve ser capaz de gerar soluções para os problemas
no mesmo contexto do estudante, para que suas respectivas sejam
comparadas.
A forma na qual o modelo de domínio trabalha não é necessariamente
a forma humana de resolver problemas. Os humanos não usam busca
exaustiva, mas aplicam técnicas apropriadas para domínios de resolução
de problemas. Novos modelos para o modelo do domínio têm surgido
e simulam a resolução humana de problemas de forma real. Esses
modelos incorporam conhecimento reflexivo dos fatos, procedimentos,
e qualidades que os humanos usam para estruturar sua própria
representação do conhecimento.

A relação entre a teoria que fornece os fundamentos para um domínio


de conhecimento particular, e sua expressão num STI é outra questão.
Um método instrucional bem sucedido reflete sobre a exatidão da
teoria capturada no modelo de conhecimento. Entendendo e usando
os processos cognitivos apropriados para aprendizagem, o domínio
pode resultar numa estrutura que é generalizável para a assimilação de
outros princípios em modelos especialistas. Os STI podem ser úteis para
técnicas de aquisição, mas também podem ajudar no desenvolvimento
de processos cognitivos.

7.5 MODELO PEDAGÓGICO (TUTOR)

Os modelos pedagógicos contêm as estratégias e as táticas de ensino.


As estratégias constituem conhecimento sobre como ensinar, ou seja,
sobre como gerar, a partir das informações de diagnóstico, monitoração
e análise, uma sequência de táticas de ensino capazes de apresentar com
sucesso um determinado tópico a um determinado aluno.

A maioria dos autores concorda em que uma estratégia de ensino deve


definir:
84 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

• Quando interromper? Que razões justificam interromper o curso de


raciocínio ou aprendizagem do aluno?
• O que dizer? Esta questão desdobra-se em:
a. Seleção do(s) tópico(s) a ser apresentado(s);
b. Ordenação dos tópicos, se houver mais de um.
• Como dizer? Esta é provavelmente a questão mais difícil. Não há
soluções gerais concretas, e muitos autores apontam aqui a falta de
teorias pedagógicas suficientemente detalhadas.
Um método muito utilizado pelos tutores, de um modo geral, é o
chamado método socrático, em que partindo de conhecimentos que o
aluno já domina, o tutor ensina através de perguntas e diálogos, levando
o aluno a tirar suas próprias conclusões. Sendo este seu grande ganho
em relação aos CAI tradicionais onde as conclusões são apresentadas
ao aluno e ele as recebe de forma passiva, mesmo que as mesmas sejam
apresentadas em sofisticados recursos multimídia.

Outro modelo teórico empregado em STI é o modelo coaching


(treinamento), que emprega atividades de entretenimento, como
jogos, para transmitir conceitos relacionados. A aprendizagem é uma
consequência indireta da atuação nessa simulação. Utilizam-se ainda
as estratégias pedagógicas de orientação (o sistema é explicitamente
chamado pelo aluno quando este requisita palpites, expansões ou
críticas) e cooperação.

Um terceiro modelo surgiu com a utilização de hipertextos, em que o


aluno navega numa estrutura de hipertexto e explora o conteúdo a partir
de seus interesses e pré-requisitos. Este documento está organizado de
tal maneira que cada subdivisão lógica do assunto está ligada com o
documento através de diversos tipos de ligações, possibilitando que o
aluno navegue por diferentes alternativas para explorar o domínio.

O modelo de hipertexto abre excelentes perspectivas para a construção


Fala Professor de STI, uma vez que podem abrigar, no mesmo documento, diferentes
formas de representação de conhecimento. Além disto, o aluno pode
trabalhar de forma mais participativa e dinâmica.

O modelo pedagógico contém conhecimento para tomar decisões acerca


das táticas do tutor. A sobreposição dos componentes do STI faz do
modelo pedagógico altamente dependente no processo de diagnóstico
do modelo do aluno para tomar decisões acerca de que informação
85
Inteligência Artificial

apresentar ao aprendiz, e quando e como apresentar essa informação.


Idealmente, o STI se ajustará a uma descrição desdobrada ao nível da
técnica do aluno.

7.6 MODELO DE INTERFACE

Este módulo controla o fluxo de informação entre o computador e o


estudante, selecionando um formulário apropriado para a apresentação
do material do curso baseado no tutor e no estudante. A Interface
Inteligente é capaz de adaptar-se às necessidades de diferentes usuários,
de aprender novos conceitos e técnicas, antecipar-se às necessidades
dos usuários, tomar a iniciativa de fazer sugestões aos usuários e dar
explicação das suas ações. Nos STIs, quando o estudante entra no
sistema, o tutor tem que ter alguma forma de identificá-lo unicamente,
e a comunicação entre o sistema e o usuário é feita através da interface
inteligente. Se for a primeira vez do usuário no sistema, este tem que
apresentar um pré-teste, para que possa ter informações necessárias
para inicializar o módulo estudante. O sistema também deve apresentar
um questionário ao aluno, pedindo que este entre com informações a
seu respeito, como formação e conhecimento prévio. Todas estas etapas
tornam a interface inteligente e tem por objetivo saber o que ensinar, a
quem ensinar e como fazê-lo.

Sabe-se que uma boa interface é vital para o sucesso de qualquer sistema
interativo, e os sistemas tutores inteligentes não constituem a exceção.
Pelo contrário, pode-se dizer que a questão da interação cresce de
importância nesta classe de sistemas, pois é na interação que o sistema
tutor exerce duas de suas principais funções:

a. A apresentação do material instrucional;


b. A monitoração do progresso do aluno através da recepção de suas
respostas.
Dessas duas funções, podemos derivar alguns objetivos a serem
cumpridos pelo módulo de interface:

1. É necessário evitar que o aluno se entedie - ou seja, é preciso riqueza


de recursos na apresentação do material instrucional;
2. É desejável que haja facilidade para troca da iniciativa do diálogo: o
aluno deve poder intervir facilmente no discurso do tutor, e vice-versa;
3. O tempo de resposta deve, evidentemente, permanecer dentro de
limites aceitáveis;
86 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

4. A monitoração deve ser realizada o máximo possível em “background”,


para não onerar o aluno com questionários excessivos, mas respeitando
também a barreira do tempo de resposta.

A interface homem-computador continua sendo uma importante


Fala Professor área de pesquisa em Ciência da Computação. Uma boa interface
antecipa as ações do usuário, deve ser consistente e fornece um alto
nível de interação.

Existem muitos tipos de interfaces. Um estilo particular pode depender


da habilidade do aprendiz e o conhecimento a ser aprendido. A interface
é importante como meio de comunicação, como um ambiente de solução
de problemas que dá suporte ao aluno nas tarefas disponíveis, como uma
representação externa de sistema especialista e modelos instrucionais.

Por causa do grau elevado da interconexão entre os quatro maiores


componentes de um STI, as técnicas usadas num modelo podem ser
aplicadas aos outros modelos. O uso de um modelo cognitivo para
verificar erros do aprendiz ou desentendimento (modelo do aluno), tem
o potencial não somente para apresentar conhecimento para o aprendiz
(modelo do domínio), como faz o tradicional CAI ou a instrução baseada
em computador (CBI), mas para comunicar conhecimento real usado
durante a solução de problemas relevantes melhor que em situações
abstraías. As possibilidades de comunicar conhecimento (modelo de
interface), baseada na prática atual, também fornece oportunidades para
implementar estratégias educacionais que fornecem um fundamento
para o aprendiz durante as fases iniciais da aprendizagem e logo
gradualmente desvanecer-se como a perícia desenvolvida pelo aprendiz.

As possibilidades na apresentação do material instrucional têm recebido


um significativo avanço a partir da utilização de sistemas de hipertexto
e hipermídia. Em seu nível mais básico, um sistema de hipertexto é um
sistema de gerenciamento de bases de dados que permite conectar telas
de informação através de ligações associativas definidas pelo usuário.
O termo hipermídia é utilizado quando as informações conectadas
compreendem, além de texto, material gráfico, recursos de vídeo,
animação, som, etc. Essa variedade de recursos, aliada à possibilidade
de percorrer o material de maneira vinculada à semântica do conteúdo,
fazem dos sistemas de hipermídia uma ferramenta de alto potencial para
apresentação do material instrucional em sistemas tutores inteligentes.
87
Inteligência Artificial

7.7 EXEMPLOS DE SISTEMAS TUTORIAIS


INTELIGENTES

As pesquisas em sistemas inteligentes têm produzido e certamente


continuarão proporcionando um campo de visão para os problemas
relacionados com aprendizagem e instrução. Por isso devem continuar
sendo pesquisados ativamente.

A seguir serão descritos alguns dos esforços historicamente importantes


no desenvolvimento de Sistemas Tutoriais Inteligentes.

SCHOLAR: Foi o primeiro a tentar incluir a modelagem do conteúdo.


O conhecimento do sistema é representado em uma rede semântica
cujos nodos significam objetos e conceitos geográficos sobre a América
do Sul. Esta rede contém uma série de elementos ligados por relações
claramente especificadas, onde por exemplo, o Brasil é um sub-conceito
de país localizado na América do Sul.

SOPHIE: (SOPHisticated Instructional Environment) é um sistema


ICAI desenvolvido por John Seely Brown, Richard Burton, para explorar
a iniciativa do estudante durante uma interação tutorial. A meta
do projeto SOPHIE era criar um ambiente de aprendizagem na qual
os estudantes seriam desafiados a explorar ideias sobre suas próprias
conjecturas ou hipóteses em situações de resolução de problemas.

WEST: Foi iniciado no contexto do SOPHIE. Uma vez que o domínio da


eletrônica parecia muito complexa para uma primeira investigação da arte
de treinar, o domínio escolhido para este propósito foi o jogo educacional
para computador chamado “How the WEST was won”, desenvolvido
para o projeto PLATO Elementary Mathematics Project. Este domínio
estava de acordo, portanto, com o conceito de ambiente de aprendizagem
reativo. O propósito do jogo é exercitar técnicas de aritmética.

GUIDON: É um sistema tutorial especialista para o ensino de


diagnóstico de doenças infecciosas do sangue, que foi desenvolvido a
partir da base de conhecimento já formada do MYCIN, talvez o mais
antigo e conhecido sistema especialista, e cuja concepção original foi
inspirada pelas capacidades de diálogo do sistema SCHOLAR.

HYDRIVE: HYDRaulics Interactive Video Experience é um STI que


incorpora multimídia para resolver problemas de sistema hidráulico de
um avião F-15. Apesar do HYDRIVE utilizar um disco laser externo
para suportar imagens de vídeo, o conteúdo do disco laser (sequência de
animações e imagens) é representado na base de conhecimento utilizada
pelo sistema.
88 Prof. Maycon Guedes Cordeiro e
Prof. Frederico César Ribeiro Marques

Pesquise sobre outros três Sistemas de Tutores inteligentes


Fala Professor implementados em áreas diferentes e escreva uma descrição que
fale sobre a aplicabilidade de cada um deles.
BURNHAM, T F. Aprendizagem Organizacional e Gestão do
Conhecimento. In: Informação, Conhecimento e Sociedade Digital,
Bahia, Jun. 2007. In: Anais do VI CIN-FORM - Encontro Nacional de
Ciência da Computação.

CASTRO, Daiane Dorneles de. Dutra, Renato Luís de Souza. Tarouco,


Liane Margarida Rockenbach. Leonhardt, Michelle Denis. “ELEKTRA:
Um Chatterbot para Uso em Ambiente Educacional”.

CATARINA, A.S. Algoritmos evolutivos aplicados ao processo de


análise de dados geográficos. São José dos Campos: [s,n], 2005.

COSTA, R.M.E.M.;WERNECK, V.M.B. Tutores Inteligentes. Rio de


Janeiro: COPPE /UFRJ, 1996.( ES - 392/96).

FERNANDES, A.M.R. Inteligência Artificial: noções gerais. 2 imp.


Florianópolis: VisualBooks, 2005.

FILHO, J. T. Gerenciando conhecimento: Como a Empresa Pode


Usar a Memória Organizacional e a Inteligência Competitiva no
Desenvolvimento dos Negócios. Editora SENAC, Rio de Janeiro, 2000.

FURTADO, J.C.; LORENA, L.A.N. (1998), “Algoritmo genético


construtivo na otimização de problemas combinatórios de
agrupamentos”, III Oficina de cortes e empacotamento, lac.inpe.br.

GARIBA, M. Jr., Schneider, M. C. K., Rosa, A. E., Casagrande, J. B.,


Santos, C. S.

GIRAFFA, L. M. M. Fundamentos de Sistemas Tutores Inteligentes.


Porto Alegre:CPGCC – UFRGS

GOLDSCHMIDT, Ronaldo Ribeiro, Uma Introdução à Inteligência


Computacional: fundamentos, ferramentas e aplicações (Fundação
de Apoio à Escola Técnica - Instituto Superior de Tecnologia do Rio
de Janeiro) Série Livros Didáticos Digitais Gratuitos – 1ª ed., 143 p.
90
Referências

Hübner, Jomi Fred. “Interface em Linguagem Natural”, In: Trabalho


de Conclusão de Curso, Departamento de Sistemas e Computação da
Universidade Regional de Blumenau.

LINDEN, Ricardo. Algoritmos Genéticos: Uma importante ferramenta


da inteligência computacional. Rio de Janeiro: Brasport, 2006.

MENDES, Raquel Dias. INTELIGÊNCIA ARTIFICIAL: SISTEMAS


ESPECIALISTAS NO GERENCIAMENTO DA INFORMAÇÃO. Ci.
Inf. [online]. 1997, vol.26, n.1 ISSN 0100-1965.

MIRANDA, M. L. Organização e Representação do Conhecimento:


Fundamentos Teórico-Metodológicos na Busca e Recuperação da
Informação em Ambientes Virtuais, http : //www.portalppgci .marilia
.unesp .br/enancib/ viewabstract .php?id=274, último acesso em Abril
de 2014, 2006.

Reconhecimento de Fala e Processamento da Linguagem Natural.


Disponível em: <http://www.cefetsc.edu.br/~gariba/VOZ.PRN.pdf>.
Acessado em: 05 de Julho 2014.

ROVER, A. J. Representação do Conhecimento Legal em Sistemas


Especialistas: O Uso da Técnica de Enquadramentos. PhD thesis,
Universidade Federal de Santa Catarina, UFSC, http://www.infojur.ufsc.
br/aires/princi.html, último acesso em Junho de 2014, 1999.

S. Haykin, Redes Neurais: Princípios e Prática (Bookman Companhia


Editora, Porto Alegre, 2001), 2ª ed., 900 p.

SAHIBEN, Hamilton. Inteligência Artificial na Educação. Disponível por:


WWW em: http://www.cce.ufpr.br/~hamilton/iaed/iaed.htm (16 Jun 14)

SILVEIRA, Ricardo Azambuja. Ambientes Inteligentes Distribuídos


de Aprendizagem. Porto Alegre: CPGCC - UFRGS, 1998. Dissertação
de Mestrado.VICCARI, R. Um Tutor Inteligente para a programação
em Lógica -Idealização, Projeto e Desenvolvimento, Universidade de
Coimbra, 1990. (Tese de Doutorado).

Você também pode gostar