SlideShare uma empresa Scribd logo
1 de 8
SISTEMAS ESPECIALISTAS
Os sistemas especialistas são sistemas concebidos para reproduzir o comportamento de
especialistas humanos na resolução de problemas do mundo real. Um SE processa
conhecimento e não processa dados.
Características: possuem conhecimento especializado em alta qualidade e quantidade;
incluem tratamento de incerteza, podem adquirir novos conhecimentos.Um SE pode ser
dividido em 2 partes: Ferramenta de programação e conhecimento do domínio.
Tipos de SE: Diagnose, interpretação, predição, instrução, planejamento, monitoramento,
controle, projeto.
Arquitetura de um SE: interface gráfica, base de conhecimento, motor de inferência,
dadosespecíficos do caso, subsistema de explanação, editor da base de conhecimento.
Aquisição de Conhecimento:parte mais sensível no desenvolvimento de um SE, um novo
conhecimento deve ser integrado ao conhecimento já disponível na base de conhecimento. A
integração é realizada por meio de relações. Existem 2 tipos de relações: através de ponteiros
ou reunir os elementos em grupos.
Especialista: detentor do conhecimento especializado.
Engenheiro de conhecimento: responsável pela construção do SE.
Programador: responsável pelo desenvolvimento (programação) do SE.

Problemas na fase de aquisição de conhecimento: muitas vezes o especialista não está ciente
como se usa o conhecimentoou tem dificuldades em se expressar, uso de vocabulário próprio.
Soluções intuitivas sem regras rígidas.
Ferramentas para desenvolver SE: CLIPS, Expert Sinta, JESS, Prolog, KADS.
Exemplos:Sistema DENDRAL: estrutura molecular, Sistema MYCIN: auxilia médicos, Sistema
PROSPECTOR: auxilia geologistas, SEmaça: diagnósticos de doenças que atacam macieiras.
------------------------------------------------------------------------------------------------------------------------------
                                             SISTEMAS MULTIAGENTES
Introdução: a inteligência artificial distribuída é o ramo que está relacionada a solução
cooperativa de problemas dentro de um certo ambiente por intermédio de agentes
distribuídos.
A IAD se subdivide em: SDP(solução distribuída de problemas) com foco no problema; SMA
(Sistema multiagentes) com foco no agente.

Agentes Inteligentes: um agente pode ser definido como uma entidade capaz de perceber o
ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores. O
comportamento do agente é descrito pela função agente que mapeia dados da percepção para
ações.
Um agente deve possuir:um certo grau de autonomia para raciocinar e tomar decisões;
capacidade de interagir com outros agentes, sistemas ou humanos; um certo grau de
independência para resolver um problema.(Receptividade, pró-atividade e sociabilidade).
Tipos de agentes: software ou hardware; estacionários ou móveis; persistentes ou
temporários; reativos ou cognitivos.
Agentes reativos: escolhem suas ações baseados unicamente nas percepções que têm do
ambiente. O objetivo é sobreviver;ação baseada em estímulo-resposta; não raciocinam sobre o
mundo; não se planejam para futuras ações; baixa complexidade e estão em grande
quantidade em um sistema.
Agentes cognitivos:possuem um estado mental e funcionam racionalmente. O objetivo é
cooperar; ação baseada em intenções; raciocinam sobre o mundo; se planejam para futuras
ações; média-alta complexidade e estão em pequena quantidade em um sistema. Age de
forma “correta” no ambiente.
Classificação do Ambiente: completamente observável ou parcialmente observável;
determinístico ou estocástico; episódio ou sequencial; estático ou dinâmico; discreto ou
contínuo; agente único ou multiagentes.
Classificação do agente: Agente reativo, agente reativo baseado em modelos, agente baseado
em objetivos; agente baseado na utilidade.
Propriedades dos Agentes: (semi-autonomo), cooperante, benévolo, responsável, racional,
honesto, deliberativo, auto-supervisor.
Agente com aprendizagem:permite ao agente operar em ambientes inicialmente
desconhecidos e se tornar mais competente a medida que interage com o ambiente. É dividido
em 4 componentes: elemento de aprendizado, elemento de desempenho, crítico e gerador de
problemas.
Sistemas multiagentes: consiste de uma aplicação distribuída composta por um conjunto de
agentes, que cooperam entre si para a solução de um problema complexo que está além das
suas capacidades individuais. Competem entre si por recursos, tendo assim que lidar com
conflitos e coordenar suas atividades. Não necessitam utilizar a mesma linguagem, o que por
outro lado, implica na necessidade de traduções e mapeamentos.
Quando utilizar: é intrinsicamente distribuído; requer uma junção de diferentes domínios para
a solução do problema; inclui diferentes níveis de autonomia, é dinâmico; é extremamente
conflitante.
Aplicações: time de futebol (SMA cognitivo cooperativo), formigueiro (SMA Reativo).
Problemas dos SMA: como descrever e alocar as entidades de um problema entre os agentes?
Como habilitar os agentes para se comunicar e interagir? Como garantir que os agentes vão
agir de forma coerente? Como gerenciar a limitação de recursos de cada agente?
Organizações de SMA: as organizações oferecem frameworks para a interação de agentes por
meio de: papéis, comportamentos esperados e relações de autoridade. Pode ser classificada
como: democrática (anárquica): sem organização e sem hierarquia;federada: possuem algum
tipo de hierarquia, presença de um facilitador;hierárquica: um único agente detém toda a
autoridade, a comunicação ocorre verticalmente e pode ser subdividida em: por produto,
centralizada, descentralizada, funcional.
Critérios de avaliação de desempenho da organização hierárquica: custos de produção(para
realizar uma tarefa), custo de coordenação(tomadas de decisão e comunicação para coordenar
as tarefas), custo de vulnerabilidade(causados com interrupções de execução por falhas nos
agentes).
Alocação de tarefas: pode ser pelo método dinâmico(existe um gerente e um contratador) ou
método planejado(considerar as restrições que as ações de outros agentes impõe sobre a ação
de cada agente).
Conflitos: é a situação gerada de um agente quando, visando resolver seu problema, ele se
defronta com a ausência de: objetivos compatíveis, recursos e habilidades. Para isso ele busca
cooperação na forma de interação. Agentes trocam propostas e contrapropostas. Métodos
para resolução:Negociação, abstração e generalização, mediação, argumentação, votação, etc.
Classes de coordenação de negociação: negociação em controle de tráfego aéreo; modelagem
cognitiva da negociação; rede de contrato (RdC-Contrat-Net); negociação multi-estágio
(extensão da RdC).
Áreas de aplicação da negociação: engenharia concorrente, telecomunicações, distribuição de
energia elétrica, robótica móvel, economia do mercado, etc.
Interação entre Agentes: é a capacidade de comunicar-se com outros agentes, usuários e
sistemas, visando atingir seus objetivos.
Pode ser dividida em 4 camadas de complexidade: comunicação (camada básica de qualquer
software que precisa interagir- sintaxe deve ser conhecida por todos), coordenação (define as
regras de interação- semântica explicita), cooperação(estratégia de ação(partilha de
informação e de tarefas)) e colaboração (camada mais refinada- interação de longo prazo).
Resolução Cooperativa Distribuída de Problemas: Dividir para conquistar, um problema é
dividido em subproblemas e cada um é executado separadamente por um agente. É composta
por 4 fases: decomposição, distribuição do problema, solução subproblemas e síntese dos
resultados.
Uma cooperação permite que novos recursos, capacidades e oportunidades sejam criadas e
aumentadas, contrariamente ao que aconteceria se caso não houvesse.
Tipos de cooperação: partilha de informação (agente dispõe informações que julgam serem
úteis partilhar e os envia aos outros agentes); partilha de tarefas (qd um agente detecta sub-
tarefas que não quer ou não é capaz de realizar, ex. balanceamento de carga).
A comunicação: é utilizada dois níveis para a comunicação inter-agente: camada de transporte
(TCP/IP, CORBA, DCOM) e a camada de aplicação(alto nível: 1º contract-net, KQML(mais
representativo), KIF (linguagem padrão), protocolos proprietários(holos)).
Ambientes de Desenvolvimento de SMA: AgentBuilder, ABE, AgentTalk, Aglets, LiveAgent,
Microsoft Agents, etc..
Modelagem de um SMA: deve considerar vários aspectos: tipo de classe do problema, tipos de
comportamentos, níveis de autonomia, os protocolos de comunicação, definição da topologia,
representação do conhecimento, plataforma de implementação.
AUML - AGENT UML: modificações propostas na UML padrão, 1º passo foi estender diagrama
de sequência para modelar as interações entre agentes.
Diagramas de Casos de Uso UML: capturam interações orientadas a objetivos entre os agentes
com seus papéis especificados e o sistema.
Diagrama de Classes de Agente: descreve os tipos de agentes do sistema e seus
relacionamentos estáticos.


------------------------------------------------------------------------------------------------------------------------------
REDES NEURAIS ARTIFICIAIS
Fases Históricas
    Época pré-histórica(até 1875): criar seres e mecanismos apresentando comportamento
    inteligente;
    Época Antiga (1875-1943): Entender a Inteligência Humana;
    Época Romântica (1943-1956): Simular a Inteligência Humana;
    Época Barroca (1956-1969): Expandir ao Máximo as aplicações da IA;
    Época das Trevas (1969-1981): Encontrar para a IA aplicações práticas;
    Renascimento (1981-1987): Renascimento da IA Simbólica e Conexionista;
    Época Contemporânea (1987-...): Alargamento das aplicações das Redes Neurais Artificiais.


As Redes Neurais Artificiais se inspiram nas redes biológicas e formam um dos paradigmas da
Inteligência Artificial - O Conexionismo. Procura imitar a arquitetura do cérebro e espera ver o
comportamento inteligente emergir.
O Modelo de McCulloch & Pitts (1943): O Cérebro como um Sistema Computacional.
5 Suposições Básicas: A atividade de um neurônio é um processo tudo ou nada; Um certo
número fixo (>1) de entradas devem ser excitadas dentro de um período de adição latente
para excitar um neurônio; O único atraso significativo é o atraso sináptico; A atividade de
qualquer sinapse inibitória previne absolutamente a excitação do neurônio; A estrutura das
interconexões não muda com o tempo.
O Aprendizado de Hebb (1949): Base para todas as outras regras de aprendizado.
“Quando um axônio de um neurônio A está próximo o suficiente para excitar um neurônio B, e
repetidamente ou persistetemente toma parte do disparo de B, então, ocorre um certo
processo de crescimento ou mudança metabólica em uma das 2 células, de forma que a
eficiência de A em contribuir para o disparo de B é aumentado (“força do contato sináptico).”
O PERCEPTRON : Frank Rosenblatt (1958): “A conectividade desenvolvida nas redes biológicas
contém um grande número aleatório de elementos”. No início, o Perceptron não é capaz de
distinguir padrões e portanto ele é genérico. Pode ser treinado. Com o tempo foi-se notando
que a capacidade de separabilidade era dependente de “certas condições de contorno” dos
padrões de entrada.
O PERCEPTRON : Minsky e Papert (1969): CONCLUSÃO: O PERCEPTRON É CAPAZ DE
DISTINGUIR APENAS PADRÕES LINEARMENTE SEPARÁVEIS!!! Isto causou um “trauma” na
comunidade científica e levou ao corte de verbas para as pesquisas em Redes Neurais
Artificiais. “Se colocarmos mais uma camada de neurônios podemos resolver esta limitação.
Mas como achar os pesos?” Na época não se sabia como.
Em 1974, Paul Werbos conseguiu o maior progresso em termos de redes neurais desde o
perceptron de Rosenblatt: ele lançou as bases do algoritmo de retro-propagação
("backpropagation"), que permitiu que redes neurais com múltiplas camadas apresentassem
capacidade de aprendizado. Em 1982, David Parker desenvolveu um método similar, de forma
aparentemente independente. Contudo, a potencialidade deste método tardou a ser
reconhecida.
Os primeiros resultados da retomada do desenvolvimento sobre redes neurais foram
publicados em 1986 e 1987, através dos trabalhos do grupo PDP (Parallel and Distributed
Processing), onde ficou consagrada a técnica de treinamento por backpropagation.
Definições de Sistemas Dinâmicos Aplicados ao Neurônio Artificial: A partir da definição
formal para a representação de um neurônio artificial é possível descrever o funcionamento de
diversos modelos de neurônios, bastando particularizar os parâmetros que definem o sistema.
Particular atenção será dada à escolha da função de transição de estados f e na função de
saída l e na maneira de combinar os valores de entrada dos neurônios.
As Entradas: As entradas de um neurônio podem ser as saídas de outros neurônios, entradas
externas, um bias ou qualquer combinação destes elementos.
A Combinação das Entradas - O “Net”: O somatório de todas estas entradas, multiplicadas por
suas respectivas forças de conexão sináptica (os pesos), dá origem ao chamado "net" de um
neurônio. Após a determinação do net i, o valor da ativação do neurônio é atualizado através
da função de ativação e finalmente, o valor de saída do neurônio é produzido através da
função de saída (lambda).
A Função de Ativação
        Os estados futuros de um neurônio são afetados pelo estado atual do neurônio e pelo
       valor do net de entrada. Este tipo de neurônio, que possui "memória" é conhecido
       como "neurônio dinâmico".
        Por outro lado, se considerarmos a função como constante, teremos neurônios que
       não possuem "memória", ou seja, o estado atual é igual aos estados anteriores e
       portanto o neurônio é conhecido como "neurônio estático”.
Arquitetura das RNAs: Uma rede neural artificial é composta por várias unidades de
processamento (neurônios), cujo funcionamento é bastante simples. Essas unidades,
geralmente são conectadas por canais de comunicação que estão associados a determinado
peso. As unidades fazem operações apenas sobre seus dados locais, que são entradas
recebidas pelas suas conexões. O comportamento inteligente de uma Rede Neural Artificial
vem das interações entre as unidades de processamento da rede.
Características Gerais das RNAs: São modelos adaptativos treináveis; Podem representar
domínios complexos (não lineares); São capazes de generalização diante de informação
incompleta; Robustos; São capazes de fazer armazenamento associativo de informações;
Processam informações Espaço/temporais; Possuem grande paralelismo, o que lhe conferem
rapidez de processamento.
Existem basicamente 3 tipos básicos de arquitetura de RNAs:
   Feedforward de uma única camada: Os neurônios da camada de entrada correspondem
   aos neurônios sensoriais que possibilitam a entrada de sinais na neurônio sensorial
   neurônio de processamento o rede (não fazem processamento). Os neurônios da camada
   de saída fazem processamento.
   Feedforward de múltiplas camadas: Essas redes tem uma ou mais camadas intermediárias
   ou escondidas.
   Redes recorrentes: Essas redes possuem pelo menos uma interconexão realimentando a
   saída de neurônios para outros neurônios da rede (conexão cíclica).
Usualmente as camadas são classificadas em três grupos: Camada de Entrada; Camadas
Intermediárias ou Ocultas; Camada de Saída.
A rede neural de Hopfield apresenta comportamento dinâmico e fluxo de dados
multidirecional devido à integração total dos neurônios, desaparecendo assim a idéia de
camadas bem distintas.
Treinamento: A propriedade mais importante das redes neurais é a habilidade de aprender de
seu ambiente e com isso melhorar seu desempenho. Isso é feito através de um processo
iterativo de ajustes aplicado a seus pesos, o treinamento.
Os principais modelos (paradigmas) de aprendizagem são:
1) supervisionado: Também conhecida com aprendizagem com professor, o treinamento é
feito usando a regra de aprendizagem por correção de erro.;
2) não-supervisionado: Neste caso não há um professor para supervisionar o processo de
aprendizagem, pode-se utilizar a regra de aprendizagem competitiva;
3) com reforço: Pode ser visto como caso particular de aprendizagem supervisionada, a
diferença é a medida de desempenho usada em cada um deles.
Aumentando-se o número de neurônios na camada escondida aumenta-se a capacidade de
mapeamento não-linear da rede. No entanto, quando esse número for muito grande, o
modelo pode se sobre-ajustar aos dados, na presença de ruído nas amostras de treinamento.
Diz-se que a rede está sujeito ao sobre-treinamento (overfitting).
Por outro lado, uma rede com poucos neurônios na camada escondida pode não ser capaz de
realizar o mapeamento desejado, o que é denominado de underfitting. O underfitting também
pode ser causado quando o treinamento é interrompido de forma prematura.
A eficiência do aprendizado em redes multicamadas depende da: especificação de arquitetura
da rede; função de ativação; regra de aprendizagem e valores iniciais dos vetores de pesos e
bias.
Algoritmo de aprendizagem – backpropagation: Regra de aprendizagem baseada na correção
do erro pelo método do Gradiente. O algoritmo de aprendizagem é composto de duas fases:
Cálculo do erro (forward), Correção dos pesos sinápticos (backward).
Durante o treinamento com o algoritmo backpropagation, a rede opera em uma sequência de
dois passos:
• Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade resultante flui
através da rede, camada por camada, até que a resposta seja produzida pela camada de saída.
• Segundo passo, a saída obtida é comparada à saída desejada para esse padrão particular. Se
esta não estiver correta, o erro é calculado. O erro é propagado a partir da camada de saída
até a camada de entrada, e os pesos das conexões das unidades das camadas internas vão
sendo modificados conforme o erro é retropropagado.
Desvantagens do algoritmo de aprendizagem backpropagation: Normalmente o tempo de
processamento é elevado; A arquitetura da rede deve ser fixada a priori.
Cada apresentação de todo o conjunto de treinamento é denominada época. O processo de
aprendizagem é repetido época após época, até que um critério de parada seja satisfeito.
Atualização dos pesos pode ser de duas maneiras básicas: local (a atualização é feita
imediatamente após a apresentação de cada amostra de treinamento)e por lote(a atualização
só é feita após a apresentação de todas as amostras de treinamento que constituem uma
época).
As aplicações de redes neurais artificiais podem ser divididas em:
     Reconhecimento de padrões e Classificação;
     Agrupamento ou categorização (clustering);
     Aproximação de funções e modelagem;
     Previsão;
     Otimização;
     Controle.

------------------------------------------------------------------------------------------------------------------------------
ALGORITMOS GENÉTICOS (COMPUTAÇÃO EVOLUCIONÁRIA)

Introdução: Método fraco de resolução de problemas baseado na evolução natural das
espécies. Implementam mecanismos de evolução natural incluindo cruzamento, mutação e
aptidão para sobrevivência. Trabalha com populações de indivíduos. Os indivíduos são
submetidos a um processo de evolução.
Inspirada nos processos subjacentes à evolução: Moldar uma população de indivíduos através
da sobrevivência de seus membros mais ajustados. Pressões seletivas não surgem apenas do
ambiente externo, mas também de interações entre membros de uma população.
Tipos de Algoritmos Evolutivos: Algoritmos genéticos; Sistemas classificadores; Estratégias
evolutivas; Programação genética, e Programação evolutiva.
Os algoritmos genéticos produzem soluções para problemas com capacidade crescente,
operando sobre populações de soluções candidatas para o problema.
Componentes de um AG: Um problema a resolver, e ...
         Técnica de codificação: gene, cromossomo
         Procedimento de Inicialização: genesis
         Função de Avaliação: meio ambiente
         Seleção de pais: reprodução
         Operadores Genéticos: Mutação e recombinação
         Ajuste de Parâmetros: prática e arte
AGs operam numa população (conjunto) de pontos. Operam num espaço de soluções
codificadas. Necessitam somente de informação sobre o valor de uma função objetivo para
cada membro da população. Usam transições probabilísticas.
Representação Cromossômica: Cada seqüência s corresponde a um cromossomo. Cada
elemento de s é equivalente a um gene.




Na maior parte dos AGs assume-se que cada indivíduo seja constituído de um único
cromossomo.
Para cada problema, encontrar uma representação cromossômica conveniente é sempre o
primeiro passo. Usa-se um vetor binário para representar cada ponto no espaço de busca.
Como há um número infinito de pontos no intervalo de interesse, a dimensão deste vetor ou
seqüência binária depende da precisão requerida para o problema.
Fluxo básico:
Inicializar a população: é gerada aleatoriamente ou através de algum processo heurístico;
Avaliação e Adequabilidade: A avaliação de cada indivíduo resulta num valor denominado de
fitness(adequabilidade). Quanto maior o fitness, maiores são as chances do indivíduo
sobreviver e se reproduzir.
Seleção: Emula os processos de reprodução assexuada e seleção natural. Gera-se uma
população temporária de N indivíduos extraídos com probabilidade proporcional ao fitness
relativo de cada indivíduo na população. Neste processo, indivíduos com baixo fitness terão
alta probabilidade de desaparecerem da população (serem extintos).
Exemplo: Seleção dos pais: A seleção dos pais é realizada usando-se uma roleta com
tamanhos de setores de acordo com os valores obtidos na avaliação dos cromossomos.
Condições de Término: Como normalmente estamos tratando de problemas de otimização, o
ideal seria que o algoritmo terminasse assim que o ponto ótimo fosse descoberto. Pode haver
situações onde todos ou o maior número possível de pontos ótimos sejam desejados.
Normalmente usa-se o critério de número máximo de gerações ou um tempo limite de
processamento para parar um AG. Outro critério usa a idéia de estagnação, ou, seja, para-se o
algoritmo quando não se observa melhoria da população depois de várias gerações.
Operadores Genéticos:
Recombinação (crossover): É um processo sexuado - ou seja, envolve mais de um indivíduo.
Emula o fenômeno de “crossover”, a troca de fragmentos entre pares de cromossomos. Na
forma mais simples, é um processo aleatório que ocorre com probabilidade fixa prec que deve
ser especificada pelo usuário. O ponto de divisão pode ser ajustado aleatoriamente ou
mudado durante o processo de solução.
Mutação: O processo de mutação é equivalente à busca aleatória. Seleciona-se uma posição
num cromossomo e muda-se o valor do gene correspondente aleatoriamente para um outro
alelo possível. O processo é geralmente controlado por um parâmetro fixo pmut que indica a
probabilidade de um gene sofrer mutação.
Programação Genética: Técnica para geração automática de programas de computador.
Criada por John Koza em 1992. Objetivo: Ensinar computadores a se programar, isto é, a partir
de especificações de comportamento, o computador deve ser capaz de evoluir um programa
que as satisfaça.
Representação genotípica: Estrutura em árvore: Conjunto de funções {F} e Conjunto de
terminais {T}.
Robótica Evolutiva: Surgiu da utilização de técnicas de computação evolutiva para sintetizar
automaticamente controladores para robôs. Na RE o comportamento global é constantemente
avaliado e modificado por um processo de avaliação automático. A RE pode ser descrita como
um processo de evolução e adaptação contínuas de um robô situado em um determinado
ambiente.
Principais questões abordadas pela RE: Sintetizar automaticamente comportamentos mais
complexos do que aqueles que podem ser produzidos manualmente; Explorar amplamente as
características do ambiente e dos indivíduos; Produzir o comportamento esperado
espeficicando-se o que o robô deve fazer e não como ele deve operar; Mostrar que técnicas
evolutivas podem reduzir o esforço humano necessário para produzir um sistema de controle
em comparação com métodos manuais de projeto.
Abordagens: Evolução em simulação com testes em robôs reais. Evolução em robôs reais.
Evolução embarcada

Mais conteúdo relacionado

Semelhante a Resumo prova

IA Distribuída
IA DistribuídaIA Distribuída
IA Distribuídarafael.joi
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosRodrigo de Oliveira
 
Palestra no ERCEMAPI 2009
Palestra no ERCEMAPI 2009Palestra no ERCEMAPI 2009
Palestra no ERCEMAPI 2009vpmachado
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IAThiago Marinho
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientadarobinhoct
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria Inteligente
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria InteligenteSeminário Inteligência Artificial - Sistemas Multiagentes e Tutoria Inteligente
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria InteligenteLuís Felippe Floriani
 
3294 lógica de programação
3294 lógica de programação3294 lógica de programação
3294 lógica de programaçãoLucas Cruz
 
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversação
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversaçãoAula 01 - Metodologia Científica: projetos, ciência e redes de conversação
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversaçãoDalton Martins
 
Aula4AgentesIntelig.ppt
Aula4AgentesIntelig.pptAula4AgentesIntelig.ppt
Aula4AgentesIntelig.pptIsaac Medeiros
 
Aspectos Do Usuario Parte2
Aspectos Do Usuario Parte2Aspectos Do Usuario Parte2
Aspectos Do Usuario Parte2designluisa
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentesVanessa Biff
 

Semelhante a Resumo prova (20)

IA Distribuída
IA DistribuídaIA Distribuída
IA Distribuída
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativos
 
Palestra no ERCEMAPI 2009
Palestra no ERCEMAPI 2009Palestra no ERCEMAPI 2009
Palestra no ERCEMAPI 2009
 
Sistemas Multiagentes Baseados em Modelagem por Redes de Petri: um estudo de ...
Sistemas Multiagentes Baseados em Modelagem por Redes de Petri: um estudo de ...Sistemas Multiagentes Baseados em Modelagem por Redes de Petri: um estudo de ...
Sistemas Multiagentes Baseados em Modelagem por Redes de Petri: um estudo de ...
 
Sld 4
Sld 4Sld 4
Sld 4
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IA
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientada
 
GP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
GP4US - Pesquisa Operacional - Introdução à Tomada de DecisãoGP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
GP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria Inteligente
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria InteligenteSeminário Inteligência Artificial - Sistemas Multiagentes e Tutoria Inteligente
Seminário Inteligência Artificial - Sistemas Multiagentes e Tutoria Inteligente
 
3294 lógica de programação
3294 lógica de programação3294 lógica de programação
3294 lógica de programação
 
Analise - Aula 1
Analise - Aula 1Analise - Aula 1
Analise - Aula 1
 
Analise sistemas 02
Analise sistemas 02Analise sistemas 02
Analise sistemas 02
 
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversação
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversaçãoAula 01 - Metodologia Científica: projetos, ciência e redes de conversação
Aula 01 - Metodologia Científica: projetos, ciência e redes de conversação
 
Questões de tga.
Questões de tga.Questões de tga.
Questões de tga.
 
Aula-I.A.- UFSC
Aula-I.A.- UFSCAula-I.A.- UFSC
Aula-I.A.- UFSC
 
Aula4AgentesIntelig.ppt
Aula4AgentesIntelig.pptAula4AgentesIntelig.ppt
Aula4AgentesIntelig.ppt
 
Analise aula3
Analise aula3Analise aula3
Analise aula3
 
Aspectos Do Usuario Parte2
Aspectos Do Usuario Parte2Aspectos Do Usuario Parte2
Aspectos Do Usuario Parte2
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
 

Resumo prova

  • 1. SISTEMAS ESPECIALISTAS Os sistemas especialistas são sistemas concebidos para reproduzir o comportamento de especialistas humanos na resolução de problemas do mundo real. Um SE processa conhecimento e não processa dados. Características: possuem conhecimento especializado em alta qualidade e quantidade; incluem tratamento de incerteza, podem adquirir novos conhecimentos.Um SE pode ser dividido em 2 partes: Ferramenta de programação e conhecimento do domínio. Tipos de SE: Diagnose, interpretação, predição, instrução, planejamento, monitoramento, controle, projeto. Arquitetura de um SE: interface gráfica, base de conhecimento, motor de inferência, dadosespecíficos do caso, subsistema de explanação, editor da base de conhecimento. Aquisição de Conhecimento:parte mais sensível no desenvolvimento de um SE, um novo conhecimento deve ser integrado ao conhecimento já disponível na base de conhecimento. A integração é realizada por meio de relações. Existem 2 tipos de relações: através de ponteiros ou reunir os elementos em grupos. Especialista: detentor do conhecimento especializado. Engenheiro de conhecimento: responsável pela construção do SE. Programador: responsável pelo desenvolvimento (programação) do SE. Problemas na fase de aquisição de conhecimento: muitas vezes o especialista não está ciente como se usa o conhecimentoou tem dificuldades em se expressar, uso de vocabulário próprio. Soluções intuitivas sem regras rígidas. Ferramentas para desenvolver SE: CLIPS, Expert Sinta, JESS, Prolog, KADS. Exemplos:Sistema DENDRAL: estrutura molecular, Sistema MYCIN: auxilia médicos, Sistema PROSPECTOR: auxilia geologistas, SEmaça: diagnósticos de doenças que atacam macieiras. ------------------------------------------------------------------------------------------------------------------------------ SISTEMAS MULTIAGENTES Introdução: a inteligência artificial distribuída é o ramo que está relacionada a solução cooperativa de problemas dentro de um certo ambiente por intermédio de agentes distribuídos. A IAD se subdivide em: SDP(solução distribuída de problemas) com foco no problema; SMA (Sistema multiagentes) com foco no agente. Agentes Inteligentes: um agente pode ser definido como uma entidade capaz de perceber o ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores. O comportamento do agente é descrito pela função agente que mapeia dados da percepção para ações.
  • 2. Um agente deve possuir:um certo grau de autonomia para raciocinar e tomar decisões; capacidade de interagir com outros agentes, sistemas ou humanos; um certo grau de independência para resolver um problema.(Receptividade, pró-atividade e sociabilidade). Tipos de agentes: software ou hardware; estacionários ou móveis; persistentes ou temporários; reativos ou cognitivos. Agentes reativos: escolhem suas ações baseados unicamente nas percepções que têm do ambiente. O objetivo é sobreviver;ação baseada em estímulo-resposta; não raciocinam sobre o mundo; não se planejam para futuras ações; baixa complexidade e estão em grande quantidade em um sistema. Agentes cognitivos:possuem um estado mental e funcionam racionalmente. O objetivo é cooperar; ação baseada em intenções; raciocinam sobre o mundo; se planejam para futuras ações; média-alta complexidade e estão em pequena quantidade em um sistema. Age de forma “correta” no ambiente. Classificação do Ambiente: completamente observável ou parcialmente observável; determinístico ou estocástico; episódio ou sequencial; estático ou dinâmico; discreto ou contínuo; agente único ou multiagentes. Classificação do agente: Agente reativo, agente reativo baseado em modelos, agente baseado em objetivos; agente baseado na utilidade. Propriedades dos Agentes: (semi-autonomo), cooperante, benévolo, responsável, racional, honesto, deliberativo, auto-supervisor. Agente com aprendizagem:permite ao agente operar em ambientes inicialmente desconhecidos e se tornar mais competente a medida que interage com o ambiente. É dividido em 4 componentes: elemento de aprendizado, elemento de desempenho, crítico e gerador de problemas. Sistemas multiagentes: consiste de uma aplicação distribuída composta por um conjunto de agentes, que cooperam entre si para a solução de um problema complexo que está além das suas capacidades individuais. Competem entre si por recursos, tendo assim que lidar com conflitos e coordenar suas atividades. Não necessitam utilizar a mesma linguagem, o que por outro lado, implica na necessidade de traduções e mapeamentos. Quando utilizar: é intrinsicamente distribuído; requer uma junção de diferentes domínios para a solução do problema; inclui diferentes níveis de autonomia, é dinâmico; é extremamente conflitante. Aplicações: time de futebol (SMA cognitivo cooperativo), formigueiro (SMA Reativo). Problemas dos SMA: como descrever e alocar as entidades de um problema entre os agentes? Como habilitar os agentes para se comunicar e interagir? Como garantir que os agentes vão agir de forma coerente? Como gerenciar a limitação de recursos de cada agente? Organizações de SMA: as organizações oferecem frameworks para a interação de agentes por meio de: papéis, comportamentos esperados e relações de autoridade. Pode ser classificada como: democrática (anárquica): sem organização e sem hierarquia;federada: possuem algum tipo de hierarquia, presença de um facilitador;hierárquica: um único agente detém toda a autoridade, a comunicação ocorre verticalmente e pode ser subdividida em: por produto, centralizada, descentralizada, funcional. Critérios de avaliação de desempenho da organização hierárquica: custos de produção(para realizar uma tarefa), custo de coordenação(tomadas de decisão e comunicação para coordenar as tarefas), custo de vulnerabilidade(causados com interrupções de execução por falhas nos agentes).
  • 3. Alocação de tarefas: pode ser pelo método dinâmico(existe um gerente e um contratador) ou método planejado(considerar as restrições que as ações de outros agentes impõe sobre a ação de cada agente). Conflitos: é a situação gerada de um agente quando, visando resolver seu problema, ele se defronta com a ausência de: objetivos compatíveis, recursos e habilidades. Para isso ele busca cooperação na forma de interação. Agentes trocam propostas e contrapropostas. Métodos para resolução:Negociação, abstração e generalização, mediação, argumentação, votação, etc. Classes de coordenação de negociação: negociação em controle de tráfego aéreo; modelagem cognitiva da negociação; rede de contrato (RdC-Contrat-Net); negociação multi-estágio (extensão da RdC). Áreas de aplicação da negociação: engenharia concorrente, telecomunicações, distribuição de energia elétrica, robótica móvel, economia do mercado, etc. Interação entre Agentes: é a capacidade de comunicar-se com outros agentes, usuários e sistemas, visando atingir seus objetivos. Pode ser dividida em 4 camadas de complexidade: comunicação (camada básica de qualquer software que precisa interagir- sintaxe deve ser conhecida por todos), coordenação (define as regras de interação- semântica explicita), cooperação(estratégia de ação(partilha de informação e de tarefas)) e colaboração (camada mais refinada- interação de longo prazo). Resolução Cooperativa Distribuída de Problemas: Dividir para conquistar, um problema é dividido em subproblemas e cada um é executado separadamente por um agente. É composta por 4 fases: decomposição, distribuição do problema, solução subproblemas e síntese dos resultados. Uma cooperação permite que novos recursos, capacidades e oportunidades sejam criadas e aumentadas, contrariamente ao que aconteceria se caso não houvesse. Tipos de cooperação: partilha de informação (agente dispõe informações que julgam serem úteis partilhar e os envia aos outros agentes); partilha de tarefas (qd um agente detecta sub- tarefas que não quer ou não é capaz de realizar, ex. balanceamento de carga). A comunicação: é utilizada dois níveis para a comunicação inter-agente: camada de transporte (TCP/IP, CORBA, DCOM) e a camada de aplicação(alto nível: 1º contract-net, KQML(mais representativo), KIF (linguagem padrão), protocolos proprietários(holos)). Ambientes de Desenvolvimento de SMA: AgentBuilder, ABE, AgentTalk, Aglets, LiveAgent, Microsoft Agents, etc.. Modelagem de um SMA: deve considerar vários aspectos: tipo de classe do problema, tipos de comportamentos, níveis de autonomia, os protocolos de comunicação, definição da topologia, representação do conhecimento, plataforma de implementação. AUML - AGENT UML: modificações propostas na UML padrão, 1º passo foi estender diagrama de sequência para modelar as interações entre agentes. Diagramas de Casos de Uso UML: capturam interações orientadas a objetivos entre os agentes com seus papéis especificados e o sistema. Diagrama de Classes de Agente: descreve os tipos de agentes do sistema e seus relacionamentos estáticos. ------------------------------------------------------------------------------------------------------------------------------
  • 4. REDES NEURAIS ARTIFICIAIS Fases Históricas Época pré-histórica(até 1875): criar seres e mecanismos apresentando comportamento inteligente; Época Antiga (1875-1943): Entender a Inteligência Humana; Época Romântica (1943-1956): Simular a Inteligência Humana; Época Barroca (1956-1969): Expandir ao Máximo as aplicações da IA; Época das Trevas (1969-1981): Encontrar para a IA aplicações práticas; Renascimento (1981-1987): Renascimento da IA Simbólica e Conexionista; Época Contemporânea (1987-...): Alargamento das aplicações das Redes Neurais Artificiais. As Redes Neurais Artificiais se inspiram nas redes biológicas e formam um dos paradigmas da Inteligência Artificial - O Conexionismo. Procura imitar a arquitetura do cérebro e espera ver o comportamento inteligente emergir. O Modelo de McCulloch & Pitts (1943): O Cérebro como um Sistema Computacional. 5 Suposições Básicas: A atividade de um neurônio é um processo tudo ou nada; Um certo número fixo (>1) de entradas devem ser excitadas dentro de um período de adição latente para excitar um neurônio; O único atraso significativo é o atraso sináptico; A atividade de qualquer sinapse inibitória previne absolutamente a excitação do neurônio; A estrutura das interconexões não muda com o tempo. O Aprendizado de Hebb (1949): Base para todas as outras regras de aprendizado. “Quando um axônio de um neurônio A está próximo o suficiente para excitar um neurônio B, e repetidamente ou persistetemente toma parte do disparo de B, então, ocorre um certo processo de crescimento ou mudança metabólica em uma das 2 células, de forma que a eficiência de A em contribuir para o disparo de B é aumentado (“força do contato sináptico).” O PERCEPTRON : Frank Rosenblatt (1958): “A conectividade desenvolvida nas redes biológicas contém um grande número aleatório de elementos”. No início, o Perceptron não é capaz de distinguir padrões e portanto ele é genérico. Pode ser treinado. Com o tempo foi-se notando que a capacidade de separabilidade era dependente de “certas condições de contorno” dos padrões de entrada. O PERCEPTRON : Minsky e Papert (1969): CONCLUSÃO: O PERCEPTRON É CAPAZ DE DISTINGUIR APENAS PADRÕES LINEARMENTE SEPARÁVEIS!!! Isto causou um “trauma” na comunidade científica e levou ao corte de verbas para as pesquisas em Redes Neurais Artificiais. “Se colocarmos mais uma camada de neurônios podemos resolver esta limitação. Mas como achar os pesos?” Na época não se sabia como. Em 1974, Paul Werbos conseguiu o maior progresso em termos de redes neurais desde o perceptron de Rosenblatt: ele lançou as bases do algoritmo de retro-propagação ("backpropagation"), que permitiu que redes neurais com múltiplas camadas apresentassem capacidade de aprendizado. Em 1982, David Parker desenvolveu um método similar, de forma aparentemente independente. Contudo, a potencialidade deste método tardou a ser reconhecida. Os primeiros resultados da retomada do desenvolvimento sobre redes neurais foram publicados em 1986 e 1987, através dos trabalhos do grupo PDP (Parallel and Distributed Processing), onde ficou consagrada a técnica de treinamento por backpropagation. Definições de Sistemas Dinâmicos Aplicados ao Neurônio Artificial: A partir da definição formal para a representação de um neurônio artificial é possível descrever o funcionamento de
  • 5. diversos modelos de neurônios, bastando particularizar os parâmetros que definem o sistema. Particular atenção será dada à escolha da função de transição de estados f e na função de saída l e na maneira de combinar os valores de entrada dos neurônios. As Entradas: As entradas de um neurônio podem ser as saídas de outros neurônios, entradas externas, um bias ou qualquer combinação destes elementos. A Combinação das Entradas - O “Net”: O somatório de todas estas entradas, multiplicadas por suas respectivas forças de conexão sináptica (os pesos), dá origem ao chamado "net" de um neurônio. Após a determinação do net i, o valor da ativação do neurônio é atualizado através da função de ativação e finalmente, o valor de saída do neurônio é produzido através da função de saída (lambda). A Função de Ativação Os estados futuros de um neurônio são afetados pelo estado atual do neurônio e pelo valor do net de entrada. Este tipo de neurônio, que possui "memória" é conhecido como "neurônio dinâmico". Por outro lado, se considerarmos a função como constante, teremos neurônios que não possuem "memória", ou seja, o estado atual é igual aos estados anteriores e portanto o neurônio é conhecido como "neurônio estático”. Arquitetura das RNAs: Uma rede neural artificial é composta por várias unidades de processamento (neurônios), cujo funcionamento é bastante simples. Essas unidades, geralmente são conectadas por canais de comunicação que estão associados a determinado peso. As unidades fazem operações apenas sobre seus dados locais, que são entradas recebidas pelas suas conexões. O comportamento inteligente de uma Rede Neural Artificial vem das interações entre as unidades de processamento da rede. Características Gerais das RNAs: São modelos adaptativos treináveis; Podem representar domínios complexos (não lineares); São capazes de generalização diante de informação incompleta; Robustos; São capazes de fazer armazenamento associativo de informações; Processam informações Espaço/temporais; Possuem grande paralelismo, o que lhe conferem rapidez de processamento. Existem basicamente 3 tipos básicos de arquitetura de RNAs: Feedforward de uma única camada: Os neurônios da camada de entrada correspondem aos neurônios sensoriais que possibilitam a entrada de sinais na neurônio sensorial neurônio de processamento o rede (não fazem processamento). Os neurônios da camada de saída fazem processamento. Feedforward de múltiplas camadas: Essas redes tem uma ou mais camadas intermediárias ou escondidas. Redes recorrentes: Essas redes possuem pelo menos uma interconexão realimentando a saída de neurônios para outros neurônios da rede (conexão cíclica). Usualmente as camadas são classificadas em três grupos: Camada de Entrada; Camadas Intermediárias ou Ocultas; Camada de Saída. A rede neural de Hopfield apresenta comportamento dinâmico e fluxo de dados multidirecional devido à integração total dos neurônios, desaparecendo assim a idéia de camadas bem distintas. Treinamento: A propriedade mais importante das redes neurais é a habilidade de aprender de seu ambiente e com isso melhorar seu desempenho. Isso é feito através de um processo iterativo de ajustes aplicado a seus pesos, o treinamento. Os principais modelos (paradigmas) de aprendizagem são:
  • 6. 1) supervisionado: Também conhecida com aprendizagem com professor, o treinamento é feito usando a regra de aprendizagem por correção de erro.; 2) não-supervisionado: Neste caso não há um professor para supervisionar o processo de aprendizagem, pode-se utilizar a regra de aprendizagem competitiva; 3) com reforço: Pode ser visto como caso particular de aprendizagem supervisionada, a diferença é a medida de desempenho usada em cada um deles. Aumentando-se o número de neurônios na camada escondida aumenta-se a capacidade de mapeamento não-linear da rede. No entanto, quando esse número for muito grande, o modelo pode se sobre-ajustar aos dados, na presença de ruído nas amostras de treinamento. Diz-se que a rede está sujeito ao sobre-treinamento (overfitting). Por outro lado, uma rede com poucos neurônios na camada escondida pode não ser capaz de realizar o mapeamento desejado, o que é denominado de underfitting. O underfitting também pode ser causado quando o treinamento é interrompido de forma prematura. A eficiência do aprendizado em redes multicamadas depende da: especificação de arquitetura da rede; função de ativação; regra de aprendizagem e valores iniciais dos vetores de pesos e bias. Algoritmo de aprendizagem – backpropagation: Regra de aprendizagem baseada na correção do erro pelo método do Gradiente. O algoritmo de aprendizagem é composto de duas fases: Cálculo do erro (forward), Correção dos pesos sinápticos (backward). Durante o treinamento com o algoritmo backpropagation, a rede opera em uma sequência de dois passos: • Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade resultante flui através da rede, camada por camada, até que a resposta seja produzida pela camada de saída. • Segundo passo, a saída obtida é comparada à saída desejada para esse padrão particular. Se esta não estiver correta, o erro é calculado. O erro é propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões das unidades das camadas internas vão sendo modificados conforme o erro é retropropagado. Desvantagens do algoritmo de aprendizagem backpropagation: Normalmente o tempo de processamento é elevado; A arquitetura da rede deve ser fixada a priori. Cada apresentação de todo o conjunto de treinamento é denominada época. O processo de aprendizagem é repetido época após época, até que um critério de parada seja satisfeito. Atualização dos pesos pode ser de duas maneiras básicas: local (a atualização é feita imediatamente após a apresentação de cada amostra de treinamento)e por lote(a atualização só é feita após a apresentação de todas as amostras de treinamento que constituem uma época). As aplicações de redes neurais artificiais podem ser divididas em: Reconhecimento de padrões e Classificação; Agrupamento ou categorização (clustering); Aproximação de funções e modelagem; Previsão; Otimização; Controle. ------------------------------------------------------------------------------------------------------------------------------
  • 7. ALGORITMOS GENÉTICOS (COMPUTAÇÃO EVOLUCIONÁRIA) Introdução: Método fraco de resolução de problemas baseado na evolução natural das espécies. Implementam mecanismos de evolução natural incluindo cruzamento, mutação e aptidão para sobrevivência. Trabalha com populações de indivíduos. Os indivíduos são submetidos a um processo de evolução. Inspirada nos processos subjacentes à evolução: Moldar uma população de indivíduos através da sobrevivência de seus membros mais ajustados. Pressões seletivas não surgem apenas do ambiente externo, mas também de interações entre membros de uma população. Tipos de Algoritmos Evolutivos: Algoritmos genéticos; Sistemas classificadores; Estratégias evolutivas; Programação genética, e Programação evolutiva. Os algoritmos genéticos produzem soluções para problemas com capacidade crescente, operando sobre populações de soluções candidatas para o problema. Componentes de um AG: Um problema a resolver, e ... Técnica de codificação: gene, cromossomo Procedimento de Inicialização: genesis Função de Avaliação: meio ambiente Seleção de pais: reprodução Operadores Genéticos: Mutação e recombinação Ajuste de Parâmetros: prática e arte AGs operam numa população (conjunto) de pontos. Operam num espaço de soluções codificadas. Necessitam somente de informação sobre o valor de uma função objetivo para cada membro da população. Usam transições probabilísticas. Representação Cromossômica: Cada seqüência s corresponde a um cromossomo. Cada elemento de s é equivalente a um gene. Na maior parte dos AGs assume-se que cada indivíduo seja constituído de um único cromossomo. Para cada problema, encontrar uma representação cromossômica conveniente é sempre o primeiro passo. Usa-se um vetor binário para representar cada ponto no espaço de busca. Como há um número infinito de pontos no intervalo de interesse, a dimensão deste vetor ou seqüência binária depende da precisão requerida para o problema. Fluxo básico: Inicializar a população: é gerada aleatoriamente ou através de algum processo heurístico; Avaliação e Adequabilidade: A avaliação de cada indivíduo resulta num valor denominado de fitness(adequabilidade). Quanto maior o fitness, maiores são as chances do indivíduo sobreviver e se reproduzir. Seleção: Emula os processos de reprodução assexuada e seleção natural. Gera-se uma população temporária de N indivíduos extraídos com probabilidade proporcional ao fitness relativo de cada indivíduo na população. Neste processo, indivíduos com baixo fitness terão alta probabilidade de desaparecerem da população (serem extintos).
  • 8. Exemplo: Seleção dos pais: A seleção dos pais é realizada usando-se uma roleta com tamanhos de setores de acordo com os valores obtidos na avaliação dos cromossomos. Condições de Término: Como normalmente estamos tratando de problemas de otimização, o ideal seria que o algoritmo terminasse assim que o ponto ótimo fosse descoberto. Pode haver situações onde todos ou o maior número possível de pontos ótimos sejam desejados. Normalmente usa-se o critério de número máximo de gerações ou um tempo limite de processamento para parar um AG. Outro critério usa a idéia de estagnação, ou, seja, para-se o algoritmo quando não se observa melhoria da população depois de várias gerações. Operadores Genéticos: Recombinação (crossover): É um processo sexuado - ou seja, envolve mais de um indivíduo. Emula o fenômeno de “crossover”, a troca de fragmentos entre pares de cromossomos. Na forma mais simples, é um processo aleatório que ocorre com probabilidade fixa prec que deve ser especificada pelo usuário. O ponto de divisão pode ser ajustado aleatoriamente ou mudado durante o processo de solução. Mutação: O processo de mutação é equivalente à busca aleatória. Seleciona-se uma posição num cromossomo e muda-se o valor do gene correspondente aleatoriamente para um outro alelo possível. O processo é geralmente controlado por um parâmetro fixo pmut que indica a probabilidade de um gene sofrer mutação. Programação Genética: Técnica para geração automática de programas de computador. Criada por John Koza em 1992. Objetivo: Ensinar computadores a se programar, isto é, a partir de especificações de comportamento, o computador deve ser capaz de evoluir um programa que as satisfaça. Representação genotípica: Estrutura em árvore: Conjunto de funções {F} e Conjunto de terminais {T}. Robótica Evolutiva: Surgiu da utilização de técnicas de computação evolutiva para sintetizar automaticamente controladores para robôs. Na RE o comportamento global é constantemente avaliado e modificado por um processo de avaliação automático. A RE pode ser descrita como um processo de evolução e adaptação contínuas de um robô situado em um determinado ambiente. Principais questões abordadas pela RE: Sintetizar automaticamente comportamentos mais complexos do que aqueles que podem ser produzidos manualmente; Explorar amplamente as características do ambiente e dos indivíduos; Produzir o comportamento esperado espeficicando-se o que o robô deve fazer e não como ele deve operar; Mostrar que técnicas evolutivas podem reduzir o esforço humano necessário para produzir um sistema de controle em comparação com métodos manuais de projeto. Abordagens: Evolução em simulação com testes em robôs reais. Evolução em robôs reais. Evolução embarcada