Académique Documents
Professionnel Documents
Culture Documents
Objetivos
Expor ao aluno conceitos bsicos sobre mtodos, tcnicas e ferramentas de Inteligncia Artificial e sua aplicao na rea de Educao
Programa
Introduo O que IA, reas da IA, IA em controle e automao; Representao do conhecimento, tipos de representao, propriedades de uma base de conhecimento, esquemas de representao; Aquisio de conhecimento, fases de familiarizao e conceituao, projeto e implementao, interao com o especialista;
Programa
Sistemas Especialistas, definio, utilizao, sistemas baseados em regras Tpicos suplementares, aprendizado, redes neurais
Bibliografia
Cardozo, E. Inteligncia Artificial. UNICAMP. 1993. Rich, E. e K. Knight. Inteligncia Artificial, Segunda edio, McGraw Hill do Brasil.1993. Winston, P.H.Artificial Intelligence. 3 edio. Addison-Wesley, 1992.
Introduo
Computadores e Educao
A viso da utilizao de computadores na educao tem uma longa histria. As aplicaes educacionais utilizandose desta tecnologia so desenvolvidas desde os anos 60.
Primeiramente o estudante deve compreender a lio dada pelo professor; e Posteriormente responder alguma questo e, com isso, reforar a sua compreenso.
CAI - Condicionamento
Esta abordagem centrada no professor foi fortemente influenciada pela Teoria Comportamentalista de Skinner e tem suas razes na psicologia do condicionamento operante (ou seja, o princpio no qual as mudanas de comportamento - consideradas aqui como sinnimo de ensino - podem ser mais facilmente provocadas atravs de programaes de reforo, isto , compensando o comportamento desejado em dados momentos).
Evoluo da CAI
Existe uma crescente tendncia de incorporar princpios e estratgias cognitivas no processo de desenvolvimento destes sistemas CAI, medida que as perspectivas tericas dos psiclogos educacionais tendem a migrar para a psicologia cognitiva.
CAI + IA = ICAI
Com a evoluo das tcnicas de Inteligncia Artificial (IA) e das pesquisas no campo das cincias cognitivas, aumentou-se o grau de inteligncia dos sistemas educacionais e antigas dificuldades esto sendo aos poucos superadas. Chamados ICAI para inteligente CAI, estes sistemas apresentam uma representao de seu domnio permitindo utilizar seus conhecimentos de maneira no diretamente explicitados pelo projetista.
Motivaes
Uma das principais motivaes para as pesquisas em Inteligncia Artificial na Educao (AI-ED do ingls Artificial Intelligence in Education), o desenvolvimento de ambientes de aprendizagem computacionais onde os estudantes possam ter experincias de aprendizagem individualizadas, isto , experincias que sejam fundamentais e benficas para eles, sem importar suas diferenas individuais, experincias anteriores, ou outras situaes cognitivas.
Instruo personalizada
Assim, pela modelagem do estudante, os sistemas AI-ED, podem personalizar a instruo, compatibilizando a apresentao com o nvel de conhecimento do estudante e com o seu ndice de aprendizagem. A maioria destes sistemas apresenta mtodos educacionais que proporcionam uma forma de descoberta centrada no estudante, e os dilogos tutoriais so basicamente determinados pelo conhecimento conceitual e pelo comportamento de aprendizagem do estudante.
Definio
Convenciona-se chamar IA o estudo de processos cognitivos artificiais, ou seja, que se manifestam em autmatos.
Processos Cognitivos
Muitos processos cognitivos humanos podem ser reproduzidos em computador quando dotamos a mquina de, por exemplo: 1. Capacidade de resoluo de problemas num domnio; 2. Capacidade de aprendizado, ou seja, aprimoramento constante do desempenho em tempo de execuo;
Processos Cognitivos
3. Capacidade de se comunicar em alto nvel, por exemplo, atravs de linguagem natural escrita ou falada; 4. Capacidade de percepo (sentir o meio ao redor) obtida atravs de processamento de dados oriundos de sensores de viso, voz, proximidade etc. 5. Capacidade de simular um ser humano na execuo de determinada tarefa
Comportamento Inteligente
Para fazer com que o computador exiba certo comportamento inteligente, necessrio habilita-lo a processar grandes quantidades de informao relacionadas ao domnio em questo e tambm certos procedimentos (heursticas) se mostram eficazes na maioria dos casos, mas que podem falhar frente a situaes imprevistas.
Conhecimento
So verdades universais e heursticas que implementamos em computador com o objetivo de dota-lo de capacidade de executar esta tarefa.
Resoluo de Problemas
Podemos identificar duas grandes estratgias de resoluo de problemas: 1. Estratgias algortmicas, generalistas, por exemplo, os mtodos numricos, os sistemas de bancos de dados, as planilhas etc. 2. Estratgias baseadas em conhecimento (especialistas) por exemplo, sistemas especialistas, sistemas de reconhecimento de voz, tutores
Exerccios
Represente algoritmicamente a soluo dos seguintes problemas:
1. Sejam 2 vasilhames d gua, um de 4 litros e outro de 3 litros. Nenhum deles possui qualquer marcao de medida. H uma torneira que pode ser utilizada para encher os vasilhames de gua. Como voc poder colocar exatamente 2 litros d gua dentro do vasilhame de 4 litros?
Exerccios
2. Trs missionrios e trs canibais se encontram em um lado do rio. Todos concordam que precisam chegar do outro lado. Mas os missionrios no confiam nos canibais. Assim, os missionrios querem atravessar o rio de modo tal que o nmero de missionrios em qualquer das margens nunca seja inferior ao nmero de canibais que estiver do mesmo lado. O nico barco disponvel s carrega 2 pessoas por vez. Como todos podero chegar ao outro lado, sem que os missionrios arrisquem suas vidas?
Exerccios
Prximo de Hani h um monastrio cujos monges devotam suas vidas a uma tarefa muito importante. Em seu ptio h trs postes altos. Nestes postes h um conjunto de sessenta e quatro discos, cada um deles com um furo no centro e de tamanhos diferentes. Quando o monastrio foi fundado, todos os discos estavam em um dos postes, cada disco repousando sobre o imediatamente maior que ele. A tarefa dos monges deslocar todos os discos para um dos outros postes. Apenas um
Exerccios
nico disco pode ser deslocado de cada vez e todos os demais discos devero estar em um dos postes. Alm disso, em nenhuma ocasio durante o processo de transferncia, um disco maior poder ser colocado em cima de um menor. Pode-se utilizar o terceiro poste como local de repouso temporrio para os discos. Segundo a lenda, o mundo terminar quando eles houverem terminado a tarefa.
reas da IA
IA uma rea fortemente interdisciplinar, exigindo de seus especialistas cera especializao em determinadas reas, tais como: Resoluo de problemas, formulao e aprimoramento de procedimentos gerais de manipulao de conhecimento para problemas no algortmicos
reas da IA
Representao do conhecimento e aprimoramento de formalismos, linguagens e sistemas para a codificao, anlise e manipulao do conhecimento Sistemas Especialistas, simulao em computador dos mecanismos de resoluo de problemas empregados por especialistas humanos num domnio bem especfico
reas da IA
Aprendizado, elaborao de tcnicas que permitem melhorar o desempenho do software em tempo de execuo Percepo artificial, dotar o computador de capacidade sensitiva atravs de viso artificial, processamento de linguagem natural escrita ou falada
reas da IA
Redes neurais, concepo de estruturas computacionais que modelam os neurnios e sinapses do crtex cerebral IA distribuda, estudo da forma de comunicao entre diferentes agentes, em geral, distribudos por um certo n de processadores
Impactos na Utilizao de IA
A medida em que aumenta a utilizao do computador, deparamos com problemas intratveis, aparentemente, se nos limitarmos s tcnicas de resoluo habituais (notadamente algortmicas). Normalmente estes problemas so bem especficos, e por isso, no existe algoritmo de soluo, exemplo: processamento de alarmes diagnose de falhas
Impactos na Utilizao de IA
Nestes casos tcnicas de IA so imprescindveis para a implementao de automatismos avanados, cuja implantao depende da disponibilidade de recursos para o projeto (SW, HW e PW)
IA em Controle de Processos
Vrias tarefas relativas ao controle e automao de processos necessitam procedimentos corretos de soluo devido aos seguintes fatores: 1. Ausncia de modelos simples e precisos para a descrio de sua dinmica ou da inter-relao para a descrio de seus componentes;
IA em Controle de Processos
2. Complexidade do problema; 3. Rudos externos ao processo; 4. Emulao de aes tomadas por operadores experientes; e 5. Adaptao de procedimentos empregados em situaes semelhantes.
Controle Inteligente
uma filosofia de controle de sistemas dinmicos que combina tcnicas tradicionais de controle de processos (identificao, controle avanado etc.) com mtodos baseados no conhecimento atuando num nvel mais elevado, de modo a poder monitorar a prpria estratgia de controle.
rvores x Grafos
A travessia de uma rvore um modo simples de implementar uma estratgia de busca, onde cada n expandido para gerar um conjunto de sucessores, que por sua vez, podem ser expandidos at que uma soluo seja encontrada. Este mtodo pode fazer com que o mesmo n seja gerado vrias vezes em vrios caminhos diferentes.
rvores x Grafos
Grafos direcionados diferem de rvores no sentido de que diversos caminhos podero se reunir em um n. Procedimentos de busca em rvore podem ser convertidos para busca em grafo.
Funes heursticas
A funo heurstica a funo que mapeia as descries do estado do problema para medidas de desejabilidade, normalmente representadas com nmeros. Portanto o valor da funo heurstica num dado n de um processo de busca nos fornece uma estimativa to boa quanto possvel no sentido de se o n est no melhor caminho da soluo.
Funes heursticas
Para que as funes heursticas normalmente precisam estar unidas a algum mtodo heurstico de finalidade especial, apropriado para aquele domnio,estes mtodos so normalmente chamados mtodos fracos, quais sejam: Gerar-e-testar Subida de encosta
Funes heursticas
Busca em amplitude Busca pela melhor escolha Reduo do problema Satisfao de restries A escolha da estratgia correta para um problema em particular depende muito das caractersticas do problema.
Gerar-e-testar
Corresponde a estratgia mais simples de todos os mtodos de busca. Gerar-e-testar um algoritmo de busca em profundidade, j que solues completas devero ser testadas antes de serem testadas. Tambm considerado uma busca exaustiva do espao do problema, caso opere produzindo solues aleatoriamente, no existe garantia de encontrar uma soluo. Nesta forma, tambm conhecido como o algoritmo do Museu Britnico, uma referncia ao fato de que, se um nmero suficiente de macacos forem colocados em frente a um conjunto de mquinas de escrever e deixados sozinhos o tempo suficiente, ento sua implementao neste algoritmo geraria todos os livros contidos no museu.
Gerar-e-testar
- algoritmo
1. Gerar uma soluo possvel. Para alguns problemas, isto significa gerar um ponto em particular no espao do problema. Para outros, significa gerar um caminho a partir de um estado inicial. 2. Testar para ver se ela uma soluo, comparando o ponto escolhido ou o ponto final do caminho escolhido com o conjunto de estados meta aceitveis. 3. Se uma soluo tiver sido encontrada, parar; Caso contrrio, retornar ao passo 1.
Subida de encosta
Subida de encosta uma variao do gerar-e-testar em que a retroalimentao do procedimento de teste utilizada para ajudar o gerador a decidir em que direo se deslocar no espao de busca. Num procedimento de gerar-e-testar, a funo de teste responde apenas com um sim ou no. Se a funo de teste for ampliada com uma funo heurstica que fornea uma estimativa do quo prximo um dado estado est de um estado meta, o procedimento de gerar pode explor-lo ampliando sua eficincia.
Busca em amplitude
Tanto gerar-e-testar quanto a subida de encosta so procedimentos de busca em profundidade. Estes so muitas vezes fceis de implementar e podero atingir uma boa soluo rapidamente. Entretanto gastam muito tempo explorando caminhos inteis. A busca em amplitude uma alternativa mais simples, onde todos os ns de um nvel da rvore so examinados antes dos ns seguintes. Este procedimento garante encontrar uma soluo, desde que haja um nmero finito de ramos da rvore.
Busca em amplitude
- algoritmo
1. Forme uma fila de um elemento consistindo do n raiz. 2. At que a fila esteja vazia ou que o destino tenha sido alcanado, determine se o primeiro elemento da fila o n destino. 2.1. Se o primeiro elemento o n destino, no faa nada. 2.2. Seno, remova o primeiro elemento da fila, coloque os filhos do primeiro elemento, se existentes, no fim da fila. 3. Se o n destino tiver sido encontrado, proclame sucesso; caso contrrio anote fracasso.
2.2.3. Acrescente as novas vias fila. 2.3.4. Ordene a fila pela soma de custos acumulados at este ponto, com as vias de menor custo na frente. 2.3.5. Se duas ou mais vias alcanarem um n comum, apague todas as vias, exceto a que alcana o n comum com o custo mnimo 3. Se o n destino foi achado, proclame sucesso; seno proclame fracasso.
Reduo do problema
As estratgias de busca vistas at o momento utilizam grafos OU, para encontrar um nico caminho para uma meta. Outro tipo de estrutura, o grafo E-OU, til para soluo de problemas resolvveis pela decomposio do problema em problemas menores, esta decomposio gera arcos (arcos E) que pode apontar para qualquer nmero de ns sucessores, devendo ser todos resolvidos para que o arco aponte para uma soluo. Neste caso utiliza-se o algoritmo AO*, semelhante ao A*.
Satisfao de restries
Em IA muitos mtodos podem ser vistos como satisfao de restries, em que a meta descobrir algum estado de problema que satisfaa um dado conjunto de restries, por exemplo, quebra-cabeas de criptografia. Entretanto, a estrutura desses problemas requer o aumento da descrio do estado de problema, a partir de uma lista de restries que se modifica medida que peas sejam resolvidas e a ampliao do mecanismo de busca para manipular essa lista.
Representao do Conhecimento
Representao do Conhecimento
A representao do conhecimento em computador primordial para o desenvolvimento de programas que empregam tcnicas de IA. Considerando o estado da arte atual, as quantidades de conhecimento que conseguimos manipular em computador fica muito aqum daquela que o ser humano utiliza em seu cotidiano.
Representao do Conhecimento
Portanto a aplicao de tcnicas de IA demanda uma anlise criteriosa do esforo computacional requerido.
Conceitos Bsicos
Base de Conhecimento repositrio de procedimentos, heursticas, dados etc. que compe o conhecimento; Necessita de manuteno constante (atualizaes, inseres, delees etc.) para manter-se eficaz:
Conceitos Bsicos
Mquina de Inferncia a parte da base de conhecimento que abriga os mecanismos (algoritmos e heursticas) que processam a inferncia (processo pelo qual deduzimos novas informaes a partir das existentes na base de conhecimento)
Conceitos Bsicos
Engenheiro do Conhecimento o profissional de cincia da computao responsvel pela implantao da base de conhecimento Especialista do Domnio um profissional altamente capacitado para o qual est-se desenvolvendo a aplicao
Estrutura Geral
Base de Conhecimento
Fatos
SE ENTO
Prolog
Prolog
uma linguagem de computao inventada em 1970 por Alain Colmerauer e seus colegas da Universit de Marseille, significa PROgramming LOGig (lgica programada) No havia muito interesse em Prolog at o momento em que os cientistas de computao japoneses lanaram seu projeto de quinta gerao, coma finalidade de desenvolver novos computadores com software que reinaria supremo na dcada de 90 e alm.
Lgica
Prolog depende de manipulao lgica e no a nica! Linguagens que operam com lgica de proposio (ou lgica de predicados ou clculo proposicional), por exemplo: As seguintes declaraes so fatos: Pessoas com tnis para futebol jogam futebol. A pessoa #1 tem tnis para futebol. O que pode ser deduzido, determinado, calculado, computado e determinado desses fatos que a pessoa #1 joga futebol.
Prolog faz com que o computador cuide da parte dedutiva, visto que possui uma mquina de deduo interna que automaticamente percorre os fatos e constri ou testa concluses lgicas. O exemplo anterior parece trivial, mas se tivssemos um banco de dados tcnico, carregado com milhares de fatos e regras, no seria prtico passar esta lista para uma pessoa e solicitar uma resposta rpida.
Resoluo e unificao
Resoluo uma regra de deduo - permite ao computador dizer que proposies seguem de uma forma lgica de outras proposies. O software que emprega o princpio da resoluo opera com clusulas lgicas. Unificao o ato de combinar os lados direito e esquerdo das clusulas de uma forma lgica pela investigao dos valores variveis que permitem uma concordncia adequada, as bases tericas do Prolog esto descritas em Programing in Prolog, de W.F.Clocksin e C.S.Melish.
Objetos e relacionamentos
Prolog cuida de objetos e do relacionamento entre eles, sendo inclusive chamada de linguagem orientada a objetos. Um objeto no ser necessariamente algo tangvel, pode ser qualquer coisa que possamos representar simbolicamente no computador, exemplos de objetos e relacionamentos: Objetos Relacionamentos vaca animal bananeira vegetal ibmpc computador basalto mineral alface vegetal
Fatos
A primeira maneira de combinar um objeto e um relacionamento utilizando-os para definir um fato, a forma geral de definio de fatos em Prolog : relao (objeto) exemplo: mamfero(morcego) mineral(ferro) _um_vegetal(bananeira)
Prolog
Prolog
uma linguagem de computao inventada em 1970 por Alain Colmerauer e seus colegas da Universit de Marseille, significa PROgramming LOGig (lgica programada) No havia muito interesse em Prolog at o momento em que os cientistas de computao japoneses lanaram seu projeto de quinta gerao, coma finalidade de desenvolver novos computadores com software que reinaria supremo na dcada de 90 e alm.
Lgica
Prolog depende de manipulao lgica e no a nica! Linguagens que operam com lgica de proposio (ou lgica de predicados ou clculo proposicional), por exemplo: As seguintes declaraes so fatos: Pessoas com tnis para futebol jogam futebol. A pessoa #1 tem tnis para futebol. O que pode ser deduzido, determinado, calculado, computado e determinado desses fatos que a pessoa #1 joga futebol.
Prolog e a deduo
Prolog faz com que o computador cuide da parte dedutiva, visto que possui uma mquina de deduo interna que automaticamente percorre os fatos e constri ou testa concluses lgicas. O exemplo anterior parece trivial, mas se tivssemos um banco de dados tcnico, carregado com milhares de fatos e regras, no seria prtico passar esta lista para uma pessoa e solicitar uma resposta rpida.
Resoluo e unificao
Resoluo uma regra de deduo - permite ao computador dizer que proposies seguem de uma forma lgica de outras proposies. O software que emprega o princpio da resoluo opera com clusulas lgicas. Unificao o ato de combinar os lados direito e esquerdo das clusulas de uma forma lgica pela investigao dos valores variveis que permitem uma concordncia adequada, as bases tericas do Prolog esto descritas em Programing in Prolog, de W.F.Clocksin e C.S.Melish.
Objetos e relacionamentos
Prolog cuida de objetos e do relacionamento entre eles, sendo inclusive chamada de linguagem orientada a objetos. Um objeto no ser necessariamente algo tangvel, pode ser qualquer coisa que possamos representar simbolicamente no computador, exemplos de objetos e relacionamentos: Objetos Relacionamentos vaca animal bananeira vegetal ibmpc computador basalto mineral alface vegetal
Fatos
A primeira maneira de combinar um objeto e um relacionamento utilizando-os para definir um fato, a forma geral de definio de fatos em Prolog : relao (objeto) exemplo: mamfero(morcego) mineral(ferro) _um_vegetal(bananeira)
Partes de um programa
A maioria dos programas Turbo Prolog ser organizada em quatro partes principais: 1. Clusulas: os fatos que voc constri a partir de seus objetivos e relacionamentos; 2. Predicados: so os relacionamentos; 3. Domnios: informa os tipos (como no Pascal) de coisa um argumento pode ser; e 4. Meta: informa o que se quer descobrir ou o que queremos que o computador faa com as informaes fornecidas nas trs sees anteriores.
Gravando e compilando
Utilize o menu para gravar o programa, teclar F e depois write to: EX1.pro para guarda-lo num local apropriado. Tecle C para compilar e, caso no encontre nenhum erro, tecle R para rodar o programa. Na janela Dialog aparecer a palavra Goal:_ Ento voc poder fazer uma pergunta ao Turbo Prolog, por exemplo: Um morcego um animal? , utilizando o comando: animal(morcego) e ver a resposta Yes .
Variveis
Caso conhea o relacionamento mas no o objeto, pode-se utilizar variveis. Qualquer palavra-objeto que inicie com letra maiscula considerada, uma varivel. A maneira mais rpida de ver o que uma varivel pode fazer interrogando o programa. Tente animal(X) como uma meta, e veja o resultado. Turbo Prolog toma a meta com a varivel e a compara s clusulas. Primeiro verifica se o predicado o mesmo da primeira clusula. Se , ento testa para ver se a meta e o predicado tm o mesmo nmero de argumentos.
ve(claudia,_)
e que significaria, verificar se claudia ve algum. Nesse caso Prolog apenas procura um fato que tem o predicado ve , dois argumentos ( claudia como primeiro e qualquer coisa como segundo argumento) e s devolver yes pois ele no precisa saber mais, caso tente a meta:
ve(_,_)
Aridade
o nmero de argumentos que aquele predicado tem, exemplo:
21/08
O operador - not
Utilizado para garantir a no existncia de uma clusula, por exemplo: acrescentar ao programa a regra:
depois a clausula:
Regras
Na seo clauses tambm pode-se colocar regras. Uma regra tpica diz que alguma coisa verdadeira (uma meta ser bem sucedida) se algumas outras coisas so verdadeiras. Pode-se utilizar tanto o operador if quanto o sinal :- para representar uma regra, exemplo:
feliz(paulo) if ve(paula,paulo) que significa: Paulo est feliz se ele estiver sendo observado por Paula triste(Alguem) :- ve(tiago,Alguem) que significa: Alguem est triste se estiver sendo observado por Tiago
Exemplo de regra
Retrocesso (backtraking)
Sempre que uma submeta tem de ser satisfeita, Prolog retrocede pelo banco de dados, sempre procurando de cima para baixo e da esquerda para a direita, para encontrar uma concordncia. O retrocesso poder, facilmente, ficar complexo quando as regras e as metas forem complexas. A partir do goal:feliz(paulo) , Prolog sai procurando pelos fatos e encontra o fato ve(paula,paulo). Aplica a submeta quele fato e volta regra feliz(paulo) if ve(paula,paulo) , onde sabe que o lado esquerdo da regra, feliz paulo , pode ser utilizado para concordar com a meta original, porque o lado direito da regra era yes (verdadeiro).
Instanciamento e ligao
Ao tentar a meta: feliz(Quem) obteremos a resposta paulo depois de uma pesquisa muito parecida. A nica diferena que a varivel Quem tem de sofrer instanciamento para paulo . Prolog vai encontrar o predicado feliz , verificar a aridade, fazer o instanciamento da varivel Quem constante paulo , recolocar a meta do lado direito da regra, combinar a nova meta e voltar regra. Depois vai colocar o lado esquerdo da regra em yes , aplicar o lado esquerdo meta, informar que a meta foi bem sucedida, e mostrar o valor ligado da varivel.
Exemplo de instanciamento
Acompanhamento - tracing
Pode-se acompanhar o progresso passo a passo de um programa, utilizando o comando trace acima da linha domains A seguir disparar o programa com alt + r Tentar a meta feliz(Quem) Continuar a execuo pressionando a tecla F10
Exemplo de tracing
Entrada de dados
O Turbo Prolog fornece ao programador os seguintes predicados para a entrada e sada de dados: WRITE: usado para escrever uma mensagem no dispositivo padro de sada, geralmente a janela de dilogo. O argumento do write pode ser tanto uma varivel como um objeto (smbolo, inteiro, string, etc.). Exemplo:
Sada de dados
READLN: usado para ler uma string ou um smbolo do dispositivo padro de entrada e guard-lo em uma varivel. O Turbo Prolog possui vrios predicados de leitura, um para cada tipo de objeto a ser lido os mais usados so: READINT: para a leitura de um nmero inteiro. READCHAR: para a leitura de um caracter. READREAL: le de um nmero em ponto flutuante. Exemplo:
Exemplo
Grficos
Prolog possui dois mtodos para manipulao de grficos: Predicados de ponto e linha, que permitem traar linhas e pontos em qualquer uma das cores oferecidas pelo PC; Grficos da tartaruga, que permite utilizar predicados que movimentam uma tartaruga imaginria na tela.
Modos grficos
Modos grficos
Exemplo
Grficos tartaruga
A idia de uma tartaruga para a gerao de grficos representa os fundamentos da linguagem de computao Logo e foi adotada por vrias outras linguagens. A tartaruga um rob imaginrio para traados na tela. Ele pega suas instrues do programa na forma de predicados. Os predicados lhe informam se deve se movimentar para frente (forward) ou para trs (back), virar esquerda (left) ou direita (right), pressionar uma pena contra a tela (pendown) (como se a tela fosse papel de desenho) ou levantar a pena (penup), e finalmente, escolhe a cor da pena a utilizar (pencolor).
Exemplo - tartaruga
Sons
Existem 2 predicados:
beep, emite um rpido parecido com o som de tecla errada sound(durao,frequencia), permite tocar notas musicais. Durao e frequncia so nmeros inteiros, sendo que durao dado em centsimos de segundo e frequencia interpretado como Hz (ciclos por segundo) podendo ir de 41 at 17500 Hz.
Exemplo
Janelas
Turbo Prolog contm predicados que permitem ao usurio formar suas prprias janelas para entrada e sada de programas. Predicados da janela padro: makewindow(WindowNo,ScrAtt,FrameAtt,Header,Row,Col ,Height,Width), onde:
WindowNo: int, nmero de identificao da janela; ScrAtt: int, determina o tipo de janela (em termos de cores); FrameAtt: int, determina a existncia e estilo para a moldura da janela; Header: string, nome dajanela; Row: int,0 a 25, nmero de linha da janela; Col: int, 0 a 80, nmero de coluna da janela; Height: int, nmero de linhas da janela; e Width: int, nmero de colunas da janela.
Janelas - atributos
window_attr(Attr): altera o estilo da tela ou a cor da janela aberta, sem retroceder ao predicado makewindow; removewindow: remove a janela ativa da tela; shiftwindow(WindowNo): permite trocar entre mltiplas janelas que podem estar na tela; e clearwindow: retira todos os caracteres da janela.
Cursores - atributos
cursor(row,Column): determina as posies atuais do cursor na janela ativa ou na tela; cursorform(Starline,Endline): na rea de um caractere, se estabelce a posio do cursor X-Y; Cada caractere ocupa 14 linhas de varredura da tela ento Starline e Endline devem estar ligados a valores enre 1 e 14 (inclusive); window_str(ScreenString): escreve o valor de ScreenString na janela ativa
Exemplo
Lisp - Introduo
A linguagem Lisp j existe h mais de 30 anos, seu principal uso tem sido para escrever programas na res de IA. Os crticos de Lisp tambm a denominam Lista Interminvel de eStpidos Parnteses.
Tipos de Dados
Em Lisp existem somente dois blocos constituintes: tomo: que possui ainda dois tipos: numrico e no numrico; e Lista, ou par interno.
tomo
Numrico: que corresponde ao valor numrico em Pascal e um nmero qualquer, por exemplo: 15 666 +3.2 No numrico: correspondem s variveis em Pascal, para reconhecer um tomo no numrico basta utilizar a regra:
Exemplos: istoeumatomo, istoeumatomotambem tomo isto e um atomo p 1 atomo isto e um atomo p 4 atomos +22opa p +22 tomo numrico
p1
Resumo
Um nmero deve comear com um algarismo (ou sinal seguido de algarismo), sendo usualmente terminado por espao ou um parntese. Um tomo no numrico pode comear com um no algarismo (letra) podendo ser seguindo de letras ou nmeros.
Lista
Tambm chamada par interno simplesmente um parntese esquerdo, uma sequncia de tomos ou de outras listas e um parntese direito, exemplo: (+15 A -3) uma lista composta por 3 tomos: o nmero 15, o tomo A e o nmero negativo -3. parecido com o array de 3 elementos do Pascal, sendo que este no necessitamos declarar explicitamente e o contedo dos seus elementos pode ser diferente, exemplos: (+15 (A) -3) nesta lista: 15 o primeiro elemento -3 o ltimo elemento (A) outra lista
Funes bsicas
CAR
uma funo do Lisp, que retorna o primeiro elemento de uma lista, exemplo: Seja (+15 A -3) ento (CAR (+15 A -3)) devolve: +15 (CAR ((A) 5 D)) p (A) (CAR ((A (B (C)) (D) 5)) p (A B(C))
Funes bsicas
CDR
uma funo do Lisp que devolve o corpo da lista menos seu primeiro elemento, exemplo: (CDR (5 (B) C)) p ((B) C) (CDR ((A) 5 D)) p (5 D) (CDR (((A B (C)) (D) %)) p ((D) 5)
Nem CDR nem CAR destroem ou alteram nada nas listas as quais forem aplicadas.
Funes bsicas
CONS
uma abreviao de CONStruo, e usada para construir pares internos como elementos de listas (e, portanto, construir listas), exemplo: (CONS A NIL) o que mostra na tela a lista (A) (CONS B (A)) p (B A) (CONS B (CONS A NIL) p (B A)
Estruturas complexas
Vetores
Representar o vetor: ( 1 2 3 4 5 ) p (CONS (1 2 3 4 5) NIL) pedindo (CAR (1 2 3 4 5) p 1 como conseguir o primeiro elemento? pedir (CAR (CDR (1 2 3 4 5) ) ) p 2 e o terceiro? Pedir (CAR (CDR (CDR (1 2 3 4 5) ) ) ) p 3
Estruturas complexas
1 2 3 4 A= 5 6 7 8 9 10 11 12 Solicitando: (CAR ((1 2 3 4) (5 6 7 8) (9 10 11 12)) NIL) vem (1 2 3 4) (5 6 7 8) (9 10 11 12) Para saber a11: (CAR (CAR ((1 2 3 4) (5 6 7 8) (9 10 11 12)) )) p 1 Para saber a12: (CAR (CDR (CAR ((1 2 3 4) (5 6 7 8) (9 10 11 12)) ) p 2 Para saber a21: (CAR (CAR (CDR ((1 2 3 4) (5 6 7 8) (9 10 11 12)) ) p 5
Matrizes
Estruturas complexas
Registros
Seja: (CONS (ALEX 18 4 59) NIL) Para a impresso do nome: (CAR (ALEX(18 4 59))) p ALEX Para imprimir a data completa: (CAR (CDR (ALEX (18 4 59) )) ) p 18 4 59 e o ms? e o ano?
Variveis
Lisp usa a notao polonesa ou do tipo prefixo, onde a operao a ser executada colocada antes de seus operandos, exemplo: (= X 1) SQR(5) (* 3 (SQR 9))
Operadores
Pode ser que o exemplo anterior no funcione pois nem sempre Lisp utiliza * , + , - , / e = para as operaes normais e sim TIMES, PLUS, DIFFERENCE, QUOTIENT E SETQ, exemplos: (* 3 5) ou (TIMES 3 5) (+ 2 3) ou (PLUS 2 3) (- 2 3 4) ou (DIFFERENCE 2 3 4) resposta -1 (talvez!) Para fazer: x = 1 p (SETQ X 1) X = 3 * (5 + 6) p (SETQ X (TIMES 3 (PLUS 5 6) )) Y = X - 5 p (SETQ Y (DIFFERENCE X 5))
Entrada e sada
Entrada de dados: Em Pascal read (A,B); em Lisp (PLUS (READ) (READ)) write(A+B); Sada de dados: Em Pascal X:= 33; em Lisp (SETQ X 33) write (X); (PRINT X) Exerccio: Testar o comando: (PLUS (PRINT(READ)) (PRINT (READ)) )
Programas
Um programa em Lisp, consiste em uma ou mais funes, chamadas em sequencia. Assim como o Pascal, o Lisp aguarda uma srie de declaraes definindo uma funo, entretanto diferentes verses de Lisp possuem mtodos diferentes de definir as funes.
Funes e parmetros
Em Lisp definir uma funo significa estabelecer 3 coisas:
o nome da funo; os parmetros; e um conjunto de instrues que so executadas quando a funo chamada.
Algumas verses de Lisp utilizam para definir uma funo a palavra reservada DEFUN, outras verses DEF ou ainda DE.
(times x (plus y 3 )) )
Exemplo
Pascal Function F44: integer; var i,j: integer; begin read (i,j); write (j-i); F44:= j-i; end;
Lisp (DEFUN F44 ((i) (j)) (setq i (read)) (setq j (read)) (print (difference j i )) )
Exemplo
Outra forma de declarar variveis locais (adotada por Supersoft Lisp): o operador prog define as variveis locais e sua forma geral : (prog <lista de variveis locais> <s1> <s2> ...<sn>) onde si so declaraes executadas em sequencia.
(DEFUN F45 NIL (prog (I J) (setq I (read)) (setq J (read)) (print (difference J I)) ) )
5. Seleciona o ano?
O comando list
List s vezes mais conveniente que cons para construir listas, por exemplo: (DEFUN novoreg (nome dia mes ano) (list nome (list dia mes ano)) ) assim fazendo: (setq rec1 (novoreg Smith 6 8 79)) temos: (Smith (6 8 79)) e para imprimir o ms: (ms rec1)
Estruturas de comparao
(defun Menor nil (setq x (read)) (setq y (read)) (cond ( (< x y) (print "o primeiro e menor") ) (T (print "o segundo e menor") ) ) ) Essa funo verifica qual o menor de dois nmeros digitados pelo teclado imprimindo na tela qual o menor digitado
Criando um menu
(defun menu nil (print "1.Soma") (print "2.Subtracao") (print "3.Multiplicacao") (print "4.Divisao") (print "Escolha sua opo ") (setq op (read)) (cond ( (= op 1) (print "Soma de dois numeros") ) ) (cond ( (= op 2) (print "Subtracao de dois numeros") )) )
Sistemas Especialistas
Sistemas Especialistas
Sistemas especialistas, uma aplicao da inteligncia artificial, so programas de computador planejados para adquirir e disponibilizar o conhecimento operacional de um especialista humano. So tradicionalmente vistos como sistemas de suporte deciso, pois so capazes de tomar decises como especialistas em diversas reas.
A Base de Conhecimento
A marca principal de um sistema especialista o uso do conhecimento especfico de seu domnio de aplicao atravs de um programa de raciocnio relativamente simples. Neste sentido utiliza-se o termo base de conhecimento para representar a coleo de conhecimento do domnio, ou seja, as informaes do especialista, necessrias para resolver problemas de
A Base de Conhecimento
Portanto, este conhecimento precisa ser organizado de uma maneira adequada para que a mquina de inferncia consiga trata-lo convenientemente.
Fatos e Heursticas
O conhecimento em um sistema especialista consiste de fatos e heursticas. Os fatos constituem as informaes que estaro sempre disponveis para serem compartilhadas e atualizadas pelo especialista do domnio.
Fatos e Heursticas
As heursticas so regras prticas que caracterizam o nvel de tomada de deciso do especialista em um domnio. Portanto, uma base de conhecimento pode ser vista como um conjunto de regras, cada qual podendo ser validada independentemente de estrutura de controle.
Problemas
Um dos problemas mais srios, e ao mesmo tempo muito comum, encontrado na implementao de sistemas especialistas, que usualmente parece impossvel fornecer um conhecimento completo sobre o qual o sistema vai operar. Portanto , o nvel de desempenho de um sistema especialista est relacionado ao tamanho e a qualidade de sua base de
A Mquina de Inferncia
Tenta imitar os tipos de pensamento que o especialista humano emprega quando resolve um problema, ou seja, ele pode comear com uma concluso e procurar uma evidncia que a comprove, ou p ode iniciar com uma evidncia para chegar a uma concluso. Em sistemas especialistas, estes dois mtodos so chamados de backward chaining e forward chaining respectivamente.
A Mquina de Inferncia
Nem todos os sistemas utilizam a mesma abordagem para a representao do seu conhecimento, portanto, a mquina de inferncia deve ser projetada para trabalhar com a representao de conhecimento especfica utilizada.
Consideraes Sobre SE
Nos tempos atuais, as organizaes tm no conhecimento acumulado de seu quadro de pessoal, um patrimnio muito importante para seus empreendimentos futuros e para sua prpria sobrevivncia face s constantes concorrncias de mercado. Processos como downsizing , reengenharia e aposentadorias prematuras tm sido utilizados constantemente pelas grandes instituies, comprometendo a memria institucional da empresa
Evaso de pessoal
Funcionrios experientes aposentam-se ou deixam as organizaes, resultando em uma perda incalculvel. O conhecimento de vrios anos de experincia e treinamentos destes indivduos sero perdidos, a menos que haja uma maneira de captar e preservar estas experincias dentro da empresa.
Evaso de pessoal
A tecnologia dos sistemas especialistas ideal para atingir estes propsitos. Os processos e experincias funcionais da organizao podem ser documentados atravs do uso de sistemas especialistas. A tecnologia do conhecimento poder ser utilizada para capitalizar o conhecimento como um produto estratgico para as corporaes.
Desenvolvendo um SE
Utilizao da linguagem OPS5
Passo 2 - Contextualizar
Sero definidos 3 contextos de funcionamento do Sistema Especialista: 1. Hibernao, onde so avaliadas as condies de energia para a operao da cafeteira; 2. Pr-Preparo, onde usurio informa a quantidade de caf desejado e avaliada se a cafeteira possui ingredientes em quantidade suficiente; e
Passo 2 - Contextualizar
3. Preparo, onde a cafeteira efetivamente produz o caf e o fornece ao usurio.
Passo 7 - Implantao
Entregar para o usurio realizar testes beta Acompanhar os testes FIM!
Ciclo de execuo
A caracterstica mais importante da linguagem OPS5 a eficincia de execuo, conseguida atravs do uso do algoritmo Rete (Forgy 1983). A cada ciclo, os dados armazenados que compem a memria de trabalho so alterados muito pouco. O algoritmo Rete deriva sua eficincia por no casar todos os dados a cada ciclo (s os elementos alterados so recomputados) e por compartilhar testes iguais mesmo entre regras diferentes.
Resoluo de conflito
Um conjunto de regras para a ordenao do conjunto de conflito chamado de estratgia de resoluo de conflito. OPS5 prov duas regras: a LEX e a MEA. Alem disto, uma instncia que disparou num ciclo retirada do conjunto de conflito para que no dispare de novo. Este mecanismo chamado de refrao. Os princpios gerais destas estratgias so: 1. As estratgias do preferncia a dados mais recentemente introduzidos ou modificados, ou seja, com marcas-de-tempo maiores. 2. Se duas instncias tm os mesmos elementos, dada preferncia produo com mais testes, isto , produo mais especfica.
Estratgia LEX
A regra LEX ordena as instncias de acordo com os critrios seguintes: 1. Entre duas regras, dada preferncia quela que tenha elemento mais recente; 2. Se houver empate no dado mais recente, examina-se o dado seguinte quanto antiguidade, dando preferncia ao mais recente; 3. Aps o critrio (2), a preferncia decidida pelo nmero de testes necessrios para casar uma regra, contadas em todas as condies: a regra com mais testes preferida. 4. Se o empate continuar, uma instncia qualquer escolhida.
Estratgia MEA
A regra MEA ordena as instncias de acordo com os critrios seguintes: 1. Entre duas regras, dada preferncia quela que tenha elemento que casa a primeira condio mais recente; 2. Se houver empate no dado mais recente, examina-se os elementos que casam as demais condio; d-se preferncia instncia que possuir um dado mais recente. 3. Se persistir empate no dado mais recente, examina-se o dado seguinte quanto antiguidade, dando preferncia ao mais recente. 4. Aps o critrio (3), a preferncia decidida pelo nmero de testes necessrios para casar uma regra, contadas em todas as condies: a regra com mais testes preferida. 5. Se o empate continuar, uma instncia qualquer escolhida.
OPS5
Arquivo de inicializao
A ferramenta OPS5 fornece vrios modos de utilizao, que devem ser utilizados de acordo com a necessidade do projeto, por exemplo: 1. Interpretador de comandos, utilizado durante o aprendizado da ferramenta e tambm na fase de testes de regras. 2. Linha de comando, utilizado durante a fase de desenvolvimento e implantao do sistema especialista. 3. Arquivo de inicializao, utilizado na fase de implantao do sistema e entrega do produto. 4. Embarcado dentro de um aplicativo em linguagem C++, utilizado na fase de implantao do sistema e entrega do produto.
Modos de execuo
1. Interpretador de comandos, nesse caso usamos os comandos do OPS5 interativamente a partir do prompt de comando da ferramenta: ops5: (load teste.ops) os comandos so executados linha a linha pelo projetista. 2. Linha de comando, neste modo executamos o OPS5 a partir da tela do sistema operacional, a partir do comando: ops5 teste.ops sendo que todos os comandos necessrios para o funcionamento da mquina de inferncia devero estar colocados no arquivo teste.ops logo apos a descrio de todas as regras da base de conhecimento. Nesse caso os comandos para a maquina de inferencia sero executados um a um at o seu trmino
Modos de execuo
3. Arquivo de inicializao, muitas vezes interessante que o usurio a quem se destina uma dada aplicao no interaja diretamente com o interpretador OPS5. Por exemplo, para se executar um programa preciso carreg-lo, fornecer dados iniciais para a memria de trabalho e executar o comando run. Para deixar o interpretador, preciso, tambm, fornecer o comando exit. Para que estas aes sejam feitas automaticamente, estes comandos podem ser colocados num arquivo especial e chamado na linha de comando que ativa o interpretador. Por exemplo, se a linha de comando for: ops5 teste.ini
Modos de execuo
e se nesse caso teste.ini contiver os comandos: (strategy mea) (load teste.ops) (make testcase ^type general ^name start) (run) (exit) ento a estratgia trocada para mea, o programa ( teste.ops ) carregado, um elemento de memria criado, o programa executado e deixado o interpretador sem que o programador precise interagir com o OPS5. 4. Embarcado, esse modo no ser estudado nesse curso, maiores informaes podem ser obtidas no manual da ferramenta.
Integrando com VB
Para fazer o OPS5 funcionar em conjunto com o MSVisualBasic, utilizamos Trs artifcios: 1. Utilizamos a interface grfica para criar um arquivo de inicializao do OPS5, por exemplo, o arquivo teste.in, contendo todos os comandos necessrios para a execuo dos comandos da mquina de inferncia, como representado a seguir: 'Escreve os dados no arquivo Call mTxtStream.WriteLine("(load c:\vbops5\selec.ops)") Call mTxtStream.WriteLine("(strategy lex)") Call mTxtStream.WriteLine("(make ingrediente ^nome " & Nome.Text & " ^nivel " & nivel.Text & ")") Call mTxtStream.WriteLine("(run)") Call mTxtStream.WriteLine("(exit)")
Integrando com VB
2. Utilizamos um arquivo em lotes, por exemplo, teste.bat contendo comandos para garantir a execuo do arquivo de inicializao do OPS5, ou seja, o comando: ops5 teste.ini 3. Utilizamos o comando Shell de execuo de programas externos do MSVisual Basic, como apresentado a seguir: 'Executa o programa DOS Shell ("c:\vbops5\selec.bat") Para que o comando Shell funcione corretamente preciso: 1. Escolher a opo Project da barra de menu 2. Marcar a checkbox Microsoft scripting runtime na janela References
Tema 1 Uma grande rede de supermercados deseja automatizar o processo de ensacar as compras dos clientes, para tanto deseja desenvolver um SE, que dever seguir os seguintes passos: 1. Verifique o que o fregus selecionou, dando uma olhadela nas mercadorias para ver se alguma coisa pode estar faltando, tendo em vista sugerir acrscimos ao fregs; 2. Ensaque os itens grandes, com especial ateno ao colocar os volumes grandes primeiro; 3. Ensaque os itens mdios, tomando o cuidado de colocar os congelados em sacos anti-descongelantes; e 4. Ensaque os itens pequenos por ltimo, colocando-os em qualquer lugar onde haja espao.
Exemplo de regra
Passo: Verificar a nota Saco 1: No ensacado: Po, suco de frutas, massa, sorvete, batata frita Informaes acerca do tamanho e outras propriedades dos vrios itens:
Item Tipo de embalagem Po Saco plstico Suco de frutas Vidro Massa Caixa de papelo Sorvete Caixa de papelo Refrigerante Garrafa Batata frita Saco plstico Tamanho mdio pequeno grande Mdio Grande Mdio Congelado no no no sim no no
Tema 2 Uma empresa deseja desenvolver um SE para configurar computadores e com ele ajudar seus clientes na escolha da melhor configurao. Quando uma empresa compra um computador, ela compra uma UCP, memria, terminal de vdeo, unidades de disco, unidades de fita, vrios controladores perifricos etc. de acordo com a utilizao futura do computador (provedor web, servidor de rede local, servidor de banco de dados, estao de trabalho CAD, estao de trabalho para clculos matemticos. Para tanto o SE dever seguir os seguintes passos: 1. Verifique o tipo de tarefa para o computador 2. Escolha o tipo de microprocessador 3. Especifique a placa me e os componentes de memria de massa e voltil 4. Especifique os perifricos necessrios 5. Monte os componentes 6. Teste o computador e verifique a comunicao com os perifricos
Tema 3Um zoolgico, ao invs de utilizar de placas em frente as jaulas, deseja desenvolver um SE especialista para, a partir de respostas dos visitantes ajuda-los a identificar os animais. Para tanto dever efetuar perguntas com respeito a aparncia dos animais e inferir caractersticas especficas para cada um, por exemplo: regra ID1 Se o animal tem plos ID2 Se o animal tem penas Ento um mamfero Ento um pssaro ID3 Se o animal mamfero ID3 Se o animal tem escamas tem caninos vive rastejando tem garras Ento uma serpente olha para frente Ento carnvoro
Tema 4 Um clube de futebol deseja desenvolver um SE de modo a inovar no processo de seleo dos futuros jogadores. Este SE dever selecionar os candidatos para cada posio de acordo com sua aptido fsica e mental, os seguintes itens devero ser avaliandos: 1. Altura e peso do candidato 2. Sade fsica do candidato 3. Habilidade com a bola dos ps 4. Habilidade com a bola nas mos 5. Mdia geral das notas escolares
Tema 5Uma grande montadora deseja desenvolver um SE para analisar os defeitos em seus veculos e informar aos proprietrios, para tanto sero avaliados: 1. Temperatura da gua 2. Nvel de leo do motor 3. Nvel de leo do cmbio 4. Nvel do tanque de combustvel 5. Percentual de carga da bateria 6. Presso de calibragem dos pneus 7. Fluxo de combustvel para o motor 8. Presso dos amortecedores 9. Carga do alternador
Tema 6 Uma empresa de segurana deseja desenvolver um SE para embarcar no sistema de monitorao ambiental que ela produz, para tanto o sero monitorados os seguintes itens: 1. Temperatura ambiente 2. Abertura/fechamento de janelas 3. Abertura/fechamento de portas 4. Ocorrncia de fumaa no ambiente 5. Humidade do ar no ambiente 6. Ocorrncia de vibraes no ambiente 7. Sensores de movimento
-- XOR utilizando rede Neural To handle buttonUp -- Argumentos : -- ReLV : valor entrada 1 -- DTp : valor entrada 2 -- Retorno : valor XOR de saida system Yin1,Yin2 system Xout1, Xout2, Xout3, Xout4, Xout5, Xout6, Xout7, Xout8, Xout9, Xout10 system Xsum1, Xsum2, Xsum3, Xsum4, Xsum5, Xsum6, Xsum7, Xsum8, Xsum9, Xsum10 system Yout -- recebe o valor da entrada da rede get the text of field X1 of this page put it into Yin1 get the text of field X2 of this page put it into Yin2 Xout1 = Yin1 Xout2 = Yin2 -! Generating code for PE 0 in layer 1 */ Xsum0 = (4.681568) + (-3.682379) * Xout1 + (3.679287) * Xout2 -! ! /* Generating code for PE 1 in layer 1 */ Xsum1 = (-1.443177) + (-4.406851) * Xout1 + (4.352833) * Xout2 -! ! /* Generating code for PE 2 in layer 3 */ Xsum2 = (-3.500513) + (-2.403626) * Xout1 + (7.551652) * Xout2 -! ! /* Generating code for PE 0 in layer 3 */ Xout0 = 1.0 / (1.0 + exp (- Xsum0) ) -! ! /* Generating code for PE 1 in layer 3 */ Xout1 = 1.0 / (1.0 + exp (- Xsum1) ) -! /* Generating code for PE 2 in layer 3 */ Xout2 = 1.0 / (1.0 + exp (- Xsum2) ) -! /* Generating code for PE 0 in layer 5 */ Xsum0F = (-2.840431) + (6.428875 ) * Xout0 + (-2.143907) * Xout1 + (-6.406175) * Xout2 Xout0F = 1.0 / (1.0 + exp (-Xsum0F) ) -! /* De-scale and write output from network */ Yout = Xout0F XOR = Yout put XOR after text of field Y of this page
Lgica Nebulosa
Fuzzy Sets
Lgica Nebulosa
Quando as leis da Matemtica referemse realidade elas no esto certas. Quando estas leis esto certas elas no se referem a realidade . Albert Einstein No se imagina como tudo vago at que se tenta faze-lo de maneira precisa . Bertrand Russel
Lgica Aristotlica
Caractersticas:
Os objetos so classificados em categorias muito bem definidas Um objeto pertence a uma categoria ou no. Uma figura geomtrica ou um quadrado ou no. O se ou no. Serve para separar os objetos em categorias bem definidas.
Lgica Aristotlica
Como classificar exatamente?
O carro est andando muito rpido. Ele uma pessoa muito feliz. Esta sala pequena. Nesta cidade a temperatura freqentemente est abaixo de zero.
Paradoxos
Bertrand Russel, ao tentar formalizar a Matemtica encontrou a possibilidade de ser e no ser ao mesmo tempo nos paradoxos, exemplo:
O filsofo Cretense: Um filsofo Cretense dizia que todos os Cretenses mentem . O filsofo est mentindo? O barbeiro de Sevilha: Em Sevilha existe um barbeiro que s faz a barba de quem no barbeia a si prprio . Quem barbeia o barbeiro? O conjunto de todos os conjuntos que no so membros de si mesmo, um membro de si mesmo? Se ele membro ento no , se ele ento
Se a taxa de juros subir muito e o dficit for alto teremos uma recesso moderada. Se estamos na hora do rush aumente muito a freqncia dos trens. Se temos muita roupa na mquina de lavar aumente o tempo de lavagem. Se a terra est muito seca e a temperatura est alta regue durante mais tempo. Se Xi ento Yj
Teorema da Aproximao
sempre possvel cobrir uma curva com um nmero finito de remendos . Bart Kosko. Remendos so pedaos de conhecimento sobre o problema. Cada remendo corresponde a uma regra, ou proposio da forma: if... then...
Sistema Fuzzy
Fuzzy: transforma a entrada em um conjunto nebuloso. Defuzzy: transforma o valor nebuloso de sada em um valor ntido. Mquina de inferncia: faz todos os clculos. Gerente de informaes: obtm da base de conhecimentos, informaes sobre como regras devem ser resolvidas. Base de conhecimentos: contm definies sobre as regras, conjuntos e operadores.
2.
3.
Definir faixas de valores (Universo de discurso das variveis) Dividir o universo de discurso em conjuntos nebulosos (rtulos) Definir a semntica dos conjuntos (funes de incluso)
Desvantagens
Verificao e validao: embora sejam mais fceis de construir e prototipar que sistemas convencionais, eles necessitam que sejam executadas mais simulaes e necessitam mais sintonia antes de serem definitivamente aprovados. Formalismo: no tem uma definio matemtica precisa e ntida como os sistemas tradicionais. Capacidade de aprendizado: no aprendem com a experincia. Sistemas hbridos so utilizados para diminuirem esta desvantagem. Determinao das funes e regras: difcil o estabelecimento de regras nebulosas corretas.
Produtos Comerciais
Villares: elevador inteligente. Hitachi: sistema de controle de trfego do Metro Sendai com 16 estaes e 13,5 Km de trilhos. Continental: lavadora de roupas. Sony: Filmadoras, mquinas fotogrficas, fornos de microondas.
Incio
Lofty Zadeh, Fuzzy Sets. Information and Control. 1965. Princpio da Incompatibilidade:
A medida que a complexidade de um sistema aumenta, nossa habilidade para fazer afirmaes precisas e que sejam significativas acerca desse sistema diminui at que um limiar atingido alm do qual preciso e significncia (ou relevncia) tornam-se quase que caractersticas mutuamente exclusivas.
Representao da Informao
1. Tipo Nominal: no h relaes de ordem e o nico
teste possvel se elemento pertencente ao conjunto ou no, ex.:
Times = {Vasco, Fluminense, Santos,...}
Representao da Informao
3. Tipo Intervalo: dados cujos intervalos podem ser definidos com exatido. No entanto, no h um ponto zero claramente definido. Podem ser comparados quanto a igualdade, superioridade e podem ser subtrados um dos outros, ex.:
Calendrio. Graus Celsius intelig(Maria)-intelig(Paulo)<intelig(Ana)<intelig(Carlos)
4. Tipo Proporcional: semelhantes aos do tipo intervalo, mas h um zero absoluto, ex.:
Graus Kelvin
Conjuntos Clssicos
Universo de Discurso
Corresponde ao espao onde so definidos os elementos do conjunto, ex.:
0m <= altura <= 3,0m
Funo de Incluso
Define se um elemento pertence ou no ao conjunto, ex.:
Problemas de Representao
Com os Conjuntos Clssicos
Embora conjuntos clssicos sejam a base de toda a teoria matemtica moderna, eles apresentam problemas quando aplicados uma enorme classe de problemas do mundo real O problema da escolha do limiar entre dois conjuntos (alto/baixo) denominado de paradoxo Sorites, atribudo ao filsofo, Eubulides de Mileto, adversrio de Aristteles: Quando um monte de areia deixa de ser um monte de areia, caso retiremos um gro de areia de cada vez?
Tipos de Incluso
1. Incluso com grau:
Um elemento pertence a um conjunto com m determinado grau de certeza. Alguns elementos do conjunto so mais representativos da idia geral do conjunto do que outros, ex.:
alunos excelentes = {Pedro, Ana, Paulo, Marta} muito altos = {Oscar, Tande, Jnior Baiano}
Tipos de Incluso
2. Incluso em diversos conjuntos:
Funo de Incluso
A funo de incluso de um conjunto A caracterizada pela funo
(.): Xp[0,1] Que mapeia cada elemento de X em um nmero real no intervalo [0,1].
Para um elemento em particular, a funo representa o grau de incluso do elemento no conjunto, ex.:
Um conjunto fuzzy pode ser representado como um conjunto ordenado de pares, sendo que o primeiro elemento denota o elemento do conjunto propriamente dito e o segundo o grau de incluso deste elemento no conjunto. Universo de Discurso de Notas:
Exerccios
Representar em termos de universo de discurso e pares ordenados os conjuntos:
Meses do ano Temperatura C entre 0 e 100 Notas dos alunos da classe Estaes do ano Estados da gua Reprovaes, exame e aprovaes
Uma classificao por altura inclui as seguintes categorias para a estatura: baixa, mdia e alta. A equao caracterstica do conjunto estatura mdia :
0 se altura <= 1,50 se 1,50<altura<1,70 se 1,70<altura<1,90 se altura >= 1,90
media(altura)
5*altura-7.5
-5*altura+9.5
0
Funes de Incluso
Representao Linear:
Funes de Incluso
Funes Triangulares e Trapezoidais:
Funes empregadas freqentemente devido a simplicidade de representao e utilizao. Podem ser representadas usando-se apenas 4 valores: dois para pontos em cada uma das retas e os dois ngulos de inclinao.
Funo Trapezoidal
Seu valor 0 de incluso ( ), Seu valor 1 de incluso (K) E o ponto de inflexo (F), que o ponto onde o valor da funo de incluso vale 0.5. 0
x =
2
S (x, , F, K) =
2* X 1
1
KX-K K2
=x =F F = x =K x =K
2*
|A| = 7
x
'
(x)
||A|| =
|A| |'|
Exemplo
A cardinalidade do conjunto A = { (6,0), (6.5, 0.25), (7, 0.5), (7.5, 0.75), (8,1),
(8.5, 0.75), (9, 0.5), (9.5, 0.25), (10,0) } vale e a cardinalidade relativa : ||A|| = 4.00 = 0.20
20
A(x)dx
Exerccios
Calcular a cardinalidade |A| e a cardinalidade relativa ||A|| dos conjuntos definidos no exerccio anterior.
Exemplo Prtico
Uma ONG deseja implementar um sistema Fuzzy-especialista para selecionar atletas para as seguintes modalidades esportivas:
Passo 1
Definio de regras fuzzy a partir do conhecimento do especialista:
Se o atleta muito baixo e um pouco individualista Ento est apto para a ginstica Se o atleta muito alto e bastante pluralista Ento est apto para o vlei Se o atleta de estatura media e muito agressivo Ento est apto para o jud
Exerccio
Continuar a definio de regras fuzzy para os atletas
Passo 2
As regras so definidas de acordo com o bom senso e escritas em termos de variveis lingsticas. Para um sistema de duas entradas e uma sada pode-se definir a seguinte matriz antecedente 1 (altura) e antecedente 2 (personalidade):
Altura Personalidade Individualista Muito Baixo Ginstica Baixo Mdio Alto Muito Alto
Ginstica
Jud
Futebol
Futebol
Pluralista
Ginstica
Jud
Futebol
Vlei
Agressivo
Ginstica
Jud
Jud
Vlei
Passo 3
Definir o grau de relevncia de cada antecedente traando, a partir de uma determinada altura do atleta, uma linha perpendicular ao eixo x at encontrar o valor de y onde esta intercepta as funes membros.
Exerccio
Definir o grau de relevncia para o antecedente personalidade
Passo 4
Uma vez definidos os graus de relevncia dos antecedentes deve-se definir o grau de certeza (a firmeza da regra) para cada regra. Se os antecedentes estiverem ligados pela condio e a certeza da regra assume o menor valor de relevncia dos antecedentes. Se os antecedentes estiverem ligados pela condio ou a certeza da regra assume o maior valor de relevncia dos antecedentes. Sempre melhor utilizar operadores e sempre que possvel. Se o antecedente possuir o operador no a certeza da regra assumir o valor = 1 relevncia ( ex.: not muito baixo (0.9) dever ser muito baixo (0.1) ) Ento a regra fica: Regra 2: Se o atleta de estatura baixa (0.20) E agressivo (.75) Ento est apto para a Ginstica (0.20) Regra 3: Se o atleta de estatura media (0.75) E agressivo (.70) Ento est apto para o jud (0.70)
Exerccio
Definir os graus de certeza para todas as regras definidas anteriormente.
Finalmente
Considerando apenas a altura dos candidatos, podemos montar o seguinte grfico de fuzzyficao :
Entrada 1,25 1,35 1,45 1,55 1,65 1,75 1,85 Sada Ginstica=0 Ginstica=0,5 Ginstica=0,27 Jud=0,30 Jud=0,40 Futebol=0,30 Futebol=0,5 Futebol=0,6 Futebol=0,20 Vlei=0,35
Exerccio
Definir o grfico de incluso para a personalidade dos candidatos.
Algoritmos Genticos
Cleber Miranda Barboza cleberc@linux.ime.usp.br http://www.linux.ime.usp.br/~cleberc
Introduo
Um Algoritmo Gentico (AG), conceitualmente, segue passos inspirados no processo biolgico de evoluo natural segundo a teoria de Darwin Algoritmos Genticos seguem a idia de SOBREVIVNCIA DO MAIS FORTE (melhores solues a cada gerao)
Background
Cromossomos
Todo organismo vivo consiste de clulas. Em cada clula, existe o mesmo conjunto de cromossomos Cromossomos consistem de genes seqncias de DNA- que servem para determinar as caractersticas de um indivduo
Background (Cont.)
Reproduo
Durante o processo de reproduo ocorre-se a recombinao (ou crossover cruzamento-). Genes dos pais se combinam para formar novos cromossomos. Os descendentes criados podem sofrer mutaes, ou seja, os elementos do DNA podem ser trocados A adaptao de um organismo pode ser medida pelo sucesso do mesmo em sua vida
Idia bsica
Comear com um conjunto de solues (representado por cromossomos) chamado populao Solues de uma populao so escolhidas e usadas para formar uma nova populao (reproduo) Espera-se que a nova populao seja melhor que a anterior
Questes importantes
Como criar cromossomos e qual tipo de codificao usar? Como escolher os pais para a realizao do crossover? A gerao de uma populao a partir de duas solues pode causar a perda da melhor soluo. O que fazer?
Esboo do algoritmo
[Incio] Gerao aleatria de uma populao de n cromossomos [Adaptao] Verificar a funo objetiva f(x) de cada cromossomo x [Populao] Cria-se uma nova populao pela repetio a seguir: 1. [Seleo] Selecione um par de cromossomos da populao de acordo com a adaptao de cada um (os mais bem adaptados tem maior chance de serem escolhidos) 2. [Crossover] Produza dois descendentes (filhos) realizando crossover com os cromossomos dos pais. O ponto para a realizao do crossover deve ser aleatrio. 3. [Mutao] Com uma certa probabilidade, o descendente sofre mutao em cada locus (posio no cromossomo). 4. [Aceitao] Coloque os descendentes em uma nova populao, juntamente com a melhor soluo da gerao velha
Codificao
Como realizar a codificao de cromossomos? a primeira pergunta que deve ser feita ao resolver um problema com AG A codificao depender fortemente do problema
Codificao binria
a mais comum devido a sua simplicidade Cada cromossomo uma string de bits 0 ou 1
Crom: A = 1 0 1 1 0 0 1 0 1 1 Crom: B = 1 1 1 1 1 1 0 0 0 0
Exemplo de uso: problema da mochila Codificao: Cada bit diz se um elemento est ou no na mochila
Crom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Crom B: ABDJEIFJDHDIERJFDLDFLFEGT Crom C: (back), (back), (right), (forward), (left)
Crossover
Aps decidir qual codificao usar, procedese com a operao crossover A operao deve ser realizada sobre os cromossomos dos pais para a criao de descendentes
| | | |
Mutao
O objetivo da mutao evitar que as solues na populao fiquem apenas num mnimo local Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110110
Uma classe consiste de um certo nmero de estudantes As classes so disjuntas, ou seja, no h estudantes em comum
Em cada perodo uma matria lecionada a uma classe possvel que uma matria aparea mais de uma vez em um perodo Uma combinao particular de (professor, matria, sala, classe) chamada de tupla A tarefa de realizar a combinao (professor, matria, sala, classe) para formar uma tupla feita parte
283
Problema da grade horria (Cont.) - Algoritmo Enquanto nmero de geraes < limite e no houver indivduo perfeito faa
velha Crie um filho vazio Para cada perodo dos pais faa
Realize os crossover dos perodos correspondentes, produzindo um novo perodo Copie o novo perodo para a posio correspondente do filho
Se custo < mnimo permitido Matar o filho Se no Colocar o filho na populao nova
Referncias
H.Firas. Handwritten Numeral Recognition Using Neural Networks, em: http://ise.stanford.edu/class/ee368a_proj00/project2/node4.ht ml GENETIC ALGORITHMS, em: http://cs.felk.cvut.cz/~xobitko/ga/main.html D.Abramson, J.Abela. A Parallel Genetic Algorithm for Solving the School Timetabling Problem, em: http://citeseer.nj.nec.com/abramson92parallel.html D. Abramson. Constructing School Timetables using Simulated Annealing: Sequential and Parallel Algorithms, em: http://citeseer.nj.nec.com/abramson91constructing.html J.E.Boggess. USING GENETIC ALGORITHMS FOR SCHEDULING ENGINEERING MISSIONS, em: http://citeseer.nj.nec.com/55397.html