UM ESTUDO SOBRE RACIOCÍNIO BASEADO EM CASOS

Tamanho: px
Começar a partir da página:

Download "UM ESTUDO SOBRE RACIOCÍNIO BASEADO EM CASOS"

Transcrição

1 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UM ESTUDO SOBRE RACIOCÍNIO BASEADO EM CASOS - Trabalho Individual - por Mara Abel Prof. José Mauro Volkmer Castilho Orientador PORTO ALEGRE, JANEIRO DE 1996.

2 2 SUMÁRIO LISTA DE FIGURAS 3 RESUMO 4 1. INTRODUÇÃO 5 2. HISTÓRICO 8 3. DEFINIÇÃO REPRESENTAÇÃO DOS CASOS INDEXAÇÃO DOS CASOS RECUPERAÇÃO ADAPTAÇÃO DOS CASOS COMPARAÇÃO COM RACIOCÍNIO BASEADO EM MODELOS CONCLUSÃO 33 BIBLIOGRAFIA 36

3 3 LISTA DE FIGURAS Figura 1 : Ciclo de solução de problema de um sistema em CBR 14 Figura 2 : Representação de um caso para criação de uma receita contendo Objetivo, Restrições e Descrição da situação. 19 Figura 3 : O algoritmo de vizinhança. 25 Figura 4 : Representação do domínio por modelos e por casos. 30 Figura 5 : Busca da solução de problemas em MBR e CBR. 31

4 4 RESUMO O presente trabalho apresenta uma introdução compreensiva dos sistemas de Raciocínio Baseado em Casos (Case-based Reasoning - CBR), dirigido principalmente para o público de Inteligência Artificial e Sistemas Especialistas. Os sistemas baseados em casos surgiram a partir de um modelo de armazenamento de informações na memória humana. Sua evolução levou aos CBR, que enfatiza o reuso de experiências passadas na solução de novos problemas. Dentro desse contexto, este trabalho apresenta: a definição de CBR; a evolução histórica da pesquisa cognitiva que levou ao modelo de CBR; as técnicas usadas na sua construção, referenciando os trabalhos onde foram propostas; as etapas de desenvolvimento e o modelo de funcionamento desses sistemas; uma comparação entre os sistemas que utilizam CBR e Raciocínio Baseado em Modelos (Model-based Reasoning - MBR), bem como as vantagens e desvantagens de cada um; e, finalmente, uma avaliação de CBR como modelo cognitivo e as direções da pesquisa futura nesse campo do conhecimento.

5 5 1. INTRODUÇÃO A frase "Conhecimento é poder" resumiu a importância dos sistemas especialistas como uma forma de divulgar e automatizar o método de solução de problemas dos especialistas em diversas áreas de informação. Porém, a questão relativa ao que significa realmente ter conhecimento e como algumas pessoas são mais eficientes em aplicá-lo do que outras ainda permanece uma área de conjecturas. Conhecimento demanda experiência em resolver problemas e, para buscar uma melhor compreensão de seu mecanismo, podemos investigar a forma como essa experiência pode ser armazenada e utilizada. Imagine a formação de um profissional em Medicina, por exemplo. Ele permanece durante anos em uma escola aprendendo como o corpo humano é composto, como funciona e como acontecem as doenças. É o que chamamos de conhecimento genérico da área, o conjunto de regras que abstrai a forma geral de funcionamento de qualquer ser humano. Progressivamente, ele é confrontado com pacientes e acompanha os diversos tratamentos aplicados. Essas histórias constituem o conhecimento específico da Medicina, exemplificado através de cada tratamento médico aplicado com sucesso. O estudante está construindo com elas seu banco de memórias. É esperado que, quanto mais pacientes ele tratar com sucesso, melhor desempenho ele terá na solução de novos problemas. Porém, quais os mecanismos utilizados para construir a memória e a experiência desse profissional? Inicialmente, é oferecido ao estudante um conjunto de regras de solução de problemas em diagnóstico médico e ele é encorajado a utilizá-las para diagnosticar e tratar novos pacientes. Seu desempenho inicial é pobre, porém, cada paciente tratado é armazenado e lembrado como uma experiência de sucesso ou fracasso. Quando confrontado com outros pacientes com quadro clínico semelhante, o médico utilizará (ou evitará) o mesmo tratamento já experimentado. A repetição do procedimento segue uma sequência de passos descrita como um script nos trabalhos pioneiros de Schank e Abelson (Schank e Abelson, 1977). Essa experiência passada é o que chamamos de caso e a utilização de casos passados na solução de outros novos será tanto mais eficiente quanto melhor compreendidos forem os casos anteriores.

6 6 A compreensão de cada caso corresponde ao reconhecimento de quais aspectos do problema são relevantes e como influenciam na conclusão. Por exemplo, quais dos sintomas do paciente realmente são decorrentes da doença, quais os que podem ser utilizados para reconhecer a mesma doença em um novo caso e o quanto esse caso é semelhante ou diferente dos demais vistos anteriormente. A isso chamamos indexação, ou seja, o mecanismo pelo qual os casos são separados e organizados na mente desse médico para serem posteriormente utilizados. Quanto maior o número de casos de sucesso armazenados e eficientemente indexados, maior será a chance de que um novo caso possa ser tratado com a mesma solução ou com uma pequena adaptação de uma solução já utilizada. Esse é o princípio básico no qual se fundamentam os sistemas de raciocínio baseado em casos (ou CBR, utilizando a sigla de Case-based reasoning, termo original): o armazenamento organizado de problemas com suas soluções e sua utilização para resolver novos problemas similares aos já resolvidos. Esses conceitos foram amplamente explorados nos trabalhos de Riesbeck e Schank (1989) e Kolodner (1993). CBR corresponde a uma aplicação mais limitada de raciocínio analógico (Campbell e Wolstercroft 1990) uma vez que se desenvolve em um domínio específico e utiliza abstrações desse domínio para dirigir a inferência. O raciocínio analógico reconhece similaridades entre diferentes domínios e, a partir delas, pode gerar as abstrações. Sistemas baseados em casos revolucionaram a engenharia de sistemas especialistas por tornarem mais fácil a tarefa de aquisição de conhecimento, considerada o gargalo na construção desses sistemas (Hayes-Roth 1983). A aquisição e representação de casos não exige um extensivo trabalho de estruturação de objetos do domínio como acontece nos sistemas de raciocínio baseados em modelos (ou MBR, também mantendo o termo inglês original Model-based reasoning). Por MBR entende-se todos os sistemas com um modelo explícito e genérico de representação do domínio, como os modelos baseados em heurísticas, relações causais, matemática ou estatística. Pode-se incluir, como exemplos, muitos dos sistemas baseados em regras e os sistemas de redes neurais. Ao contrário da construção de modelos, aquisição e representação de casos são feitas de forma mais natural, sem necessidade de uma extensiva análise do domínio por parte do engenheiro de conhecimento (Riesbeck e Schank 1989). Isso só é possível, no entanto, quando os casos estão disponíveis e razoavelmente organizados em sua fonte,

7 7 É intenção deste trabalho, apresentar um resumo do estado da arte em sistemas de raciocínio baseado em casos, definindo no que se constituem, sua evolução, quais as principais técnicas e limitações envolvidas no seu desenvolvimento e como os problemas vêm sendo resolvidos pelos pesquisadores da área. Busca ir além, através de uma avaliação sobre o desempenho desses sistemas na solução de problemas quando comparados com sistemas de MBR. A partir dessa análise, são indicados alguns caminhos a serem explorados no desenvolvimento de sistemas para aplicações intensivas em conhecimento. O texto é dirigido para leitores com conhecimento prévio em Inteligência Artificial e Sistemas Especialistas, especialmente representação de conhecimento, mas não necessariamente familiarizado com raciocínio baseado em casos. Como literatura complementar a esse texto sugere-se iniciar pelas extensivas revisões bibliográficas de Watson e Marir (1994) e Marir e Watson (1994) sobre raciocínio baseado em casos. Uma introdução às técnicas, com variada descrição de sistemas desenvolvidos, é apresentada nos livros de Riesbeck e Schank (1989) e Kolodner (1993). O estado da arte no que se refere a aplicações, particularidades das implementações, avaliações de desempenho e outros é descrito nos inúmeros artigos dos anais dos Case-based Reasoning Workshops europeu e americano, citados nas referências deste trabalho.

8 8 2. HISTÓRICO Segundo Watson e Marir (1994), o estudo de CBR tem seu marco inicial no trabalho de Schank e Abelson (1977) onde foi proposto que nosso conhecimento geral sobre as situações é registrado na forma de scripts. Os scripts descrevem sequências de passos ou etapas que nos permitem antecipar como os acontecimentos devem se suceder e realizar inferências a partir dessa expectativa. Os scripts são propostos como uma estrutura para a memória conceitual descrever informação sobre eventos estereotipados, como ir a um restaurante ou visitar um doutor. Os experimentos mostraram, no entanto, que scripts não podiam ser considerados um modelo completo de representação da memória, uma vez que uma pessoa pode "lembrar-se" de scripts que são compostos por pedaços de diferentes sequências de eventos, ou seja, lembrarse de algo que na verdade foi criação de sua mente. Outros mecanismos atuam na formação da memória e são explicados por teorias da Filosofia e Psicologia de solução de problemas, formação de conceitos e aprendizado experimental. Como a teoria da Memória Dinâmica de Schank, descrita na sessão 3.1 deste trabalho, que foi uma das importantes contribuições para o desenvolvimento da pesquisa na área. A teoria baseou-se na idéia de que não é possível separar experiência, compreensão, memória e aprendizado e propôs o conceito de pacotes de organização de memória ou MOPs (memory organization packets), que utilizam a lembrança de experiências passadas associadas a estereótipos de situações para a solução de problemas e aprendizado. Paralelamente ao trabalho de Schank e Kolodner, Gentner (1983) desenvolveu uma estrutura teórica para o raciocínio por analogia que foi importante para o desenvolvimento de CBR. Embora as raízes filosóficas da teoria de CBR possam se espalhar por trabalhos de diversos pesquisadores no campo da Psicologia ou Ciência da Computação, foram sem dúvida os trabalhos do grupo de Schank, na Universidade de Yale, no início dos anos 80, que produziram o modelo cognitivo de CBR e as primeiras aplicações baseadas nesse modelo. Pesquisadora desse grupo, Janet Kolodner, desenvolveu o primeiro sistema utilizando CBR, chamado CYRUS (Kolodner 1983). O sistema continha as viagens e encontros do ex-secretário do estado dos EUA, Cyrus Vance, descritos na forma de casos e implementado como os MOPs de Schank.

9 9 O modelo de casos do sistema CYRUS serviu como base para o grupo de Yale desenvolver diversos outros sistemas de CBR. MEDIATOR (Simpson, 1985) trabalha na solução de disputas entre diversas partes, propondo possíveis soluções de consenso. Se uma proposta falhar em satisfazer todas as partes envolvidas, o sistema gera uma nova proposta, armazenando a falha de forma a não repeti-la. CHEF (Hammond, 1986) desenvolve novos pratos a partir de outros. O sistema recebe como entrada diversos objetivos a serem satisfeitos e recupera do seu banco de casos a receita que possa satisfazer tantos objetivos quanto possível e, a partir dela, gera uma nova receita para a situação proposta. PERSUADER (Sycara, 1987) propõem soluções de conflitos entre patrões e empregados utilizando contratos já utilizados por outras companhias ou, caso não existam exemplos anteriores para aquela situação, gerando uma nova solução. CASEY (Koton, 1989) diagnostica problemas cardíacos em pacientes adaptando descrições de outros pacientes com sintomas similares, mas não necessariamente iguais. JULIA (Hinrichs, 1992) trabalha com planejamento de refeições. O sistema decompõe o problema proposto e utiliza casos para dirigir a elaboração de uma nova refeição, respeitando as restrições propostas. Em 1986, um trabalho alternativo foi desenvolvido na Universidade do Texas, utilizando recursos de classificação heurística e aprendizado de máquina para unificar em um modelo o conhecimento genérico do domínio e o conhecimento específico de casos. O resultado foi o sistema PROTOS com seu modelo de memória de casos (Porter & Bareiss, 1986). Modelos como esse, que unificam conhecimento genérico e episódico, têm influenciado grandemente os sistemas de CBR, uma vez que o conhecimento do domínio pode melhorar a qualidade do raciocínio, encurtar o caminho de busca da solução ou mesmo preencher lacunas do espaço do problema que os casos naturalmente não cobririam. Esses trabalhos e conceitos evoluíram rapidamente para inúmeras aplicações de sistemas baseados em casos, especialmente nos domínios do Direito, Medicina e

10 10 Engenharia. As aplicações normalmente buscam resolver problemas de classificação, projeto, diagnóstico ou planejamento, especialmente em domínios onde naturalmente o especialista utiliza casos anteriores como base para a solução do problema. Dessas aplicações, o Direito tem mostrado os resultados mais notáveis até o momento (sistema HYPO, Ashley, 1988; sistema CABARET, Rissland & Skalak, 1989; e os sistemas MEDIATOR e PERSUADER, já citados.) O crescente interesse pela área e o potencial de uso dos sistemas baseados em casos levou ao desenvolvimento de algumas ferramentas comerciais. A de maior sucesso é o sistema CBR Express, produzido pela empresa Inference Corporation e comercializado no Brasil pela Spectrum de São Paulo. Além desse, os sistemas ECLIPSE da Haley Enterprises e o ReMind, da Cognitive Systems Inc., foram desenvolvidos nos EUA e o sistema ReCall da ISoft francesa, na Europa. Essas ferramentas oferecem a representação dos casos na forma de objetos e sua indexação, e a recuperação através do algoritmo de vizinhança (nearest neighbour, descrito na sessão 3.3 deste trabalho). Atualmente, a pesquisa desenvolve-se em centros de pesquisa e universidades do mundo todo e é dirigida para a ampliação desses recursos básicos constantes nas primeiras ferramentas de CBR. Na prática, pelas características dos domínios onde são aplicados, CBR tem fornecido resultados ainda insatisfatórios. Os problemas ocorrem geralmente pelo número de casos ser insuficiente ou inadequado para refletir a solução dos problemas, ou a recuperação utilizando o algoritmo de vizinhança fornece soluções pífias, ou ainda essas soluções são pobremente adaptadas para o problema apresentado. Entre os itens importantes explorados nos trabalhos mais recentes pode-se citar a unificação de conhecimento genérico do domínio com o conhecimento específico de casos (Reategui et al, in press; Hastings et al 1995), o desenvolvimento de algoritmos de recuperação do caso mais útil (e não do caso mais semelhante) (Kolodner 1989), aplicação de raciocínio por analogia em CBR (Campbell e Wolstencroft 1990) e de aprendizado automático de novos casos.

11 11 3. DEFINIÇÃO "Um sistema de CBR resolve problemas por adaptar soluções que foram utilizadas para resolver problemas anteriores".(riesbeck & Schank, 1989) A idéia básica em um sistema de CBR é que, para um domínio particular, os problemas a serem resolvidos tendem a ser recorrentes e repetir-se com pequenas alterações em relação a sua versão original. Dessa forma, soluções anteriores podem ser reaplicadas também com pequenas modificações. Essa é uma visão que se opõe aos sistemas de MBR, que utilizam um modelo genérico de conhecimento do domínio, de forma a que possa ser amplamente aplicável a diferentes problemas. No caso de MBR, ao serem analisados diversos pacientes com uma determinada doença, tenta-se abstrair o que eles todos têm em comum, para construir o modelo da doença, sem considerar as particularidades de cada um. CBR, em contraste, justamente enfatiza as instâncias das ocorrências de pacientes, o conhecimento específico associado a cada situação particular. O primeiro passo para utilizar uma solução já aplicada com sucesso anteriormente é determinar qual das experiências passadas mais se assemelha ao problema atual. Para ser possível realizar essa comparação, é necessário que as experiências sejam analisadas e armazenadas de forma organizada. Os aspectos importantes dos problemas devem ser isolados, rotulados e ordenados em memória de tal forma que possam ser utilizados para comparar a situação atual com as anteriores armazenadas. Essa semelhança deve ser considerada tanto pelos aspectos explícitos dos problemas, ou seja, as características e seus valores, como por relações abstratas como a ausência de feições, relacionamento entre elas ou importância relativa de cada uma. Por exemplo, ao armazenar o quadro clínico de um determinado paciente, um médico deve registrar as características e sintomas do paciente (normalmente através de duplas atributo-valor, como "idade=54 anos", "febre" com valor "mais que 39 graus"), mas também características estruturais dessa descrição, como quantos e quais sintomas são necessários para descrevê-lo, o fato de que alguns sintomas só existem na presença de outros (febre e infecção) e que alguns sintomas são muito mais específicos e graves do que outros (parada cardíaca comparado com dor de cabeça). A

12 12 determinação de quais as feições e relações estruturais que irão rotular um problema armazenado é chamado problema da indexação e é resolvido através de uma análise realizada no momento do armazenamento do problema. Um caso é, portanto, a descrição de um problema anterior, seus rótulos utilizados como índices, a solução associada e uma avaliação da eficácia dessa solução. Um caso representa o conhecimento associado a uma determinada situação em um nível operacional (Kolodner, 1993), isso é, tornando explícito como uma determinada tarefa foi executada ou como uma parte específica do conhecimento foi aplicada e quais estratégias particulares foram utilizadas para atingir o objetivo. Descreve todos os aspectos importantes que caraterizam uma situação e a solução associada, muitas vezes incluindo o julgamento da eficácia dessa solução. Ainda, os casos mantém agrupados pedaços de conhecimento que são utilizados juntos para resolver determinados problemas em um contexto particular. Desta forma, o sistema captura justamente o que é mais difícil de elicitar quando se utiliza a engenharia de conhecimento para construir um modelo de domínio: os chuncks do especialista (Hayes & Roth, 1983). Kolodner (1993, p. 13) define um caso como: "Um pedaço contextualizado de conhecimento representando uma experiência que ensina uma lição fundamental para atingir o objetivo do raciocinador." Essa definição contempla diversos itens: um caso é a informação relativa a um problema e solução específicos, ou seja, é uma instância concreta do problema; um caso não é genérico pois aplica-se a uma situação em um determinado contexto; um caso diferencia-se das outras experiências armazenadas por contribuir de alguma forma com uma melhor solução do problema. Formalmente, um caso é composto por:

13 13 uma descrição dos aspectos relevantes do problema que caracterizam aquela situação particular a ser resolvida, que aqui será chamada de representação do caso; o contexto no qual o caso se insere, representado através dos índices do caso; a descrição da solução associada ao problema, na forma de um diagnóstico, uma classificação, uma sequência de ações, etc; uma avaliação da solução empregada ao problema particular. Como exemplo, pode-se considerar que um caso, no exemplo do médico, é a descrição de um paciente e seu diagnóstico. Em linhas gerais, essa descrição irá incluir as características e sintomas que são efetivamente relacionados à doença, omitindo os que não são. Se o diagnóstico do paciente for de um enfarto do miocárdio, serão incluídas informações como a idade do paciente, se ele é fumante e sintomas como angústia e dor no peito. Ao mesmo tempo, se o diagnóstico for de fratura no fêmur, o médico já não incluirá o hábito de fumar como um aspecto relevante do caso. Além do diagnóstico, serão incluídos os respectivos tratamentos para cada um dos casos e seu resultado. No caso da fratura, o médico pode sugerir imobilização da perna, repouso e fisioterapia posterior, e verificar que após quatro meses o paciente retornou à sua vida normal sem sequelas, indicando uma boa eficácia do tratamento. Em ambos os casos, esses pacientes particulares só serão armazenados se o seus quadros clínicos forem diferentes de outros pacientes com o mesmo diagnóstico, já armazenados na memória. Por exemplo, um paciente enfartado com menos de 35 anos, seria uma característica diferente de outros casos utilizáveis na indexação desse paciente. Ou um paciente que tomasse uma medicação específica, vitamina C (por ex.), e tivesse tido uma recuperação mais rápida que o normal indicaria uma melhora na solução já aplicada. A forma como um caso é representado em um sistema baseado em casos será melhor analisada na sessão 3.1 deste trabalho. Construir um sistema de raciocínio baseado em casos corresponde portanto a: O ciclo de funcionamento de um sistema de CBR é apresentado na figura 1 e cada uma de suas etapas é detalhada a seguir.

14 14 DOMÍNIO AQUISIÇÃO /INDEXAÇÃO NOVO PROBLEMA BASE DE CASOS RECUPERAÇÃO AVALIAÇÃO CASOS CANDIDATOS APRENDIZADO MELHOR CASO ADAPTAÇÃO SOLUÇÃO Figura 1 - Ciclo de solução de problema de um sistema CBR.

15 AQUISIÇÃO E REPRESENTAÇÃO DE CASOS Sistemas baseados em casos representaram um grande avanço na engenharia de conhecimento por possibilitarem a aquisição do conhecimento utilizado para resolver problemas, na forma de estruturas complexas como o especialista o utiliza. A elicitação dos casos demonstrou mesmo ser a única solução viável em domínios pouco estruturados cujos processos não são bem compreendidos (Kolodner, 1993). Ainda, o uso de casos permite a reutilização de bancos de dados prontos já disponíveis nas instituições (Shimazu at al. 1993, Brown et al. 1995) No entanto, analisar CBR como uma panacéia para a aquisição de conhecimento merece uma certa cautela. A experiência tem demonstrado que a aquisição de casos pode ser uma tarefa quase tão complexa quanto a construção de modelos. Uma medida da disponibilidade dos casos pode indicar o grau de dificuldade na construção de um sistema. Os casos não estão disponíveis em uma fonte externa. Embora os problemas do domínio sejam tipicamente descritos como eventos episódicos, suas descrições não estão disponíveis em nenhum tipo de registro. Apenas o especialista recorda dos casos. Dessa forma, a obtenção dos casos passa pelos mesmos processos e limitações da aquisição de conhecimento para a construção de modelos. Os casos estão semi-disponíveis em uma fonte externa. A instituição possui o registro dos casos, porém esse registro é incompleto ou desestruturado de tal forma que não permite seu uso imediato. É a situação do especialista que tem a ficha dos seus pacientes mas não registra toda a evolução da doença, ou da empresa que registra a chamada telefônica com as reclamações dos seus clientes mas não descreve as soluções oferecidas. O casos podem ser utilizados como ponto inicial para construção do banco de conhecimentos, porém necessitam ser complementados com informações obtidas através da engenharia de conhecimento.

16 16 Os casos estão disponíveis e contém erros. Os casos estão registrados de forma completa em uma fonte externa, porém contêm informações conflitantes ou erros. São exemplos os prontuários médicos que descrevem os mesmos sintomas com diferentes diagnósticos, ou registros de créditos de clientes com mesmos dados e concessão de diferentes valores de crédito. As diferenças podem ter sido causadas pela omissão das informações que causaram as diferentes avaliações pelo especialista ou simplesmente por erros grosseiros. Ambas as situações vão exigir interações com o especialista para garantir a integridade das informações contidas no banco. Os casos estão disponíveis e corretos. Essa é a situação menos comum e normalmente ocorre em domínios cuja solução pode ser descrita através de poucos casos. Ainda assim, a engenharia de conhecimento será utilizada para definir a melhor forma de representação dos casos, quais características serão utilizadas para indexação e como será realizada a adaptação das soluções recuperadas. (Strube et al. 1995) Apesar dessas restrições, realizar a aquisição de conhecimento na forma de casos apresenta algumas vantagens quando comparada aos métodos de construção de modelos. Casos permitem a construção de um protótipo operacional nas fases iniciais do projeto, antes de obter a completa estruturação do domínio. Esses protótipos estão aptos a propor soluções mesmo em domínios não completamente compreendidos. A aquisição de casos pode ser realizada mesmo em domínios pouco estruturados ou com base teórica mal definida. Casos costumam ser uma boa amostragem dos tipos de problemas que o sistema deve resolver, quais os formatos dos dados de entrada e de saída e tipos de resposta esperadas pelo usuário. Casos podem ser bons indicadores de quais as partes do problema que são realmente importantes e quais as características descritas no problema o

17 17 especialista usa realmente para encontrar a solução. A utilização de casos substitui a utilização extensiva de protocolos verbais retrospectivos e outras técnicas de entrevistas (Wright e Ayton, 1987) que demandam longo tempo do especialista, sem que os passos de solução de problemas sejam evidenciados (Abel, 1991). Casos permitem que o conhecimento que vai ser utilizado junto seja adquirido e armazenado junto, seguindo uma das primeiras normas para aquisição de conhecimento (Hayes-Roth, 1983). Uma vez coletados em suas fontes, é necessário definir a forma como os casos serão representados no computador. Um caso, individualmente, compõe-se de três partes, independente da forma como será estruturado, que são: o problema, descrito através do conjunto de características que descrevem a situação onde se insere e as restrições associadas; a solução, que pode ser uma ação, um conjunto de procedimentos, uma sequência de passos, um diagnóstico, uma classificação, um projeto, um plano, dependendo do tipo de problema que o sistema propõe-se a resolver; a avaliação da solução, que descreve o estado do problema depois que a solução foi aplicada, informação essa que será utilizada na adaptação da solução para novos casos. Casos podem ser representados em uma variedade de formas usando praticamente todos os formalismos de representação de conhecimento da Inteligência Artificial, incluindo frames (Reategui et al, in press), objetos (Abel et al. 1995a, 1995c), predicados, redes semânticas e regras de produção (Hasting et al. 1995), redes neurais, além de estruturas menos ricas semanticamente como os modelos de dados dos bancos de dados comerciais (Brown at al. 1995). O formato mais utilizado é o de frames ou objetos, embora muitos sistemas usem mais de uma das formas acima, combinadas. Além desse formato, faz parte das decisões de representação definir como os casos serão organizados e ligados entre si, compondo a memória de casos.

18 18 Dois modelos de memória de casos influenciaram historicamente o modo como os casos são organizados. São o modelo de memória dinâmica de Schank (1982) e o modelo de categoria de exemplares de Porter e Bareiss (1986). a) Modelo de memória dinâmica Esse modelo é composto principalmente de pacotes de organização de memória (MOPs), que são frames que compõem uma unidade básica da memória dinâmica. Eles representam conhecimento sobre classes de eventos de duas formas: instâncias, que representam casos, eventos ou objetos; abstrações, que representam versões generalizadas de instâncias ou de outras abstrações. O desenvolvimento da teoria mais geral de Schank levou aos pacotes de organização de memória episódicos (E-MOPs), implementados no Sistema CYRUS (Kolodner 1983). A idéia básica é organizar casos específicos que partilham propriedades similares sob uma estrutura mais geral (ou seja, uma E-MOP). Uma E- MOP contém os casos, as propriedades comuns entre eles e as feições que os diferenciam. Uma memória de casos é uma árvore de discriminação cujos nodos são esses objetos. O papel de uma E-MOP é indexar a estrutura de forma a armazenar buscar e recuperar os casos. O modelo é dinâmico porque novas E-MOPs são criadas no momento da inserção de novos casos, para discriminá-los em relação aos anteriormente armazenados. Esse processo, que permite a indexação automática de novos casos, tende a levar a uma explosão no número de índices à medida que cresce o número de casos. b) Modelo de categoria de exemplares Esse modelo considera que os casos no mundo real podem ser vistos como exemplares de acontecimentos. Aqui, uma memória de casos é uma rede semântica de categorias e casos ligados por relações semânticas de hierarquia, de semelhança ou diferenças. Cada caso é associado a uma categoria e suas feições têm importância distinta para enquadrá-lo ou não na categoria. Feições similares de um caso apontam para as de outro caso ou categoria, assim como categorias com pequenas diferenças também são ligadas. Essa rede compõe uma estrutura de conhecimento genérico do

19 19 domínio que permite alguma recuperação do raciocínio do sistema para gerar explicações. Para armazenar um novo caso, é buscado um caso semelhante no banco de casos. Se houver pequenas diferenças entre os dois, apenas um deles é retido, ou é armazenada uma única combinação dos dois. Um exemplo de um problema descrito através de casos é dado por uma parte de um caso extraído do sistema CHEF (Hammond, 1986) na figura 2, onde é descrito explicitamente o objetivo, as restrições a que deve-se submeter à solução e à descrição da situação presente. Problem: Goal : (create dish) Constrains: (include broccoli) (include beef) (taste spicy) (preparation stir-fry) Situation: (available broccoli) (unavailable red-pepper) (available beef) (frozen beef) (broken front-right-burner) (available ginger) (available scallions) (available-money $5.00) (available-time 2.00)... Figura 2: Representação de um caso para criação de uma receita contendo Objetivo, Restrições e Descrição da situação. Extraído do sistema CHEF (Hammond, 1986). Descrições de casos tendem a ser, no entanto, bastante maiores e mais complexas do que o exemplo acima, podendo conter dezenas de atributos para descrever cada objetivo, restrição e avaliação, incluindo ainda figuras, gráficos e imagens. É o que pode ser observado no sistema ARCHIE (Pearse et al, 1992), que utiliza mais de 100 diferentes feições, além de plantas arquitetônicas para descrever um projeto e no sistema de descrições petrográficas de Abel et al (1995a) que utiliza fotografias e quase uma centena de atributos para representar uma descrição de rocha.

20 20 Os problemas da escolha da representação vão além do tamanho e complexidade intrínseca do problema representado. As decisões de projeto, listadas abaixo, são feitas com o apoio das informações elicitadas do especialista através da engenharia de conhecimento. Que estrutura de representação é facilmente compreendida pelo usuário e, ao mesmo tempo, permite um gerenciamento eficiente no computador? Casos podem ser armazenados no computador nos mais diferentes formatos, no entanto, muitos deles são excessivamente complexos para serem manipulados pelo desenvolvedor do sistema ou para serem compreendidas pelo usuário do sistema. A representação deve considerar formatos que tenham uma correspondência natural com a forma como a informação costuma estar disponível para evitar o desperdício de processamento em traduções de uma estrutura para outra. Por exemplo, se os casos se constituem em prontuários médicos, uma boa solução é utilizar formulários que se assemelhem a esses prontuários. Se um especialista costuma apresentar o problema em linguagem natural, talvez devesse ser definida uma pseudo-linguagem que possa utilizar suas expressões. Quais os casos que devem ser representados? Os casos registram experiências concretas que podem auxiliar a alcançar um determinado objetivo, porém nem todos os casos devem ser selecionados para serem incluídos no sistema. Apenas aqueles que contêm uma lição útil (Kolodner, 1993) em relação aos demais devem ser armazenados. Ou seja, os casos que ampliam a capacidade de solução de problemas do sistema. Isso significa que casos que repetem uma situação anterior, apenas com pequenas modificações não deveriam ser incluídos, já que essas diferenças podem ser compensadas pelos algoritmos de adaptação do sistema. Ao mesmo tempo, não devem divergir excessivamente do problema resolvido pelo sistema, sob o risco de o sistema conter casos que nunca serão utilizados. O equilíbrio entre as duas restrições é difícil de ser alcançado, uma vez que as medidas de diferença e alcance do domínio são subjetivas, dependendo de uma avaliação particular da aplicação.

21 21 Qual a granularidade da informação a ser representada? Por exemplo, um projeto arquitetônico de uma casa constitui um caso, contém as necessidades do cliente e a solução proposta através dos detalhes do projeto. Porém, considerar todo o projeto como um caso não seria de muita utilidade, já que dificilmente dois clientes teriam as mesmas necessidades para a casa inteira. Mesmo com um grande número de casos armazenados, a possibilidade de recuperação de um caso seria muito pequena. Nesse exemplo, a melhor decisão seria particionar o projeto em um maior número de casos, cada um enfocando uma necessidade do cliente. Embora mais casos devessem ser recuperados para resolver todo o problema, o sistema obteria melhores soluções sobre um número menor de projetos armazenados. O problema da aquisição e representação de casos em um sistema de CBR inicia, portanto, com uma análise para determinar o grau de disponibilidade dos casos e quanta informação adicional deve ser elicitada diretamente do especialista. Depois disso, deve ser selecionada a melhor forma de representação do caso, tendo em conta a facilidade de compreensão do usuário e a eficiência no armazenamento por computador. Outras decisões complexas incluem a definição de quais, entre os casos disponíveis, são os que devem ser armazenados e qual a granularidade do conhecimento que compõe o caso. O banco assim construído deve contar ainda com uma forma de indexação eficiente para possibilitar ao sistema atingir uma boa performance na solução de problemas. 3.2 INDEXAÇÃO DOS CASOS Indexar casos corresponde a atribuir índices aos casos de forma a facilitar sua recuperação. Isso inclui colocar rótulos nos casos, no momento de sua inclusão na base de casos, para que possam ser posteriormente recuperados, organizar os casos para facilitar a busca e recuperação e definir os algoritmos de recuperação mais eficientes.

22 22 Indexar casos depende da compreensão do conteúdo e finalidade da informação que eles armazenam. Um bom índice permite reconhecer similaridades úteis entre os casos recuperados e essa utilidade só pode ser percebida se os índices forem escolhidos com base em uma boa compreensão do problema. Considere-se um banco de casos médicos onde os pacientes são armazenados através de suas descrições e dos diagnósticos de problema. As informações a serem utilizadas como índices dependem do tipo de similaridade que se quer buscar. No diagnóstico de uma infecção, dados como profissão, sexo, cor e idade são menos importantes na indexação do que os sintomas diretamente relacionados à doença. Porém, se a doença tivesse uma origem ligada a um comportamento ou profissão, como no caso das doenças respiratórias em mineiros, esses dados seriam fundamentais na indexação da informação. Muitas vezes, a similaridade que se busca no raciocínio baseado em casos, não é aquela superficial, obtida pela comparação de dados descritivos. É um tipo de similaridade mais abstrata, que permita reconhecer em diferentes contextos soluções que possam ser aplicadas a novos casos (Campbell e Wolstencroft, 1990). Kolodner (1993) aponta como as qualidades necessárias a um bom índice: prever a futura utilização da informação para solução de diferentes problemas; endereçar as similaridades úteis entre os casos; ser abstrato o suficiente para tornar um caso útil em uma variedade de diferentes situações; ser concreto o suficiente para ser facilmente reconhecido em futuras situações. Os índices podem ser selecionados tanto manualmente como automaticamente. A seleção manual analisa caso a caso para determinar quais as características descritas que determinam as variações sobre as conclusões. Os métodos automáticos buscam quantificar as diferenças entre os casos e os relacionamentos entre feições do problema e soluções adotadas. Algumas formas de selecionar índices são descritas a seguir (Kolodner, 1993 e Watson and Marir, 1994).

23 23 Técnicas baseadas em explicação. Os casos são analisados individualmente para determinar os elementos do problema que são utilizados para construir a solução. Esses elementos são utilizados como índices. Índices baseados em conhecimento do domínio. Utilizando protocolos retrospectivos sobre os casos são extraídas as correlações entre elementos e conclusões nos casos particulares e no domínio como um todo (processos abstratos). Esses elementos e processos são utilizados como índices (Abel, 1995a). Análise matemática. Todos os elementos do domínio e suas dimensões são analisados numericamente (Michie et al, 1992) para identificar quais as feições que determinam ou influenciam as conclusões. Os elementos e valores computados são utilizados para construir os índices. São os métodos utilizados nos sistemas MEDIATOR (Simpson 1985) e CHEF (Hammond 1986). Índices baseados nas diferenças entre os casos. O sistema analisa casos similares e os indexa especificamente nas características que os diferenciam, como no sistema CYRUS (Kolodner 1983). Métodos de generalização. O método utiliza a definição de casos abstratos a partir dos elementos compartilhados entre diversos casos armazenados. Esses elementos são utilizados para a indexação dos casos abstratos, enquanto que as funções que os diferenciam indexam os casos individuais (Hammond, 1989).

24 24 Métodos de aprendizado indutivo. Identificam os elementos que determinam as conclusões para serem utilizados como índices. Esses métodos são muito difundidos especialmente pela utilização do sistema ReMind (Barletta, 1994) e variações do algoritmo para indução de regras ID3 (Quinlan 1986). Apesar de os métodos automatizados auxiliarem na escolha de bons índices, na prática, os sistemas cujos índices foram definidos artesanalmente tendem a ter melhor desempenho do que aqueles puramente processados (Kolodner, 1993).

25 RECUPERAÇÃO Dada uma descrição de um problema, um algoritmo de recuperação deveria encontrar os casos mais similares à situação atual, utilizando-se dos índices da memória de casos. Os algoritmos baseiam-se nos índices e na organização de memória para dirigir a busca dos casos potencialmente úteis. Os algoritmos mais simples baseiam-se no exame exaustivo das feições dos casos e recuperam o caso com o maior número de feições idênticas. Outros buscam o melhor caso (Kolodner, 1989), utilizando-se de heurísticas para reduzir e dirigir a busca. Entre esses pode-se citar: busca serial (Simoudis et al, 1993), busca hierárquica (Maher e Zhang 1991) e busca por simulação paralela (Domeshek 1993). Ao contrário dos bancos de dados que recuperam registros com campos idênticos, recuperar casos de um banco de casos é uma tarefa bem mais complexa. A seleção envolve julgamento, heurísticas e avaliações sobre feições que não casam completamente, todos demandando um processamento que se torna inaplicável para um volume muito grande de casos. Uma das limitações no desenvolvimento de sistemas comerciais em CBR está exatamente na necessidade de serem desenvolvidos algoritmos de recuperação eficientes quando aplicados a centenas ou milhares de casos. Entre os métodos mais conhecidos de recuperação de casos (Watson e Marir, 1994) estão o algoritmos de vizinhança, de indução, indução guiada por conhecimento e recuperação de padrões, que são utilizados sozinhos ou combinados. Algoritmo de Vizinhança (Nearest Neighbour) Esse método baseia-se na comparação entre um novo caso e aqueles armazenados no banco de utilizando uma soma ponderada das suas características. Para isso é necessário atribuir um peso a cada uma das feições que descrevem o caso e que serão utilizadas na recuperação. Um exemplo de algoritmo de vizinhança é aquele utilizado pelo sistema ReMind (Cognitive Systems 1992) e mostrado na figura 3.

26 26 n i= 1 l R ( ) wi sim f f n i= 1 wi i' i Figura 3 - O Algoritmo de vizinhança. Na equação da figura 3, w corresponde ao peso de uma feição i qualquer que descreve o caso, sim é a função de similaridade e fi l e fi R são os valores da feição i para o novo caso e o caso recuperado, respectivamente. O problema é que muitas vezes o método pode não convergir para uma solução correta e o tempo de recuperação cresce linearmente com o número de casos. Na prática, é efetivo apenas quando o banco de casos é relativamente pequeno, por isso, é comumente utilizado juntamente com outros métodos que reduzem o espaço de busca. Algoritmo de Indução Esse método determina quais feições são mais eficazes em discriminar casos e utiliza essas feições para gerar uma árvore de decisão que organiza a memória de casos. É eficiente quando os casos são comparados através de uma única feição que determina a solução. O algoritmo é utilizado no sistema ID3 de J. Quinlan (1986) para descoberta de conhecimento em grandes bancos de dados (Winston, 1993). Indução Guiada por Conhecimento Este processo utiliza o conhecimento da aplicação para identificar manualmente as feições dos casos que são conhecidas ou consideradas por afetarem a decisão. Normalmente, é utilizado com outros métodos, devido às dificuldades em obter o conhecimento aplicável à indução.

27 27 Recuperação de padrões Utiliza métodos similares às consultas SQL de bancos de dados, recuperando todos os casos que casam em certas feições pré-definidas. Como é muito eficiente, mesmo em grande volume de casos, porém pobre em selecionar o melhor caso, esse método é normalmente utilizado antes de outros algoritmos de recuperação para restringir o número de casos a serem analisados. 3.4 ADAPTAÇÃO A tarefa final do raciocínio baseado em casos é adaptar a solução associada a um caso recuperado para as necessidades do problema corrente. Quando uma situação é fornecida, o algoritmo de recuperação traz o melhor caso que ele encontrar para a memória. Normalmente, o caso selecionado não casa perfeitamente com a descrição do problema do usuário. Existem diferenças entre o problema do usuário e o caso contido no banco que devem ser levadas em conta. O processo de adaptação procura por diferenças salientes entre as duas descrições e aplica regras de forma a compensálas. As regras de adaptação são essencialmente mini-resolvedores de problemas. Em um sistema de CBR para planejamento, a adaptação precisa reconhecer as précondições das etapas que devem ser atingidas e achar os planos para atingi-las. Em um sistema de diagnóstico, é necessário achar falhas nas explicações fornecidas e encontrar as causas não-registradas. Isso pode ser exemplificado no sistema CHEF, onde é planejada uma nova receita a partir de carne e brócolis. O sistema recupera do banco de casos uma receita à base de frango com ervilhas, reconhecendo que gado e frango ambos são carnes e que brócolis e ervilhas ambos são vegetais. Porém, o sistema reconhece a diferença entre os ingredientes e recupera as regras associadas a cada um deles para adaptar uma melhor maneira de cozinhá-los. O processo pode necessitar excluir ou incluir novos passos na receita, ou modificar algumas ações. Para isso, podem ser utilizadas algumas regras genéricas do domínio, como a que diz

28 28 que toda carne deve ser temperada e cortada antes de ser frita, ou específica, como a que afirma que o brócolis deve ser cozido rapidamente na água fervendo para manterse verde e firme. Embora as regras aparentem ser bastante específicas, construí-las para adaptação é muito mais simples do que desenvolver um sistema puramente baseado em regras, desde que os casos armazenados tenham uma razoável cobertura sobre o domínio do problema. Na verdade, a adaptação é feita de maneira dirigida a partir de um conjunto menor de regras, resultando em uma maior eficiência e acuracidade da solução. Riesbeck e Schank (1989) usam a analogia com uma tabela de logaritmos para demonstrar o papel de uma base de casos. É ensinado na escola que o logaritmo de 50 na base 10 é igual a 1,69897, porque 10 elevado a 1,69897 é igual a 50. Na prática, para resolver um logaritmo 48, por exemplo, busca-se em uma tabela pelo resultado. Se o número estiver lá, o problema foi solucionado. Senão, busca-se na tabela dois números mais próximos daquele procurado, como 45 e 50, e faz-se uma razão entre os logaritmos dos dois para obter o valor do logaritmo de 48. O processo de calcular a razão é muito mais simples do que o de calcular o logaritmo todo, desde que a tabela abranja o intervalo necessário de números e os intervalos entre esses sejam convenientemente pequenos. A tabela de logaritmos desse exemplo compara-se a uma base de casos, enquanto que os cálculos para chegar aos valores não contidos na tabela correspondem aos métodos de adaptação. Da mesma forma que em uma tabela de logaritmos, uma base de casos só será eficiente em diminuir o espaço de busca de um problema se os casos contidos na base distribuirem-se uniformemente pelo domínio da aplicação. Em geral, existem dois tipos de adaptação em CBR. Adaptação estrutural As regras de adaptação são aplicadas sobre a solução armazenada junto aos casos, como utilizado pelos sistemas JUDGE (Bain 1986) e CHEF (Hammond, 1986). É o mecanismo possível de ser utilizado quando as soluções associadas aos casos não são bem compreendidas. Adaptação derivacional

29 29 O algoritmo reusa os algoritmos, métodos ou regras que geraram a solução que consta no banco de casos para gerar uma nova solução para o problema corrente. Nesse método, a sequência que construiu a solução original deve ser armazenada juntamente com o caso na memória de casos. Ao contrário da adaptação estrutural, derivar soluções exige uma perfeita compreensão dos casos armazenados e da forma como as soluções associadas foram geradas. Esse é o método utilizado no sistema MEDIATOR (Simpson 1985). Para gerar soluções aceitáveis a partir das informações fornecidas pelo usuário, um sistema de CBR pode combinar as duas formas de adaptação, implementadas através de diferentes técnicas (Watson e Marir, 1994). Adaptação nula. O sistema apenas fornece a solução associada ao melhor caso recuperado, sem qualquer modificação. É uma técnica útil quando a solução do problema é simples mas exige mecanismos complexos de raciocínio para atingi-la. Em um problema de concessão de crédito, por exemplo, embora seja necessário coletar muitas informações do usuário, a solução final de conceder ou rejeitar o crédito é direta. Esse é o método utilizado no sistema para diagnóstico de cardiopatias congênitas (Reategui et al 1995). Ajuste por parâmetros. O algoritmo compara parâmetros pré-determinados entre o caso recuperado e o novo para modificar a solução armazenada na direção correta. É o método utilizado no sistema JUDGE (Bain 1986) que recomenda sentença mais curtas para crimes menos violentos. Abstração e reespecialização. O mecanismo utiliza regras gerais para fazer modificações simples sobre soluções anteriores e mecanismos de abstração complexos quando necessário gerar soluções totalmente novas e criativas. É utilizado no sistema de planejamento PLEXUS (Alterman 1988). Adaptação baseada em crítica.

30 30 O algoritmo utiliza informações do domínio para buscar combinação de feições que podem causar problemas na solução, e corrige essas distorções. O sistema PERSUADER (Sycara 1987) utiliza esse algoritmo de crítica sobre a solução gerada inicialmente pelas demais técnicas descritas acima. Reinstanciação. Utiliza feições dos caso recuperado do banco com novos valores adequado ao problema do usuário, como no sistema CHEF (Kolodner, 1993) que a partir de uma receita onde a carne é de gado, gera uma nova com o atributo carne modificado para frango. Substituição derivacional. Repete o método, ou parte do método que gerou uma solução armazenada em um caso similar de forma a obter a solução para o novo caso, substituindo os atributos distintos. Como no sistema BOGART (Mostow et al. 1992) que reaplica os planos de geração de projetos para novos problemas. Reparo guiado por modelo. Utiliza um modelo causal para adaptar as soluções armazenadas ao problema do usuário. Utilizado no sistema CELIA para aprendizado e diagnóstico de problemas mecânicos em automóveis (Redmond 1989). Substituição baseada em casos: Usa casos também para sugerir a adaptação da solução aos novos problemas, como no sistema ACBARR (Moormam e Ram, 1992) para navegação de robôs.

31 31 4. COMPARAÇÃO DE RACIOCÍNIO BASEADO EM CASOS COM RACIOCÍNIO BASEADO EM MODELOS Tanto CBR como MBR armazenam uma representação do domínio e raciocinam sobre essa representação para resolver problemas. Ambos buscam armazenar conhecimento como grandes agrupamentos de informações a serem utilizadas juntas. O conteúdo desse conhecimento e a forma de como é utilizado é bastante distinta no entanto. Conhecimento geral x específico: MBR busca capturar uma representação do mundo da forma mais genérica e abstrata possível, porém, completa para aquele nível de abstração. CBR armazena conhecimento específico e episódico sobre o domínio, que corresponderia a instâncias da representação de MBR, geralmente sem cobrir todo o espaço de solução (Figura 4) (Para compreender as duas formas de analisar o domínio do problema pode-se fazer uma analogia com os métodos da Engenharia de Software, considerando MBR como um método de representação de conhecimento top-down e CBR como um método bottom-up. ) NÍVEL DE ABSTRAÇÃO MODELO DO DOMINIO CASOS Figura 4- Representação do domínio por modelos e por casos. Representação x inferência: MBR enfatiza os aspectos descritivos do domínio, contendo representações completas e robustas sobre os objetos, mas não

Raciocínio Baseado em Casos. Baseado no material do prof. Luis Otavio Alvares

Raciocínio Baseado em Casos. Baseado no material do prof. Luis Otavio Alvares INE5430 Inteligência Artificial Tópico: Raciocínio Baseado em Casos Baseado no material do prof. Luis Otavio Alvares (C) - Prof. Mauro Roisenberg 18/09/2010 1 Raciocínio Baseado em Casos CBR (Case-Based

Leia mais

Raciocínio Baseado em Casos

Raciocínio Baseado em Casos Raciocínio Baseado em Casos Augusto Cesar Castoldi, Marcos de Oliveira dos Santos. Bacharéis em Ciências da Computação 2º Semestre, 2002. Departamento de Informática e Estatística (INE) Universidade Federal

Leia mais

Sistemas Baseados em Conhecimento

Sistemas Baseados em Conhecimento Sistemas Baseados em Conhecimento Profa. Josiane M. P. Ferreira Baseado no capítulo 2 do livro Sistemas Inteligentes Fundamentos de Aplicações, organizadção: Solange Oliveira Rezende, ed. Manole, 2005.

Leia mais

Inteligência Artificial. Conceitos Gerais

Inteligência Artificial. Conceitos Gerais Inteligência Artificial Conceitos Gerais Inteligência Artificial - IA IA é um campo de estudo multidisciplinar e interdisciplinar, que se apóia no conhecimento e evolução de outras áreas do conhecimento.

Leia mais

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina: Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: carlos36_batista@yahoo.com.br Estruturas de dados Programa da disciplina Estruturas de dados - referências

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Metodologia CommonKADS Utilizando um formalismo para modelar conhecimento Prof. Paulo Martins Engel História dos sistemas de conhecimento Máquinas de busca de propósito geral (1965)

Leia mais

Sumário Raciocínio Baseado em Casos

Sumário Raciocínio Baseado em Casos Universidade de São Paulo Instituto de Ciências Matemáticas e Computação Sumário Raciocínio Baseado em Casos Introdução Representação de Casos Similaridade Ciclo RBC Programa de Aperfeiçoamento de Ensino

Leia mais

Sistemas Especialistas

Sistemas Especialistas Agenda Sistemas Especialistas Revisão Conceitos Básicos Entender uma ferramenta para S.E. Sistemas de Informação Inteligentes Prof. Esp. MBA Heuber G. F. Lima Aula2 Page 2 Conceitos I.A. Sistemas Especialistas

Leia mais

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados Gestão da Informação (07182) Instituto de Ciências Econ., Adm. e Contábeis (ICEAC) Universidade Federal do Rio Grande (FURG) Gestão de Dados As organizações

Leia mais

Raciocínio Baseado em Casos (Case Based Reasoning CBR)

Raciocínio Baseado em Casos (Case Based Reasoning CBR) Inteligência Artificial Escola de Verão 2007 Laboratório Associado de Computação e Matemática Aplicada LAC Raciocínio Baseado em Casos (Case Based Reasoning CBR) www.lac.inpe.br/~demisio/ia_lac.html Paradigma

Leia mais

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A

Leia mais

Sumário Ciclo RBC. Ciclo RBC Recuperação. Objetivo. Recuperação Reutilização Revisão Retenção

Sumário Ciclo RBC. Ciclo RBC Recuperação. Objetivo. Recuperação Reutilização Revisão Retenção Universidade de São Paulo Instituto de Ciências Matemáticas e Computação Sumário Ciclo RBC Recuperação Reutilização Revisão Retenção Programa de Aperfeiçoamento de Ensino Estagiária: Valéria de Carvalho

Leia mais

Memória. Memória Cache

Memória. Memória Cache Memória Memória Cache Revisão - Memória Principal Memória que armazena os dados e programas em linguagem de máquina em execução corrente Razoavelmente barata Tempo de acesso da ordem de nano-segundos a

Leia mais

Inteligência Artificial. Raciocínio Baseado em Casos Conceitos Básicos

Inteligência Artificial. Raciocínio Baseado em Casos Conceitos Básicos Universidade Estadual do Oeste do Paraná Centro de Ciências Exatas e Tecnológicas Curso de Bacharelado em Ciência da Computação Inteligência Artificial Raciocínio Baseado em Casos Conceitos Básicos Aula

Leia mais

Sistemas Especialistas (SE)

Sistemas Especialistas (SE) Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Sistemas Especialistas (SE) Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Sistemas Especialistas Raciocínio e Mecanismos de Inferência Arquitetura de um SE típico Interface com o Usuário: Perguntas e respostas; Linguagem natural Editor da Base de Conhecimento

Leia mais

Inteligência Artificial. Categorias de Conhecimento

Inteligência Artificial. Categorias de Conhecimento Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Categorias de Conhecimento Roteiro Conclusão

Leia mais

Linguagens Documentárias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

Linguagens Documentárias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Linguagens Documentárias Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Contexto Organização da Informação...... procura criar métodos e instrumentos para elaborar

Leia mais

onio Baseado em Casos

onio Baseado em Casos Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Departamento de Sistemas e Computação Julho de 2002 TCC 2002/1-48 Módulo de Raciocíonio onio Baseado em Casos em uma Ferramenta de

Leia mais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído

Leia mais

04/03/2016 CONCEITOS DE DECISÃO E O ENFOQUE GERENCIAL DA PESQUISA OPERACIONAL PESQUISA OPERACIONAL: CARACTERÍSTICAS IMPORTANTES:

04/03/2016 CONCEITOS DE DECISÃO E O ENFOQUE GERENCIAL DA PESQUISA OPERACIONAL PESQUISA OPERACIONAL: CARACTERÍSTICAS IMPORTANTES: CONCEITOS DE DECISÃO E O ENFOQUE GERENCIAL DA PESQUISA OPERACIONAL CAPÍTULO 1 em: ANDRADE, Eduardo L. de; INTRODUÇÃO À PESQUISA OPERACIONAL. 4 a. ed. Rio de Janeiro: Editora LTC PESQUISA OPERACIONAL: Conjunto

Leia mais

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema. Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Ciclo de Vida - Fluxos Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Raciocínio Baseado em Casos 4. Reutilização de Casos

Raciocínio Baseado em Casos 4. Reutilização de Casos Raciocínio Baseado em Casos 4. Reutilização de Casos Prof. Aldo von Wangenheim Disciplinas: - Raciocínio Baseado em Casos - PPGCC/INE/UFSC - Sistemas de Raciocínio e Gestão Baseados em Casos - EGC/UFSC

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer

Leia mais

7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS

7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS 7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS Autor(es) LIDIA MARTINS DA SILVA Orientador(es) ANA ESTELA ANTUNES DA SILVA 1. Introdução

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Sistemas Especialistas Raciocínio e Mecanismos de Inferência Sistemas Especialistas Um programa de computador inteligente que usa conhecimento e inferência para resolver problemas

Leia mais

4 Análise de Dados. 4.1.Procedimentos

4 Análise de Dados. 4.1.Procedimentos 4 Análise de Dados 4.1.Procedimentos A idéia inicial para a comparação dos dados foi separá-los em series de 28 ensaios, com a mesma concentração, para depois combinar esses ensaios em uma única série.

Leia mais

1. INTRODUÇÃO A MODELAGEM DE DADOS

1. INTRODUÇÃO A MODELAGEM DE DADOS 1. INTRODUÇÃO A MODELAGEM DE DADOS Para se construir uma casa ou um prédio de qualidade, é essencial fazer um planejamento detalhado, com a finalidade de pensar sobre as formas de construção, fazer estimativas

Leia mais

RACIOCÍNIO BASEADO EM CASOS APLICADO PARA AUXÍLIO NA SELEÇÃO DE CURSOS DO INSTITUTO FEDERAL CATARINENSE

RACIOCÍNIO BASEADO EM CASOS APLICADO PARA AUXÍLIO NA SELEÇÃO DE CURSOS DO INSTITUTO FEDERAL CATARINENSE RACIOCÍNIO BASEADO EM CASOS APLICADO PARA AUXÍLIO NA SELEÇÃO DE CURSOS DO INSTITUTO FEDERAL CATARINENSE. Autores: Munyque MITTELMANN, Daniel Gomes SOARES. Identificação autores: Acadêmica do IFC-Rio do

Leia mais

Paradigmas de Representação de Conhecimento

Paradigmas de Representação de Conhecimento Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Paradigmas de Representação de Conhecimento Inteligência Artificial Site: http://jeiks.net E-mail:

Leia mais

3 Medição de Software

3 Medição de Software 3 Medição de Software À medida que a engenharia de software amadurece, a medição de software passa a desempenhar um papel cada vez mais importante no entendimento e controle das práticas e produtos do

Leia mais

132 6 Conclusão 6.1. Contribuições da Tese

132 6 Conclusão 6.1. Contribuições da Tese 132 6 Conclusão Esta tese teve como objetivo principal o estudo da aplicação de transformações para manter a rastreabilidade de um sistema de software. Esta abordagem permite a captura automática das informações

Leia mais

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos ARCHITECTURAL DESIGN Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Tópicos abordados Arquitetura de Software Projeto de arquitetura Vantagens de arquitetura

Leia mais

BANCO DE DADOS - MODELAGEM DE DADOS

BANCO DE DADOS - MODELAGEM DE DADOS Colégio Estadual João Manoel Mondrone Ensino Fundamental, Médio, Profissional e Normal Técnico em Informática BANCO DE DADOS - MODELAGEM DE DADOS Profª Ana Paula Mandelli O QUE É MODELAGEM DE DADOS? Significa

Leia mais

Seleção de Atributos 1

Seleção de Atributos 1 Seleção de Atributos 1 Tópicos Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Seleção de atributos antes do aprendizado Benefícios Abordagens automáticas

Leia mais

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado Definição de Banco de Dados De uma forma genérica, um banco de dados é definido como uma coleção de dados relacionados. Os dados são

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

Leia mais

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO CURSO ANÁLISE E DESENVOLVIMENTO DE SISTEMA MODELO DOS PROCESSOS DE SOFTWARE ALUNO SAMUEL BRAGA LOPES SUMÁRIO - AGENDA INTRODUÇÃO MODELO CASCATA

Leia mais

Engenharia de Software. Projeto de Arquitetura

Engenharia de Software. Projeto de Arquitetura Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra

Leia mais

Sistemas de Computação e de Informação

Sistemas de Computação e de Informação Sistemas de Computação e de Informação SLIDE 9 Professor Júlio Cesar da Silva juliocesar@eloquium.com.br site: http://eloquium.com.br/ twitter: @profjuliocsilva Linguagens de Programação Os computadores

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Engenharia de requisitos Estabelece os serviços que o cliente requer de um sistema e as restrições sob as quais tal sistema operará e será desenvolvido. Tais serviços e restrições

Leia mais

Padrão para Especificação de Requisitos de Produto de Multimídia

Padrão para Especificação de Requisitos de Produto de Multimídia Padrão para Especificação de Requisitos de Produto de Multimídia 1 Introdução 1.1 Escopo do documento Sugere-se aqui uma estrutura para a Especificação de Requisitos de Produto de Multimídia (ERPM). Esta

Leia mais

Hashing: conceitos. Hashing

Hashing: conceitos. Hashing Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado

Leia mais

Introdução a Orientação a Objetos

Introdução a Orientação a Objetos Introdução a Orientação a Objetos Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 01 - Introdução 1 Qualidade de Software Obter

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini   / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: GESTÃO DE PROJETOS Aula N : 05 Tema: Gerenciamento

Leia mais

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Sistemas de Informação e Decisão. Douglas Farias Cordeiro Sistemas de Informação e Decisão Douglas Farias Cordeiro Decisão Tomamos decisões a todo momento! O que é uma decisão? Uma decisão consiste na escolha de um modo de agir, entre diversas alternativas possíveis,

Leia mais

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Paradigma Simbólico Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Revisão da aula anterior: definição de IA Podemos associar o termo IA com: Parte da ciência da computação

Leia mais

Metodologia Científica. Construindo Saberes

Metodologia Científica. Construindo Saberes Metodologia Científica Construindo Saberes Trabalho com Projetos A pesquisa promove saberes Estímulo ao desenvolvimento da ciência Construção e busca por novos conhecimentos Buscar novos horizontes Desenvolvimento

Leia mais

Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO

Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO Introdução A qualidade do armazenamento dos dados, permitem uma melhor extração de informações, e consequentemente,

Leia mais

2 Reconhecimento Facial

2 Reconhecimento Facial 2 Reconhecimento Facial Em termos gerais, o reconhecimento facial é o processo pelo qual se mede o grau de similaridade entre duas imagens faciais com o proposito de identificar a um indivíduo ou de verificar

Leia mais

Engenharia de Software.

Engenharia de Software. Engenharia de Software Prof. Raquel Silveira O que é (Rational Unified Process)? É um modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software

Leia mais

MAPA CONCEITUAL E A MODELAGEM CONCEITUAL DE SISTEMAS DE HIPERTEXTO

MAPA CONCEITUAL E A MODELAGEM CONCEITUAL DE SISTEMAS DE HIPERTEXTO hipertexto MAPA CONCEITUAL E A MODELAGEM CONCEITUAL DE SISTEMAS DE HIPERTEXTO Profa. Gercina Lima 2 DEFINIÇÕES: Modelagem conceitual para sistemas de O mapeamento conceitual envolve a identificação de

Leia mais

Documentação de Software

Documentação de Software ISO/IEC 12207: Documentação de Software Registra a evolução do software para que sejam criadas as bases necessárias para uma melhor utilização e manutenção do software Estima-se que de 20% a 30% de todo

Leia mais

ELEMENTOS ORGÂNICOS DE MÁQUINAS I AT-096

ELEMENTOS ORGÂNICOS DE MÁQUINAS I AT-096 Universidade Federal do Paraná Curso de Engenharia Industrial Madeireira ELEMENTOS ORGÂNICOS DE I AT-096 Dr. Alan Sulato de Andrade alansulato@gmail.com CONCEITO: "Projeto é um empreendimento planejado

Leia mais

4 Processo de Transformação

4 Processo de Transformação Tecnologias Relacionadas 43 4 Processo de Transformação Com a constante mudança nos requisitos (funcionais e não funcionais) do domínio da aplicação, há uma grande necessidade de que os sistemas estejam

Leia mais

ENGENHARIA DE USABILIDADE E INTERFACES

ENGENHARIA DE USABILIDADE E INTERFACES Unidade III Desenvolvimento de Projetos de IHC Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta Unidade Técnicas de Concepção Técnicas de Modelagem Objetivo Demonstrar técnicas

Leia mais

CBR (Case-Based Reasoning)

CBR (Case-Based Reasoning) Raciocínio Baseado em s CBR (Case-Based Reasoning) Raciocínio Baseado em s Paradigma para resolução de problemas Para resolver um novo problema, considera a solução utilizada em problemas similares Uma

Leia mais

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS Disciplina: Banco de Dados Prof: Márcio Palheta,

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Aprendizado de Máquina André C. P. L. F. de Carvalho Posdoutorando: Isvani Frias-Blanco ICMC-USP Agrupamento de dados Tópicos Agrupamento de dados Dificuldades em agrupamento Algoritmos de agrupamento

Leia mais

Fabrício Jailson Barth BandTec

Fabrício Jailson Barth BandTec Introdução à Inteligência Artificial Fabrício Jailson Barth fabricio.barth@bandtec.com.br BandTec 1 o semestre de 2012 Objetivos e Sumário O que é Inteligência Artificial (IA)? Objetivos da IA. Influência

Leia mais

Inteligência Artificial. Aula 1 Prof. Nayat Sánchez Pi

Inteligência Artificial. Aula 1 Prof. Nayat Sánchez Pi Inteligência Artificial Aula 1 Prof. Nayat Sánchez Pi Curso: Inteligência Artificial Página web: http://nayatsanchezpi.com Material: Livro texto: Inteligência Artiicial, Russell & Norvig, Editora Campus.

Leia mais

A ciência da cognição

A ciência da cognição A ciência da cognição A Psicologia Cognitiva Cognição As pessoas pensam. Psicologia cognitiva Os cientistas pensam a respeito de como as pessoas pensam. Estudantes de psicologia cognitiva As pessoas pensam

Leia mais

Aquisição de Conhecimento

Aquisição de Conhecimento Aquisição de Conhecimento Inteligência Artificial Thiago A. S. Pardo Solange O. Rezende Carolina M. Monard 1 CONSTRUÇÃO DE BASES DE CONHECIMENTO Fonte de Conhecimento Conhecimento Adquirido Aquisição do

Leia mais

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru 1 Introdução Atualmente a demanda pela construção de novos sistemas de software tem aumentado. Junto com esse aumento também cresce a complexidade das soluções que estão sendo desenvolvidas, o que torna

Leia mais

Aprendizagem de Máquina. Prof. Júlio Cesar Nievola PPGIA - PUCPR

Aprendizagem de Máquina. Prof. Júlio Cesar Nievola PPGIA - PUCPR Aprendizagem de Máquina Prof. Júlio Cesar Nievola PPGIA - PUCPR Introdução Justificativa Recente progresso em algoritmos e teoria Disponibilidade crescente de dados online Poder computacional disponível

Leia mais

Professor Emiliano S. Monteiro

Professor Emiliano S. Monteiro Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer

Leia mais

5 Usando as Representações de Design Rationale

5 Usando as Representações de Design Rationale 5 Usando as Representações de Design Rationale Como mencionamos anteriormente, representar design rationale em uma linguagem formal usando o modelo formal dos artefatos nos permite atribuir semântica ao

Leia mais

Engenharia Software. Ení Berbert Camilo Contaiffer

Engenharia Software. Ení Berbert Camilo Contaiffer Engenharia Software Ení Berbert Camilo Contaiffer Características do Software Software não é um elemento físico, é um elemento lógico; Software é desenvolvido ou projetado por engenharia, não manufaturado

Leia mais

as fases contemplam todas as etapas do ciclo de desenvolvimento (requisitos, análise, projeto, implementação, teste e validação);

as fases contemplam todas as etapas do ciclo de desenvolvimento (requisitos, análise, projeto, implementação, teste e validação); Título : B2 Processo de desenvolvimento de Sistemas Conteúdo : A UML estabelece uma abordagem para a construção, o desenvolvimento e a manutenção de software. Atualmente, metodologias utilizadas no desenvolvimento

Leia mais

Inteligência Artificial. Aula 2

Inteligência Artificial. Aula 2 Inteligência Artificial Aula 2 Retomada da aula passada O que é Inteligência Artificial Inteligência Artificial é o estudo de como fazer os computadores realizarem coisas que, no momento, as pessoas fazem

Leia mais

Avaliação de Usabilidade Referências

Avaliação de Usabilidade Referências Avaliação de Usabilidade Referências Avaliação de usabilidade Engenharia de Usabilidade Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação - UFMG Hix, D.; Hartson, H.

Leia mais

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

INE 5101 Simulação Discreta. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

INE 5101 Simulação Discreta. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE INE 5101 Simulação Discreta 1 Objetivos do curso Ao final deste curso você deverá saber: O que é modelagem e simulação de sistemas; Como funcionam programas de simulação; Como utilizar corretamente uma

Leia mais

CICLO DE VIDA DE SOFTWARE

CICLO DE VIDA DE SOFTWARE WESLLEYMOURA@GMAIL.COM CICLO DE VIDA DE SOFTWARE ANÁLISE DE SISTEMAS Introdução ao ciclo de vida de software Qualificar um produto é muito bom para que tenhamos certeza de que há seriedade e preocupação

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Aprendizado de Máquina Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto

Leia mais

Aprendizado de Máquina (Machine Learning)

Aprendizado de Máquina (Machine Learning) Ciência da Computação (Machine Learning) Aula 01 Motivação, áreas de aplicação e fundamentos Max Pereira Nem todo conhecimento tem o mesmo valor. O que torna determinado conhecimento mais importante que

Leia mais

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos Processos de engenharia de requisitos Processos de Engenharia de Requisitos Os requisitos e as formas de obtê-los e documentálos variam drasticamente de um projeto para o outro Contudo, existe uma série

Leia mais

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, 1 Introdução Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, os desafios encontrados durante o desenvolvimento

Leia mais

ENGENHARIA DE USABILIDADE Unidade I Conceituação. Luiz Leão

ENGENHARIA DE USABILIDADE Unidade I Conceituação. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Introdução 1.1 Ergonomia 1.1.1 Ergonomia física e cognitiva 1.2 Usabilidade e Engenharia de Usabilidade 1.3 Interação Humano-Computador. Unidade II

Leia mais

Árvores Genéricas de Busca

Árvores Genéricas de Busca Árvores Genéricas de Busca Árvores não binárias também podem ser usadas para buscar elementos. Essas árvores são chamadas de árvores genéricas de busca, e elas podem ser de dois tipos: árvore de busca

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

3 Aprendizado por reforço

3 Aprendizado por reforço 3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Fundamentos em Bancos de Dados Relacionais Wladmir Cardoso Brandão www.wladmirbrandao.com Departamento de Ciência da Computação (DCC) Instituto de Ciências Exatas e Informática

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs

Leia mais

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos Banco de dados BD Banco de dados Objetivo: Armazenar dados Consultar dados (dentro de um determinado contexto) gerando informações úteis Reter os dados de forma que possam ser utilizados em outros momentos

Leia mais

Inteligência Artificial

Inteligência Artificial Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Pós-Graduação em Ciência da Computação Inteligência Artificial Representação do Conhecimento (Parte I) Prof. a

Leia mais

Engenharia de Software Aula 2.3 Processos da Engenharia de Requisitos. Prof. Bruno Moreno

Engenharia de Software Aula 2.3 Processos da Engenharia de Requisitos. Prof. Bruno Moreno Engenharia de Software Aula 2.3 Processos da Engenharia de Requisitos Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Engenharia de Requisitos O objetivo do processo de Engenharia de Requisitos é criar e manter

Leia mais

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos Banco de dados BD Dados x Informações Banco de dados Objetivo: Armazenar dados Consultar dados (dentro de um determinado contexto) gerando informações úteis Reter os dados de forma que possam ser utilizados

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Aprendizado de Máquina O que é Aprendizado? Memorizar alguma coisa Aprender fatos por meio de observação e exploração Melhorar habilidades motoras/cognitivas por meio de prática Organizar novo conhecimento

Leia mais

Documento de Requisitos*

Documento de Requisitos* * Rosana T. Vaccare Braga *slides adaptados a partir do material da Profa Ellen Francine Barbosa Processo de Engenharia de Requisitos Documento de requisitos Processo de Engenharia de Requisitos Estudo

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 6 http://www.ic.uff.br/~bianca/engsoft2/ Aula 6-10/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14 do

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais