Artigo - gsigma - Universidade Federal de Santa Catarina
Transcrição
Artigo - gsigma - Universidade Federal de Santa Catarina
ARTIGO A UTILIZAÇÃO DE INTELIGÊNCIA ARTIFICIAL (IA) EM SISTEMAS DE INFORMAÇÃO (SI) CRICIÚMA, JUNHO DE 2008. 2 A UTILIZAÇÃO DE INTELIGÊNCIA ARTIFICIAL (IA) EM SISTEMAS DE INFORMAÇÃO (SI) Carla de Melo Marcílio1, Daiane De Nez Manarin1, João Luiz Osteto1, Mirian de Fátima Bueno Fiorenza1, [email protected] Acadêmicos em Gestão da Tecnologia da Informação, Instituto Catarinense de PósGraduação. 1 2 Professor orientador, Instituto Catarinense de Pós-Graduação (ICPG). [email protected]¹, [email protected]¹, [email protected]¹, [email protected]¹, [email protected]² Abstract. Keywords: Artificial intelligence; Systems of Information. Resumo A proposta deste trabalho visa contribuir para a discussão crítica sobre a utilização de Inteligência Artificial (IA) em Sistemas de Informação (SI). Palavras-chave: Inteligência Artificial; Sistemas de Informação. 1 INTRODUÇÃO Inteligência Artificial é uma das ciências mais recentes, que atualmente abrange uma variedade enorme de subcampos, que vão desde áreas de uso geral, como aprendizado e percepção, até tarefas mais específicas, como jogos de xadrez. A IA sistematiza e automatiza tarefas intelectuais e, portanto, é potencialmente relevante para qualquer esfera da atividade intelectual humana. 2 A UTILIZAÇÃO DE INTELIGÊNCIA ARTIFICIAL (IA) EM SISTEMAS DE INFORMAÇÃO (SI) Nos próximos anos, as técnicas de programação em Inteligência Artificial invadirão todas as áreas da tecnologia dos computadores que vêm contribuindo para avanços substantivos nos diversos campos do conhecimento cientifico e também têm sido responsáveis pelo desenvolvimento e pela abertura de novas frentes de pesquisa que sem eles não teriam sido cogitadas. Os sistemas de Inteligência Artificial estão aparecendo em todos os lugares, na indústria da engenharia dos computadores, nos grandes negócios, na educação e na área militar. Capazes de subsidiar a resolução rápida e precisa de uma infinidade de problemas científicos complexos, de substituir o homem em tarefas arriscadas, repetitivas e estafantes, de auxiliar o usuário comum nas tarefas cotidianas e de proporcionar lazer e entretenimento a usuários de todas as idades, essas máquinas, são responsáveis pela massa de dados que circula pela intrincada rede de computadores que, hoje, materializa-se, sobretudo, na Internet. As oportunidades profissionais para as pessoas que conhecem Inteligência Artificial são virtualmente ilimitadas. E, dada à velocidade com que as inovações 3 tecnológicas chegam ao mercado atualmente, não demorará muito para que conhecer Inteligência Artificial seja um requisito para qualquer pessoa. Dentre os grandes desafios que essas máquinas lançaram aos seus arquitetos, destaca-se o desafio de se criar meios para tornar a comunicação homem-máquina mais natural e intuitiva. Uma das soluções para esse desafio, e, hoje, implementada em todos os computadores, são as interfaces gráficas e multicoloridas que servem para mediatizar a comunicação com o computador. Essas interfaces são compostas por milhares de linhas de código de máquina capazes de codificar as instruções necessárias para fazer com que o computador realize tarefas em termos de objetos gráficos, isto é, em termos de janelas, ícones, menus, caixas de diálogo, imagens, entre outros recursos. Na realidade, essas interfaces gráficas, como máscaras, escondem a única linguagem decifrável pelo computador: a linguagem de máquina que, em última instância, representa toda a informação manipulada pelo sistema computacional em termos de estruturas representadas exclusivamente por cadeias de “zeros e uns”. 3 INTELIGÊNCIA ARTIFICIAL EM DATA MINING (DM) Segundo Evsukoff (2005), Data Mining, Figura 1, é uma atividade multidisciplinar que envolve diversas áreas. Fornece as ferramentas para descoberta de conhecimento em grandes massas de dados. Ele diz que DM não é uma tecnologia nova, mas um campo de pesquisa multidisciplinar, envolvendo estatistica, aprendizado de máquinas, banco de dados, sistemas especialistas, técnicas de visualização de dados e computação de alto desempenho de forma fortemente acoplada. Figura 1. Data Mining. Fonte: EVSUKOFF (2005). A segunda linhagem do Data Mining (DM), é a Inteligência Artificial (IA), que é construída a partir dos fundamentos da heurística, em oposto à estatística, tenta imitar a maneira como o homem pensa na resolução dos problemas estatísticos. Data Mining (ou mineração de dados) é o processo de extrair informação válida, previamente desconhecida e de máxima abrangência a partir de grandes bases de dados, usando-as para efetuar decisões cruciais. Pode ser considerada uma forma de descobrimento de conhecimento em bancos de dados (KDD - Knowledge 4 Discovery in Databases), área de pesquisa de bastante evidência no momento, envolvendo Inteligência Artificial e Banco de Dados (COUTINHO, 2003). 3.1 Machine Learning (Aprendizagem de Máquina) E a terceira e última linhagem do DM, segundo Coutinho (2003), é a chamada machine learning, que pode ser melhor descrita como o casamento entre a estatística e a IA. Suas técnicas foram largamente cooptadas pela machine learning, que é capaz de conseguir mais aplicações devido às suas combinações entre heurística e análise estatística. A machine learning tenta fazer com que os programas de computador “aprendam” com os dados que eles estudam, tal que esses programas tomem decisões diferentes baseadas nas características dos dados estudados, usando a estatística para os conceitos fundamentais, e adicionando mais heurística avançada da IA e algoritmos para alcançar os seus objetivos. 3.2 Técnicas usadas juntas para estudar os Dados e achar Tendências e Padrões De muitas formas, o DM é fundamentalmente a adaptação das técnicas da Machine Learning para as aplicações de negócios. Desse modo, podemos descrevelo como a união dos históricos e dos recentes desenvolvimentos em estatística, em IA e Machine Learning. Essas técnicas são usadas juntas para estudar os dados e achar tendências e padrões nos mesmos. Hoje, o DM tem experimentado uma crescente aceitação nas ciências e nos negócios que precisam analisar grandes volumes de dados e achar tendências que eles não poderiam achar de outra forma. 4 REDES NEURAIS EM DATA MINING (DM) Essa tecnologia é a que oferece o mais profundo poder de mineração, mas é também a mais difícil de entender. As redes neurais tentam construir representações internas de modelos ou padrões achados nos dados, mas essas representações não são apresentadas para o usuário. Com elas, o processo de descoberta de padrões é tratado pelos programas de DM dentro de um processo “caixa-preta”. Para construir um modelo neural, primeiramente é necessário "adestrar" a rede em um dataset de treinamento e então usar a rede já treinada para fazer predições, monitorando o dataset durante a fase de treinamento para checar seu progresso. Durante a fase de treinamento, a rede estabelece os pesos que determinam o comportamento da camada intermediária. 5 DATA MINING E BUSINESS INTELLIGENCE Nos tempos atuais, as organizações têm no conhecimento acumulado de seu quadro de pessoal, um patrimônio muito importante para seus empreendimentos futuros e para sua própria sobrevivência face às constantes concorrências de mercado. Processos como downsizing1, reengenharia e aposentadorias prematuras, têm sido utilizados constantemente pelas grandes instituições, comprometendo a 1 Downsizing (achatamento): é o enxugamento de pessoal, delegando maior responsabilidade a gerentes e funcionários de níveis mais baixos. 5 memória institucional da empresa. A tecnologia dos sistemas especialistas é ideal para atingir estes propósitos. Os processos e experiências funcionais da organização podem ser documentados através do uso de sistemas especialistas. A tecnologia do conhecimento poderá ser utilizada para capitalizar o conhecimento como um produto estratégico para as corporações. 5.1 Aplicações de DM Algumas aplicações de Data Mining segundo Evsukoff (2005): Classificação de Imagens de Sensoriamento Remoto; Classificação de Imagens Médicas; Caracterização de reservatórios de Petróleo; Classificação de seqüências de DNA (bioinformática); Marketing Direcionado (CRM); Detecção de Fraudes; Modelos de chuva-vazão; Modelos de previsão de carga; Diagnóstico de processos. 6 INTELIGÊNCIA ARTIFICIAL E GESTÃO Para gerar inteligência, é necessário armazenar, analisar e disseminar conhecimento dentro da empresa. Com o crescente uso da Internet, o conhecimento está cada vez mais disponível em meios eletrônicos, e a forma mais utilizada são os textos. Entretanto, na maioria dos casos, as pessoas e as organizações não sabem como analisar esta documentação textual para extrair informação nova e útil (combinação) e acabam desperdiçando importantes fontes de conhecimento. Para minimizar este tipo de problema, surgiu a tecnologia de Text Mining. 6.1 Tecnologia de Text Mining Text mining é definido como um processo que utiliza métodos para navegar, organizar, achar e descobrir informação em bases textuais escritas em linguagem natural. Com text mining é possível manipular mais facilmente informações não estruturadas como notícias, textos em websites, blogs e documentos em geral (Cortex Intelligence, 2007). O desafio do desenvolvimento de tecnologias de text mining vem da necessidade de se ter conhecimentos específicos sobre áreas distintas como estatística, ciência da computação, lingüística e ciência cognitiva. O segredo de um solução de text mining completa é combinar técnicas de Engenharia de Software, Machine Learning, Information Retrieval e Data Mining (Cortex Intelligence, 2007). 6.2 Componentes de Text Mining • • • Análise de Reputação: reconhece qualificadores associados às entidades e identifica se são positivos ou negativos. Extrator de Relacionamentos: reconhece relações entre organizações, pessoas, cargos e temas, identificando a natureza e força destes relacionamentos. Extrator de Fatos: através de padrões reconhecidos anteriormente, pode identificar a realização de um evento, o lançamento de um novo produto, a aquisição de uma empresa ou mesmo a contratação de um executivo. 6 • • • • • Desambigüização: reduz erros de interpretação em buscas e na categorização de textos ao identificar não somente o termo de interesse, mas também o contexto ao qual está associado. Robôs de Coleta Web: navega pelas páginas desejadas na Internet e captura com precisão a informação desejada. Categorização Contextual: vai além da abordagem simplista de “palavraschave”, descobrindo automaticamente a melhor estratégia para classificar uma massa de textos em categorias que reflitam temas específicos de interesse do usuário (p.ex. macroeconomia, aspectos regulatórios, política, etc). Resumo: cria resumos automáticos de textos, levando em consideração as sentenças mais significativas do conteúdo, realizando contrações em sua estrutura, caso necessário. Extrator de Entidades: reconhece automaticamente organizações, pessoas, lugares, datas e valores citados em documentos textuais, extraindo também o conhecimento disponível sobre estes no próprio texto. 6.3 A mineração dos conceitos de Text Mining (exploração) No processo de mineração dos conceitos, as técnicas utilizadas são as mesmas existentes na área de mineração de dados ou descoberta de conhecimento em bancos de dados (Data Mining ou KDD – Knowledge Discovery in Databases). A diferença é que as ferramentas devem ser aplicadas sobre os conceitos extraídos nos textos e não sobre itens de um banco de dados. 7 SISTEMAS TUTORES INTELIGENTES O uso do computador como ferramenta de apoio à execução das atividades pedagógicas, pode servir de auxílio aos educadores, visando diversificar o modo de exposição dos conteúdos instrutivos, além da utilização dos métodos tradicionais de ensino. Neste contexto, os softwares educacionais podem ser utilizados como ferramentas adicionais às estratégias didáticas e também visa a possível realização de estudos sem a presença obrigatória do tutor humano. Os primeiros aplicativos voltados ao ensino foram chamados de Computer Assisted Instruction2 (CAI). Esses softwares possuíam lições com temas específicos utilizando a mesma estratégia instrucional sem considerar o conhecimento individual de cada aluno. Com o auxílio das técnicas de IA foi possível tornar esses sistemas ainda mais atrativos ao usuário, principalmente porque o diferencial encontrado com o apoio dessas técnicas pode considerar características individuais do usuário, dispor de interatividade e adaptação do conteúdo pedagógico. Considerando esses aspectos, a abordagem dos sistemas dirigidos ao ensino ganha uma nova modalidade de classificação chamada de Intelligent Computer-Aided Instruction3 (ICAI). Nesses softwares, os conteúdos eram dispostos independente dos procedimentos de ensino, podendo diferenciar-se do CAI por separar suas estratégias didáticas do conhecimento subjetivo a ser instruído e por manter a 2 3 Instrução auxiliada por computador. Instrução inteligente auxiliada por computador. 7 atualização dinâmica da performance do usuário. Posteriormente estes sistemas receberam a denominação de Sistema Tutor Inteligente (STI). A maior relevância dos STI sob os CAI, dá-se em virtude da inserção do especialista pedagógico, o qual é responsável por delimitar o aspecto do conteúdo didático, dando maior valor instrucional ao material (KAESTNER; EBERSPACHER, 1998). Ferreira e Sobral (2001) definem STI como ferramentas ou softwares educacionais com a capacidade de assistir os aprendizes, objetivando a aquisição do conhecimento com interatividade, incentivando sua autonomia e criatividade. Assim, para que um software seja considerado inteligente, necessita de capacidade de passar o conhecimento contido em sua base, aprender com o indivíduo que está interagindo, devendo ser flexível e ter condições de adaptar seu conteúdo e suas estratégias de acordo com o nível do aprendiz, estando em constante atualização. Levando em consideração essas características, o desenvolvimento de STI dispende de um longo período de tempo devido sua complexidade, nível de inteligência desejado e necessário em cada software, dependendo ainda de sua área de aplicação. A multidisciplinariedade é evidente em ambas as categorias, o que implica na necessidade de especialistas em várias áreas como comunicação, pedagogia, psicologia, além do especialista do conhecimento específico do problema a ser modelado. 7.1 Arquitetura de um Tutor Inteligente A apresentação da arquitetura de um STI pode variar de acordo com a estrutura em desenvolvimento, no entanto, basicamente os módulos principais são representados inicialmente pelo módulo especialista, aluno e módulo tutor e interface, como segue. Módulo Especialista: Este módulo é formado pelo material instrucional, pela geração sistemática dos exemplos, pela formulação de diagnósticos e pelas simulações, possuindo o conhecimento sobre o domínio que se deseja ensinar ao estudante (CASAS, 1999). Módulo Aluno: Conforme Abreu (2002), este módulo é responsável por armazenar a descrição do conhecimento do aluno e de suas preferências particulares, devendo monitorar seu comportamento para que possa adaptar-se ao aluno, sempre tentando descobrir quais os objetivos dele em relação ao uso do sistema. Módulo Tutor: A modelagem do tutor requer grande complexidade, por tratar de todas as definições relacionadas a aplicação das estratégias de ensino, verificando o que e a quem ensinar, o momento oportuno de dispor o assunto ou fazer as interrupções necessárias, sempre expondo o material de acordo com as preferências do usuário. Módulo Interface: A preocupação existente voltada à criação de interfaces adaptativas e intuitivas é cada vez mais evidente dentre os critérios de ergonomia de software, pois a eficiência do sistema está fortemente relacionada a ela. 8 7.2 Características e Benefícios dos STI A utilização dos STI pode proporcionar evidentes contribuições no processo de ensino-aprendizagem, devido a várias características que o difere dos softwares tradicionais. Os STI são sistemas nos quais a IA desempenha um papel de relevância, não por apenas permitir maior flexibilidade no ensino por computador, mas também por possibilitar a participação ativa do aluno e do sistema, gerando um ambiente cooperante. Dessa forma, é preciso destacar a importância da interação cooperativa, onde aluno e tutor interagem visando a troca de conhecimento (CAMINHA, 2000). Os STI podem ser considerados com maior capacidade de adaptação ao usuário que os programas convencionais, por possuírem um comportamento que se assemelhe ainda mais ao de um professor, que flexibiliza a apresentação de seu conteúdo instrucional de acordo com o perfil de cada usuário. Neste sentido, a possibilidade de não haver a necessidade do mestre humano na utilização do sistema aumenta, já que o sistema pode ser manipulado pelo usuário mediante suas preferências e seu grau de conhecimento do material instrucional. 7.3 Alguns exemplos de STI O crescimento na área tecnológica foi evidente também em relação aos sistemas dirigidos ao ensino, bem como, utilizando as técnicas (computacionais e educacionais) que surgiram com o passar dos anos. Os STI foram desenvolvidos em diversas áreas do conhecimento. Nesse contexto, destacam-se alguns deles que podem ser considerados como as primeiras experiências de projetos nessa área, descritas em seu contexto histórico. • Wohler: STI de apoio ao Ensino de Química Orgânica • Eletrotutor: STI de apoio ao Ensino de Eletrodinânica e Física; • EPPIS: STI de Diagnóstico Classificatório da Epilepsia; • Espertinho: STI de Aprendizado de Sistemas Especialistas; • Mhits: STI de Aprendizado de Harmonia Musical. Observa-se que a internet tem possibilitado que sistemas inteligentes voltados à educação possam ser acessados e explorados por meio de recursos hipermídia, tornando-se cada vez mais atrativos e convenientes como auxílio didático. 8 INTELIGÊNCIA ARTIFICIAL NA MEDICINA Na medicina, o modelo automatizado, baseado na descoberta de conhecimento em bases de dados (Knowledge Discovery in Database - KDD), vem se destacando nas últimas décadas, por extrair conhecimento de bases de dados, por meio da sua etapa de mineração de dados, facilitando assim os trabalhos entre o engenheiro do conhecimento e o médico especialista (NASSAR, 2005). Em aplicações baseadas em conhecimento, os sistemas especialistas probabilísticos4 (SEPs) se propõem a resolver problemas geralmente de natureza 4 Um Sistema Especialista Probabilístico é assim denominado por basear-se na arquitetura de um SE e por possuir uma base de conhecimento que pode ser representada por uma distribuição de probabilidades (KOEHLER, 1998). 9 incerta. Nesses sistemas, uma das etapas mais trabalhosas é a de aquisição do conhecimento, que envolve a interação entre o engenheiro do conhecimento e o especialista do domínio de aplicação. Uma das técnicas utilizadas para facilitar este processo é a descoberta do conhecimento em base de dados para construção de redes bayesianas5 (RB), podendo-se assim diminuir o tempo despendido nesta interação, no que se refere ao desenvolvimento de RBs, as quais se propõem a servir como base de conhecimento em SEPs. Nesse sentido, demonstra-se a seguir uma pesquisa que consistiu na utilização de um algoritmo (por meio de uma ferramenta) para a realização da extração de conhecimento de uma base de dados médica, para a geração automática de uma RB, sendo esse processo intermediado por um especialista, podendo-se dessa forma, contribuir no processo de extração de conhecimento de base de dados. 8.1 Metodologia Para a geração da RB, utilizou-se a base de dados sobre prevalência de diabetes mellitus tipo 2 em alguns bairros do município de Criciúma-SC. A partir dessa base de dados, iniciou-se o processo de descoberta do conhecimento na ferramenta BNPC, utilizando-se como metodologia as etapas que compõem o processo de KDD aplicado em RBs . Essa ferramenta não permite a visualização da parte quantitativa gerada na RB, bem como a realização de inferências, e por esse motivo, especificou-se a utilização da ferramenta Netica para avaliação dos resultados obtidos com a RB. Considerando-se o KDD, as etapas de pré-processamento e data mining foram realizadas por meio do aprendizado supervisionado. O pré-processamento engloba a limpeza, integração, seleção e transformação dos dados. No que se refere a limpeza dos dados, com relação aos valores ausentes, a base de dados apresentou muitos campos não preenchidos que foram tratados. Referindo-se as alterações dos nomes das variáveis, como o Netica não permite títulos de nós com nomes compostos, acentuados ou com caracteres especiais, e a base de dados os apresentou, foi necessário removê-los. Na fase de seleção, definiu-se no BNPC os campos relacionados aos fatores de risco e complicações para o aprendizado da RB. Na etapa de Data Mining (DM), que refere-se a aplicação de algoritmos específicos para a extração de conhecimento, foram informadas ao BNPC as configurações sobre o domínio de conhecimento, sendo estipuladas nesse item, as configurações de causa e efeito, nós raízes e nós folhas. 8.2 Resultados Após a geração da RB no BNPC, a mesma foi exportada para o formato da ferramenta Netica para realização do pós-processamento, e análise dos resultados obtidos. Como no restante do trabalho, e pelo fato do aprendizado ser supervisionado, a análise dos resultados também teve o acompanhamento da 5 Rede Bayesiana (RB) “é um grafo orientado em que cada nó é identificado com informações de probabilidade quantitativa” (RUSSELL E NORVIG, 2004). 10 especialista do domínio de aplicação, que deu maior destaque à parte qualitativa6, onde observou-se que os resultados obtidos com a RB gerada pela aquisição do conhecimento estão corretos, que os nós e seus links refletem corretamente a relação a ser observada entre fatores de risco e complicações, no que se refere a base de dados sobre a prevalência de diabetes mellitus tipo 2 em alguns bairros de Criciúma. Na parte quantitativa7, a especialista não achou necessário ajustes nas Probabilidades Condicionais, as quais apresentaram resultados adequados, refletindo assim o comportamento da população estudada, permitindo-se, dessa forma, relacionar fatores de risco e complicações. Em consultas realizadas a RB gerada, observou-se que cada fator de risco pode ser relacionado a determinadas complicações, e desse modo, é possível estimar quais são os fatores de risco mais freqüentes e a quais complicações estão relacionados. Ressalta-se o potencial das RBs em domínios de aplicações na área Médica que não envolvam diagnóstico, como por exemplo, em aplicações voltadas a área de Bioestatística, voltando-se à questões que envolvem fatores de risco e complicações. 9 OUTROS EXEMPLOS DA UTILIZAÇÃO DA IA NA MEDICINA • • • • 6 O data mining na compreensão do fenômeno da dor: uma proposta de aplicação: trata-se da elaboração de um software chamado Clinical Data Mining utilizado para identificar as melhores terapias para diversas doenças, para explorar os fatores de sucesso/insucesso das cirurgias e para determinar padrões diversos. E do Clinical Data Warehouse, um repositório de dados para facilitar a análise de dados clínicos (FERREIRA et al, 2006). Diagnóstico de tumores do ângulo ponto-cerebelar com o auxílio de técnicas de inteligência artificial: obtenção de um modelo discriminatório entre diagnóstico de tumores do ângulo ponto-cerebelar e de distúrbios otorrinolaringológicos. Utilização de técnicas de indução em árvores de decisão que apontou um bom nível de acurácia (88,4%) (LEITÃO et al, 2000). Uso da rede neural artificial no planejamento cirúrgico da correção do estrabismo: desenvolvimento de uma rede neural artificial para planejar a estratégia cirúrgica em pacientes portadores de estrabismo sensorial, com desvio horizontal (SOUZA et al, 2004). Técnicas de inteligência artificial aplicadas ao desenvolvimento de sistema de apoio ao diagnóstico de lesões pulmonares: trata-se de uma pesquisa que demonstrou a grande versatilidade da técnica das redes neurais artificiais na construção de sistemas de apoio ao diagnóstico médico, principalmente quando utilizados como “segunda opinião”, ou segunda leitura, auxiliando o profissional em possíveis análises duvidosas (AMBROSIO, AZEVEDO-MARQUES, TRAD, 2004). Constituída por um grafo acíclico direcionado onde as variáveis são os nós, e as relações de dependência entre essas variáveis, são os arcos direcionados (KOEHLER, 2002). 7 São as probabilidades condicionais unidas aos arcos existentes no modelo gráfico da parte qualitativa, e as probabilidades estimadas a priori (antes da obtenção das evidências) das hipóteses diagnósticas (KOEHLER, 2002). 11 10 INTELIGÊNCIA ARTIFICIAL NA INDÚSTRIA O uso de IA pela indústria de software vem sendo, a muito, aplicada em jogos de simulação pela capacidade de gerar previsões e eventos não lineares que imitam o pensamento humano. Segundo severo (2004), a exigência do mercado pela melhor qualidade pelo menor custo aliada as dificuldades nos controles de produção pela não linearidade, grande número de parâmetros e tempo morto contribuem para que as indústrias optem por controles preditivo e adaptativo em lugar de controles clássicos com parâmetros constantes. “A Inteligência Artificial é apontada como um campo de conhecimentos que pode apoiar a tomada de decisões de um modo mais simples e mais preciso do que outros métodos, tais como a modelagem e a gestão por indicadores” (SELLITTO, 2002). Segundo Sellitto (2002), quando não existe um modelo de processo para controlar por sua complexidade ou custo e esse processo é bem controlado por especialistas humanos, podendo verbalizar as regras desse controle, existem condições para o uso de lógica fuzzy para automatizar o controle do controle do processo. 11 REDES NEURAIS E ENGENHARIA QUÍMICA “A maioria dos processos químicos é caracterizada por não linearidades, tempo morto muito elevado, processo restritivos e condições de operação em constante mudança” SEVERO (2004 ). Sellitto (2002) descreve a utilização de controlador eletrônico baseado em lógica fuzzy para processo especifico em produção de cimento, sendo que o mesmo utiliza ciclo CBR de aprendizado. Dezenas de plantas no mundo operam com lógicas similares de regras de inferência e defuzzificação por CBR. 12 ENGENHARIA DE SOFTWARE “A modelagem de processos de software não consiste apenas em escrever programas que automatizem completamente o processo de desenvolvimento de software e nem descrevem tudo o que os atores do processo devem fazer” COTA SILVA (2005). Segundo Cota Silva (2005), a Engenharia de Software também pode tomar as tecnologias de inteligência artificial para desenvolvimento de software, buscando maior excelência e qualidade, tanto no desenvolvimento do projeto quanto na automação de testes, pois IA automatiza e sistematiza tarefas intelectuais. Embora essas técnicas ainda sejam muito pouco exploradas devido ao paradigma de regras para modelar sistemas. Cota Silva (2005), avaliou alguns ambientes de Engenharia de Software que fazem uso de inteligência artificial, basicamente abrangendo Sistemas Especialistas, Sistemas baseados em regras, Sistemas Fuzzy, de Raciocínio baseado em casos: • Marvel - é um ambiente centrado em processo resultante de um projeto de mesmo nome na Columbia University desde 1986. A idéia do projeto era desenvolver um ambiente centrado em processo que orientasse e assistisse os usuários que trabalham em projetos de grande escala. Para isso, juntaram as 12 • • áreas de Engenharia de Software e Inteligência Artificial. Marvel segue o paradigma de orientação a objetos e está baseado em uma linguagem de regras. Ele fornece uma ajuda automatizada pela aplicação das estratégias forward e backward chaining sobre as regras, invocando as atividades que são parte de uma fase do processo de desenvolvimento. A sua base de objetos é persistente. O processo sendo modelado é decomposto em passos de processo. Cada passo é encapsulado em uma ou mais regras. Merlin - é um ambiente de desenvolvimento de software centrado em processo construído dentro de um projeto na University of Dortmund. O protótipo do ambiente usa o paradigma de regras para descrever e executar processos de software. Uma definição de processo no Merlin possui atividades, papéis (roles), documentos (quaisquer objetos) e recursos (pessoas, ferramentas, etc.). Um documento é ligado a um conjunto de atividades e a um conjunto de ferramentas que suportam as atividades. Nesta abordagem os usuários recebem todas as informações relevantes em um espaço de trabalho chamado working context associado ao papel do usuário. Este espaço de trabalho contém os documentos a serem manipulados, suas dependências com outros documentos e as atividades que devem ser realizadas. Quando uma atividade realizada influencia um working context, acontece uma atualização dinâmica nos working contexts dependentes deste evento. A máquina de execução do Merlin constrói e atualiza os working contexts dos usuários. Cada atividade possui pré-condições que definem, por exemplo, os papéis que podem desempenhar a atividade, a pessoa responsável, os direitos de acesso aos documentos ou a dependência com outras atividades. Quando as precondições de uma atividade são verdadeiras, a atividade é inserida no working context. O processo de encadeamento é parecido com o do ambiente Marvel apresentado anteriormente. O Merlin suporta mudanças dinâmicas no processo, permitindo que um processo não seja totalmente definido antes de iniciar. A linguagem escolhida para o ambiente é baseada em PROLOG. Articulator - é um ambiente baseado em conhecimento para processo de desenvolvimento de software. Ele provê um meta-modelo de processo de desenvolvimento de software, uma linguagem baseada em objetos e um mecanismo de simulação automática. Para simular a execução de processos, o Articulator usa uma abordagem multiagentes onde os desenvolvedores são modelados como agentes cognitivos. A arquitetura do ambiente contém cinco subsistemas: base de conhecimento, simulador de comportamento, mecanismo de consulta, gerenciador de instanciação e gerenciador de aquisição de conhecimento. O meta-modelo do Articulator consiste de recursos, agentes e tarefas. Os recursos são objetos nas tarefas dos agentes. As tarefas consomem e produzem recursos. Um agente representa uma coleção de comportamentos e atributos associados. O comportamento do agente emerge durante a execução das tarefas (incluindo comunicação, acomodação e negociação) levando em consideração a situação do agente. Os agentes são modelos gerais de desenvolvedores, times de desenvolvimento e organizações. Ferramentas de desenvolvimento são modeladas somo subclasse de agentes. As tarefas são representadas através de uma rede de ações que os agentes realizam. Como não existe execução real de processos neste ambiente, os agentes são agentes cognitivos que simulam execução de tarefas e várias situações para auxiliar a geração da descrição do processo. A simulação é importante para detectar falhas como alocação de recursos, cronograma, dentre outras. 13 • Pandora - é uma máquina de processos baseada em programação em lógica e conceitos de lógica temporal. Todos os eventos são registrados e o sistema possui um algoritmo de aplicação de regras que otimiza os passos de execução. Além disso, o sistema possui um mecanismo de sincronização que garante que as atividades cooperativas ou que devem ser executadas em alguma ordem serão sincronizadas. Pandora integra os paradigmas de eventos para modelar interatividade entre mensagens e de regras para representar o conhecimento do processo. O conhecimento pode ser declarativo ou procedural. Conhecimento declarativo descreve o domínio do discurso, no caso, o modelo de processo enquanto conhecimento procedural descreve o comportamento que o processo pode assumir durante o desenvolvimento, ou seja, as regras e eventos que disparam evolução de processo. O sistema reage aos eventos externos e dispara as ações internas. As regras e eventos são especificados em uma linguagem de lógica de primeira ordem acrescida de operadores de lógica temporal (Linguagem Pandora) onde o tempo é caracterizado por uma linha seqüencial simples de eventos. Isto permite expressar quantitativamente o tamanho dos intervalos temporais, a distância temporal entre os eventos e a viabilidade das atividades modeladas quanto às proposições lógicas estabelecidas. É possível estabelecer não apenas quais atividades são permitidas a cada momento, mas também como as atividades interagem (ou seja, sincronização entre atividades paralelas e disparo de atividades engatilhadas). Pandora é implementado em PROLOG e consiste de dois módulos principais: compilador de regras e interpretador de regras. O compilador checa as regras quanto à sintaxe e as transforma em uma representação interna. O interpretador permite ativação das ferramentas do sistema operacional, permite rastreamento da aplicação de regras e observação dos estados internos. 13 DETECÇÃO DE PADRÕES Segundo Sellitto (2002) os sistemas devem resolver problemas de forma similar ao que um especialista humano resolveria. Sistemas especialistas têm um espectro limitado para reconhecer e resolver os problemas, normalmente dentro do escopo definido para sua ação. Alguns processos têm como função a detecção de padrões, onde o sistema deve identificar determinados itens, e tomar uma ação ou registrar de forma a prover informações para futura melhoria. Costa (2006) descreve métodos de detecção de padrões de problemas na linha de produção de vidros usando Lógica Fuzzi, algoritmo CART e Redes Neurais. Durante sua explanação ele determina o método que faz uso de Redes Neurais é um método de desempenho satisfatório e classificação mais abrangente. Usando uma configuração de Rede Neural de 9 neurônios na entrada, 12 na camada intermediaria e 5 na camada de saída, buscou encontrar defeitos na superfície, reconhecendo conforme treinamento da rede, sendo que cada tipo de defeito deve ter sua rede e treinamento específicos. 14 INTELIGÊNCIA ARTIFICIAL EM JOGOS Segundo KISHIMOTO (2004), o uso primordial de inteligência artificial em jogos é a diversão. Obviamente cada individuo tem seu grau de experiência e tolerância, criando uma grande dificuldade para os desenvolvedores de jogos criarem uma gama de ações e reações que torne os personagens aparentemente 14 inteligentes. Estes devem simular erros e perspicácia reagindo como um humano para dar ilusão da realidade. As técnicas mais populares utilizadas pelos desenvolvedores são as maquinas de estado finito (FSM) e as maquinas de estado fuzzy (FuSM) conforme (WOODCOCK, 1999). Mesmo assim essas técnicas são limitadas e não produzem reações novas. Utilizar Redes Neurais propiciando aprendizado torna desnecessária a programação manual de ações, partindo do principio que os algoritmos indicarão as reações adequadas conforme o comportamento do ambiente ou do jogador. Além das vantagens impostas pela IA, existem também os problemas causados pelo seu uso. KISHIMOTO (2004) divide em quadro problemas principais: • Período de desenvolvimento: o curto período de desenvolvimento dos jogos dificulta o aprendizado dos desenvolvedores para tecnologias de ponta sobre IA e suas aplicações em um jogo comercial (BOURG, 2004); • Algoritmos de aprendizado: os resultados produzidos por algoritmos de aprendizado são difíceis de serem testados e depurados contra erros, visto que os resultados não são previsíveis. Por essa razão, muitos desenvolvedores têm preferência por técnicas de IA determinísticas, e também por serem mais conhecidas pelos mesmos e de fácil implementação e depuração (WOODCOCK, 1999); • Poder de processamento: jogos são softwares com execução em tempo real, onde informações são processadas e atualizadas a cada ciclo de máquina. Algoritmos com alto custo de processamento (ainda) não podem ser implementados em jogos que necessitam de respostas em tempo real (TOZOUR, 2002); • Jogos são baseados em game design: durante o desenvolvimento de um jogo, toda equipe baseia-se no documento de game design do jogo. No entanto, existe um confronto entre game designers e game AI, pois os game designers constroem a narrativa do jogo e definem a jogabilidade e eventos do jogo, tendo um controle explícito do jogo e dos NPC’s. Surge então o seguinte conflito: os designers controlam o comportamento dos NPC’s. É preciso então o uso de IA? Em contrapartida, se a IA estiver presente (NPC’s inteligentes podem se comportar com autonomia), é preciso ter designers? A solução para esse caso é os game designers e programadores de IA entrarem em um acordo sobre o controle sobre os NPC’s do jogo (CHAMPANDARD, 2003). O uso da IA na Industria, seja ela de software ou manufatura, tem custo elevado pelo fato de ser inovação e também por ser muitas vezes especifico para resolver seu problema, mas abre grande espectro de possibilidades para resolver problemas antes insolúveis utilizando técnicas de desenvolvimentos especializadas, mas focadas em soluções pré estabelecidas e monolíticas. 15 CONSIDERAÇÕES FINAIS As pesquisas em sistemas especialistas têm ainda um longo caminho a percorrer, particularmente avançando o estado da arte em aprendizagem de máquina, programação automatizada, e padronização. Mesmo assim, várias organizações já estão fazendo grandes economias e estão obtendo muitos benefícios na utilização desta tecnologia. Os grandes avanços tecnológicos das últimas décadas, tais como: aumento da velocidade de processamento; estupendo 15 aumento da capacidade de armazenamento dos periféricos; surgimento do banco de dados; barateamento do software e hardware; surgimento das grandes redes; a fibra ótica, e; a transmissão de dados por satélite e outros. Os dados operacionais são por demais valiosos para a empresa, o que determina um investimento alto em Tecnologia da Informação para descoberta destas riquezas escondidas, o que pode determinar a sobrevivência no mercado. Sugere-se a utilização integrada de algumas ferramentas de TI e IA que ajudariam a efetuar um monitoramento contínuo dos dados coletados, as ferramentas de TI ajudariam no acesso mais efetivos aos dados, através de BD Operacionais, Data Warehouse ou Data Mart para manipulações de dados históricos, Data Mining para exploração de informações escondidas e ferramentas OLAP para uma melhor visualização dos dados, paradigmas de IA com RBC e agentes inteligentes, seriam utilizados nos levantamentos estatísticos do processo, emitindo relatórios de desempenho das instituições. Com a automatização do processo de credenciamento e também da coleta de dados durante o processo de ensino/aprendizagem, estaríamos formando uma riquíssima base de dados sobre a modalidade, base que poderia ser disponibilizada ao acesso da comunidade através de um portal educacional na Internet. 16 REFERÊNCIAS BIBLIOGRÁFICAS ABREU, André de. Uma introdução à usabilidade. 2002. Disponível em: < http://webinsider.uol.com.br/index.php/2002/02/17/uma-introducao-a-usabilidadeparte-ii/>. Acesso em: 22 junho 2008. AMBRÓSIO, Paulo Eduardo, AZEVEDO-MARQUES, Paulo M. de, TRAD, Clóvis Simão. Técnicas de inteligência artificial aplicadas ao desenvolvimento de sistema de apoio ao diagnóstico de lesões pulmonares. CBIS'2004 - IX Congresso Brasileiro de Informática em Saúde. Ribeirão Preto-SP. 2004. Disponível em: <http://www.sbis.org.br/cbis9/arquivos/551.pdf> BOURG, David M.; SEEMAN, Glenn. AI for Game Developers. Sebastopol: O’Reilly. 2004. CAMINHA, Adriano de Oliveira. MHITS - Um Sistema Tutor Inteligente em Harmonia Musical. 2000, 108 f. Dissertação (Mestrado em Informática) – Universidade Federal da Paraíba, 2000. Disponível em: < http://www.dsc.ufpb.br/~copin/pessoas/alunos/htms/AdrianodeOliveiraCaminha.htm> . Acesso em: 22 junho 2008. CASAS, Luis Alberto Alfaro. Contribuições para modelagem de um ambiente inteligente de educação baseado em realidade virtual. 1999. Tese (Doutorado em Engenharia de Produção) – Universidade Federal de Santa Catarina.1999. Disponível em: < http://www.eps.ufsc.br/teses99/casas/index.html >. Acesso em: 24 junho 2008. CHAMPANDARD, Alex J. AI Game Development – Synthetic Creatures with Learning and Reactive Behaviors. Indianopolis: New Riders. 2003. 16 CORTEX INTELLIGENCE. Transformando Informações em Resultados. Disponível em: <http://www.cortex-intelligence.com/site/html/casos/casovitopel.php>. Acesso em: 27 Jun. 2008. COSTA (2006) COSTA, HERBERT RODRIGUES DO NASCIMENTO. Aplicação de Técnicas de Inteligencia Artificial em Processos de Fabricação de Vidros (Tese de Doutorado). Escola Politécnica da Universidade de São Paulo . 2006. COTA SILVA (2005) COTA SILVA, RENATO AFONSO. Inteligência Artificial Aplicada a Ambientes de Engenharia de Software: Uma Visão Geral. Universidade Federal de Viçosa. November 18, 2005 COUTINHO, Fernando Vieira. Data Mining. DwBrasil. Brasília-DF, 2003. EBERSPÄCHER, Henri; KAESTNER, Celso. Arquitetura de um sistema de autoria para a construção de sistemas tutores hipermídia.1998. Simpósio Brasileiro de Informática na Educação, 7., Anais... São José dos Campos: ITA/CTA.1998. Disponível em: < http://www.c5.cl/ieinvestiga/actas/ribie98/207.html>. Acesso em: 23 junho 2008. EVSUKOFF, Alexandre G. Introdução às Técnicas de Data Mining. COPPE/UFRJ Programa de Engenharia Civil. Rio de Janeiro, 2005. Disponível em: < http://www.lncc.br/verao/verao05/arquivos/Intro%20Data%20Mining%201.pdf>. Acesso em: 26 Jun. 2008. FERREIRA, Carlos et al. O data mining na compreensão do fenômeno da dor: uma proposta de aplicação. Universidade de Minho – Portugal, 2006. Disponível em <https://repositorium.sdum.uminho.pt/handle/1822/5577> FERREIRA, Maria Alice Grigas Varela; SOBRAL, Maria Emília Gomes. Tutores inteligentes para ambientes de ensino-aprendizagem cooperativos. Universidade de São Paulo, 2001. Disponível em: < http://www.asee.org/international/INTERTECH2002/598.pdf >. Acesso em: 23 junho 2008. KISHIMOTO (2004) Kishimoto, André. Inteligência Artificial em Jogos Eletrônicos. 2004. KOEHLER, Cristiane. Uma abordagem probabilística para Sistemas Especialistas. 1998. 97 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Santa Catarina, Florianópolis, 1998. KOEHLER, Cristiane. Modelagem de Redes Bayesianas a partir da Identificação de Padrões em Base de Dados. 2002. 44 f. Tese de Doutorado (Programa de PósGraduação em Computação) - Universidade Federal do Rio Grande do Sul, Porto Alegre, 2002. LEITÃO, Flávio et al. Diagnóstico de tumores do ângulo pontocerebelar com o auxílio de técnicas de inteligência artificial. Arq. 17 Neuro-Psiquiatr. vol.58 n.1 São Paulo Mar. 2000. Disponível em <http://www.scielo.br/pdf/anp/v58n1/1258.pdf> NASSAR, Sílvia Modesto (2005), Tratamento de Incerteza: Sistemas Especialistas Probabilísticos. 2005. Disponível em: <http://www.inf.ufsc.br/~silvia/ disciplinas/sep/MaterialDidatico.pdf> RUSSELL, Stuart; NORVIG, Peter. Inteligência Artificial. Tradução da 2ª edição. Rio de Janeiro: Campus, 2004. SELLITTO (2002) Sellitto, Miguel Afonso. Inteligência Artificial: Uma Aplicação em uma Indústria de Processo Contínuo. Universidade do Vale do Rio dos Sinos, Unisinos. 2002. SEVERO (2004) Severo, Larissa Scherer. Controle de processos da indústria de petróleo e gás utilizando técnicas de inteligência artificial. (Monografia). Universidade Federal de Santa Catarina. 2004. SOUZA, Murilo Barreto et al. Uso da rede neural artificial no planejamento cirúrgico da correção do estrabismo. Arq. Bras. Oftalmol. vol.67 no.3 São Paulo Maio/Junho 2004. Disponível em: <http://www.scielo.br/pdf/abo/v67n3/20519.pdf> TOZOUR, Paul. Artificial Intelligence – Introduction from Game Programming Gems 4. Hingham: Charles River Media. 2004. WOODCOCK, Steven. Game AI: The State of the Industry. Game Developer Magazine. CMP Media. Aug 1999. Pages 34-43.