103 resultados para Computação evolucionária


Relevância:

10.00% 10.00%

Publicador:

Resumo:

O interesse de pesquisa da comunidade de Inteligência Artificial em Sistemas Multiagentes tem gerado o crescimento da utilização de técnicas de agentes nas mais diversas áreas da ciência da computação. Isso ocorre, principalmente, devido à variedade de aplicações em que esses sistemas podem ser usados, como por exemplo: jogos de computadores, interfaces adaptativas, simulação e controle de processos industriais. The Robot World Cup Initiative (RoboCup) é uma tentativa de estimular a área de Inteligência Artificial e, principalmente de Sistemas Multiagentes, por promover um problema padrão, jogar futebol, onde uma ampla cadeia de tecnologias podem ser integradas, examinadas e comparadas. A utilização do ambiente da RoboCup para a simulação de uma partida de futebol (simulador Soccerserver) permite a avaliação de diferentes técnicas de Sistemas Multiagentes (planejamento de estratégias, conhecimento em tempo real, colaboração de agentes, princípios de agentes autônomos, entre outros) e estimula as pesquisas, investigações e testes que possibilitem a construção gradativa de agentes avançados. O presente trabalho tem por objetivo o desenvolvimento de um time de futebol para o simulador Soccerserver. A idéia principal é desenvolver agentes jogadores que demonstrem um nível considerável de competência para a realização de suas tarefas, como percepção, ação, cooperação, estratégias pré-definidas, decisão e previsão. Inicialmente, apresenta-se uma visão geral sobre Inteligência Artificial Distribuída e sobre o simulador Soccerserver, pré-requisitos para o restante do trabalho. A seguir, é realizado um estudo sobre algumas arquiteturas de agentes (clientes) do Soccerserver. A arquitetura proposta na dissertação, suas principais características e a sua materialização em um protótipo desenvolvido correspondem à parte principal do trabalho. Finalmente são apresentados os testes realizados e as conclusões do trabalho.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

O desenvolvimento e manutenção de software fazem parte de um processo intrinsecamente difícil e que consome tempo e custos, principalmente quando o sistema consiste de milhares de linhas de código. Por isso, sistemas de visualização de software objetivam prover mecanismos para construir representações visuais de informações sobre programas e sistemas, através das quais o programador pode analisar e compreender características de sua estrutura e funcionamento em um maior nível de abstração do que o código fonte. Assim, ferramentas visuais de software que suportam as tarefas de desenvolvimento, depuração, manutenção e reutilização tornam-se mais necessárias pelo fato de ajudarem a reduzir a complexidade inerente do processo de compreensão. Esse trabalho tem como objetivo principal o desenvolvimento de um visualizador que exiba as informações existentes nos programas de forma mais rápida e legível, evitando que o programador/analista tenha que percorrer as linhas de código. O texto inicialmente situa a área de visualização de informações, abordando a área de visualização de software, uma vez que a visualização de software é assim chamada por tratar da visualização de informações que são extraídas de programas. Em seguida, é apresentado um estudo de caso baseado no desenvolvimento dos sistemas da empresa Benfare Informática, no qual caracteriza-se a necessidade de ferramentas que auxiliem a compreensão de programas, com o objetivo de otimizar as operações de manutenção e desenvolvimento de programas. O restante do trabalho trata do sistema VisProgress que foi um protótipo desenvolvido como ferramenta de apoio para a equipe de desenvolvimento da empresa e como forma de avaliar o uso de técnicas de visualização em tal situação. A ferramenta desenvolvida é um visualizador de informações que percorre programas escritos em Progress, ferramenta de desenvolvimento utilizada pela empresa, e extrai as informações encontradas nos programas. A visualização é dividida em três partes. A primeira permite a visualização de informações textuais extraídas diretamente do código fonte dos programas que compõem os sistemas, a segunda faz a visualização de um grafo que representa a chamada de programas, e a terceira e última faz a visualização também de um grafo, porém representando o compartilhamento de variáveis entre os programas. A obtenção dos grafos foi construída em Delphi, porém a visualização gráfica é feita através da ferramenta Dotty, ferramenta específica para visualização de grafos. Após a descrição do protótipo implementado, são apresentados os resultados obtidos com a avaliação da ferramenta feita nas empresas Benfare Informática e Dzset Soluções e Sistemas para Computação.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A equação de complexidade de um algoritmo pode ser expressa em termos de uma equação de recorrência. A partir destas equações obtém-se uma expressão assintótica para a complexidade, provada por indução. Neste trabalho, propõem-se um esquema de solução de equações de recorrência usando equações características que são resolvidas através de um "software" de computação simbólica, resultando em uma expressão algébrica exata para a complexidade. O objetivo é obter uma forma geral de calcular a complexidade de um algoritmo desenvolvido pelo método Divisão-e-Conquista.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Neste estudo são discutidos alguns aspectos relacionados à escolha da primeira linguagem de programação em currículos de ciência da computação, com interesse especial em Pascal e Java. A primeira linguagem é amplamente adotada para ensinar programação aos novatos, enquanto a segunda está ganhando popularidade como uma linguagem moderna e abrangente, que pode ser usada em muitas disicplinas ao longo de um curso degraduação em computação como ferramenta para ensinar desde recursos básicos de programação até tópicos mais avançados. Embora vários problemas quanto ao ensino de Java, com a primeira linguagem de programação, possam ser apontadas, consideramosque Java é uma boa escolha, visto que (a) oferece apoio a importantes questões conceituais e tecnológicos e, (b) é possível contornar algumas complexidades da linguagem e da plataforma Java para torná-las mais adequadas à alunos iniciantes. Além disso, considerando a grande popularidade de Pascal nos currículos de cursos de computação, uma eventual adoção de Java conduz à outro problema: a falta de professores aptos a lecionar programação orientada a objetos. Sugerimos que este problema de migração de Pascal para Java seja enfrentado através de smplificação do ambiente de desenvolvimento de programas, uso de um pacote com classes que facilitam a entrada e saída, e o desenvolvimento de um catálogo comparativo de programas implementados em ambas as linguagens. Neste estudo também é apresentado o JEduc, um IDE muito simples com o objetivo de dar suporte ao ensino da linguagem de programação orientada a objetos Java aos novatos. Oferece componentes desenvolvidos em Java que integram edição, compilação e execução de programas Java. Além das funcionalidades comuns a um IDE, JEduc foi desenvolvido para gir como uma ferramente pedagógica: simplifica a maioria das mensagens do compilador e erros da JRE, permite a inserção de esqueletos de comandos, e incorpora pacotes especiais para esconder alguns detalhes sintáticos e semânticos indesejáveis.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A simulação paralela de eventos é uma área da computação que congrega grande volume de pesquisas, pela importância em facilitar o estudo de novas soluções nas mais diferentes áreas da ciência e tecnologia, sem a necessidade da construção de onerosos protótipos. Diversos protocolos de simulação paralela podem ser encontrados, divididos em dois grandes grupos de acordo com o algoritmo empregado para a execução em ordem dos eventos: os conservadores e os otimistas; contudo, ambos os grupos utilizam trocas de mensagens para a sincronização e comunicação. Neste trabalho, foi desenvolvido um novo protocolo de simulação paralela, fazendo uso de memória compartilhada, o qual foi implementado e testado sobre um ambiente de estações de trabalho, realizando, assim, simulação paralela com uso de memória compartilhada distribuída. O protocolo foi desenvolvido tendo como base de funcionamento os protocolos conservadores; utilizou diversas características dos mesmos, mas introduziu várias mudanças em seu funcionamento. Sua execução assemelha-se às dos protocolos de execução síncrona, utilizando conceitos como o lookahead e janelas de tempo para execução de eventos. A principal mudança que o novo protocolo sofreu foi proporcionada pelo acesso remoto à memória de um LP por outro, produzindo diversas outras nas funções relativas à sincronização dos processos, como o avanço local da simulação e o agendamento de novos eventos oriundos de outro LP. Um ganho adicional obtido foi a fácil resolução do deadlock, um dos grandes problemas dos protocolos conservadores de simulação paralela. A construção de uma interface de comunicação eficiente com uso de memória compartilhada é o principal enfoque do protocolo, sendo, ao final da execução de uma simulação, disponibilizado o tempo de simulação e o tempo de processamento ocioso (quantia utilizada em comunicação e sincronização). Além de uma implementação facilitada, propiciada pelo uso de memória compartilhada ao invés de trocas de mensagens, o protocolo oferece a possibilidade de melhor ocupar o tempo ocioso dos processadores, originado por esperas cada vez que um LP chega a uma barreira de sincronização. Em nenhum momento as modificações efetuadas infringiram o princípio operacional dos protocolos conservadores, que é não possibilitar a ocorrência de erros de causalidade local. O novo protocolo de simulação foi implementado e testado sobre um ambiente multicomputador de memória distribuída, e seus resultados foram comparados com dois outros simuladores, os quais adotaram as mesmas estratégias, com idênticas ferramentas e testados em um mesmo ambiente de execução. Um simulador implementado não utilizou paralelismo, tendo seus resultados sido utilizados como base para medir o speedup e a eficiência do novo protocolo. O outro simulador implementado utilizou um protocolo conservador tradicional, descrito na literatura, realizando as funções de comunicação e sincronização através de trocas de mensagens; serviu para uma comparação direta do desempenho do novo protocolo proposto, cujos resultados foram comparados e analisados.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

O presente trabalho insere-se no contexto das pesquisas realizadas no Laboratório de Computação & Música do Instituto de Informática da UFRGS. Com ele pretendemos fundamentar e investigar possibilidades em educação musical através da World Wide Web (WWW ou, simplesmente, Web). Para isso, em um primeiro momento, investigamos como desenvolver adequadamente sistemas educativo-musicais para a Web. Queremos aproveitar uma das principais vantagens que a Web oferece para a educação: a de facilitar a disponibilização e o acesso ao conteúdo educativo. Especificamente nesta área do conhecimento - Música -, é rara a pesquisa visando utilizar a Web como suporte. A Internet continua impondo sérias limitações ao emprego de multimídia e ainda mais quando seus dados representam informações sonoras e musicais. Devido a isso, os poucos estudos existentes optam ou por uma simplificação exagerada do sistema ou por soluções proprietárias muito complicadas, que podem reduzir a facilidade de acesso do público-alvo. Assim, no presente trabalho procuramos encontrar um meio-termo: uma solução de compromisso entre a funcionalidade que se espera de tais sistemas, a sua operacionalidade e a simplicidade que a Internet ainda impõe. Para atingir esse objetivo, nos concentramos em promover a interatividade entre o aluno e um ambiente de aprendizado distribuído para o domínio musical. Buscamos fundamentar essa interatividade a partir de: a) conceitos pertinentes a uma interação de boa qualidade para propósitos de ensino/aprendizagem; e b) adoção de tecnologias da Web para música que permitam a implementação adequada desses conceitos. Portanto este trabalho é eminentemente interdisciplinar, envolvendo principalmente estudos das áreas de Interação Humano-Computador, Educação Musical e Multimídia. Após essa fase inicial de fundamentação, investigamos uma solução possível para esse problema na forma de um protótipo de um sistema educativo-musical na Web, tendo em vista os seguintes requisitos: · Ser fácil de programar, mas suficiente para satisfazer os requisitos de sistemas musicais. · Ser acessível, útil e usável pelos seus usuários (notadamente alunos e educadores musicais). Esse protótipo - INTERVALOS, que visa auxiliar o ensino/aprendizagem da teoria de intervalos, arpejos e escalas musicais - é uma ferramenta que pode ser integrada a um ambiente mais completo de educação musical na Web, incluindo as demais tecnologias da Internet necessárias para implementar Ensino a Distancia de música nesse meio. INTERVALOS foi submetido a avaliações de usabilidade e avaliações pedagógicas, por meio das quais pretendemos validar o grau de adequação da fundamentação teórica (conceitos) e tecnológica (tecnologias) para educação musical baseada na Web.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Sistemas de visão artificial são cada vez mais usados para auxiliar seres humanos a realizar diferentes tarefas. Estes sistemas são capazes de reconhecer padrões em imagens complexas. Técnicas de visão computacional têm encontrado crescente aplicação em estudos e sistemas de controle e monitoração de tráfego de automóveis. Uma das áreas de pesquisa que tem sido objeto de estudo por diferentes grupos é a leitura automática de placas de matrículas como forma de detectar transgressores, encontrar carros roubados ou efetuar estudos de origem/destino [BAR99]. Com o constante crescimento do volume de tráfego de automóvel e a limitada capacidade dos sensores convencionais, especialistas da área recorrem a técnicas de identificação automática de veículos para obter dados relativos ao escoamento de tráfego. A identificação automática de veículos tem tido essencialmente duas abordagens distintas: a utilização de transponders e a utilização de técnicas de visão computacional [INI85] . Estas são essencialmente úteis em casos em que não é viável obrigar os motoristas a instalar transponders em seus automóveis. No entanto, essas técnicas são mais sensíveis às condições atmosféricas e de iluminação tais como nevoeiros, chuva intensa, luz noturna, reflexos em superfícies, etc. Este trabalho apresenta um estudo de diversas técnicas de processamento de imagem objetivando o aperfeiçoamento de um sistema de identificação automática de placas de veículos. Este aperfeiçoamento está relacionado com a diminuição do tempo de execução necessário à localização e reconhecimento dos caracteres contidos nas placas dos veículos bem como a melhorar a taxa de sucesso no seu reconhecimento. A primeira versão do sistema de identificação da placas de veículos descrito em [SOU2000], desenvolvido no CPG-EE da UFRGS, denominado SIAV 1.0, localiza e extrai 91,3% das placas corretamente mas apresenta uma taxa de reconhecimento das placas de 37,3%, assim como um tempo de processamento não satisfatório. Neste trabalho, cujo sistema desenvolvido é denominado SIAV 2.0, a imagem é previamente processada através da aplicação de técnicas de realce da imagem. O principal objetivo das técnicas de realce é processar a imagem de modo que o resultado seja mais apropriado para uma aplicação específica do que a imagem original [GON93]. O sistema busca melhorar a qualidade da imagem eliminando ou suavizando sombras e reflexos presentes na cena em virtude da iluminação não controlada. Visando um menor tempo de execução durante o tratamento e análise da imagem um estudo estatístico baseado na distribuição gaussiana foi realizado de maneira a restringir a área de análise a ser processada. O SIAV possui duas redes neurais como ferramentas de reconhecimento de caracteres. A partir da análise dos diferentes modelos de redes neurais empregados na atualidade, foi desenvolvida uma nova arquitetura de rede a ser utilizada pelo SIAV 2.0 que oferece uma taxa de reconhecimento superior a rede neural usada no SIAV 1.0. Visando um melhor tempo de execução, a implementação em hardware dedicado para este modelo é abordado. Os testes foram realizados com três bancos de imagens obtidas por câmeras diferentes, inclusive por dispositivo "pardal" comercial. Estes testes foram realizados para verificar a efetividade dos algoritmos aperfeiçoados.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A filtragem de imagens visando a redução do ruído é uma tarefa muito importante em processamento de imagens, e encontra diversas aplicações. Para que a filtração seja eficiente, ela deve atenuar apenas o ruído na imagem, sem afetar estruturas importantes, como as bordas. Há na literatura uma grande variedade de técnicas propostas para filçtragem de imagens com preservação de bordas, com as mais variadas abordagens, deentrte as quais podem ser citadas a convolução com máscaras, modelos probabilísticos, redes neurais, minimização de funcionais e equações diferenciais parciais. A transformada wavelet é uma ferramenta matemática que permite a decomposição de sinais e imagens em múltiplas resoluções. Essa decomposição é chamada de representação em wavelets, e pode ser calculada atrravés de um algorítmo piramidal baseado em convoluções com filtros passa-bandas e passa-baixas. Com essa transformada, as bordas podem ser calculadas em múltiplas resoluções. Além disso, como filtros passa-baixas são utilizados na decomposição, a atenuação do ruído é um processo intrínseco à transformada. Várias técnicas baseadas na transformada wavelet têm sido propostas nos últimos anos, com resultados promissores. Essas técnicas exploram várias características da transformada wavelet, tais como a magnitude de coeficientes e sua evolução ao longo das escalas. Neste trabalho, essas características da transformada wavelet são exploradas para a obtenção de novas técnicas de filtragem com preservação das bordas.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Técnicas de Processamento de Imagens e de Computação Gráfica vêm sendo empregadas há bastante tempo para o diagnóstico por imagens em Medicina. Mais recentemente, aplicações baseadas em modelos anatômicos, tanto extraídos de volumes de imagens como criados com base em estudos de anatomia, despontam com força. Tais modelos visam suportar simulação de movimento e de fisiologia. Porém, para que isso se torne realidade, modelos anatômicos do corpo humano precisam ser construídos e aperfeiçoados. Entre outras funcionalidades, esses modelos devem ser capazes de representar o movimento articulado do corpo humano. O problema de modelagem das articulações já foi considerado em diversos trabalhos, principalmente em Robótica e Animação. Entretanto, esses trabalhos não levaram em conta fidelidade anatômica com profundidade suficiente para que pudessem ser utilizados em aplicações de Medicina. O principal objetivo deste trabalho, portanto, é a criação de uma estratégia de representação de articulações embasada em características anatômicas para modelagem de esqueletos humanos virtuais. Um estudo da anatomia do esqueleto humano é apresentado, destacando os tipos de articulações humanas e aspectos do seu movimento. Também é apresentado um estudo dos modelos de articulações encontrados na literatura de Computação Gráfica, e são comentados alguns sistemas de software comercial que implementam corpos articulados. Com base nesses dois estudos, procurou-se identificar as deficiências dos modelos existentes em termos de fidelidade anatômica e, a partir disso, propor uma estratégia de representação para articulações humanas que permitisse a construção de corpos humanos virtuais anatomicamente realísticos. O modelo de articulações proposto foi projetado com o auxílio de técnicas de projeto orientado a objetos e implementado no âmbito do projeto Virtual Patients. Usando as classes do modelo, foi construído um simulador de movimentos, que recebe a descrição de um corpo articulado através de um arquivo em formato XML e apresenta uma animação desse corpo. A descrição do movimento também é especificada no mesmo arquivo. Esse simulador foi utilizado para gerar resultados para verificar a correção e fidelidade do modelo articular. Para isso, um joelho virtual foi construído, seus movimentos foram simulados e comparados com outros joelhos: o modelo de outro simulador, um modelo plástico anatômico e o joelho real.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A visualização em tempo real de cenas complexas através de ambientes de rede é um dos desafios na computação gráfica. O uso da visibilidade pré-computada associada a regiões do espaço, tal como a abordagem dos Potentially Visible Sets (PVS), pode reduzir a quantidade de dados enviados através da rede. Entretanto, o PVS para algumas regiões pode ainda ser bastante complexo, e portanto uma estratégia diferente para diminuir a quantidade de informações é necessária. Neste trabalho é introduzido o conceito de Smart Visible Set (SVS), que corresponde a uma partição das informações contidas no PVS segundo o ângulo de visão do observador e as distâncias entre as regiões. Dessa forma, o conceito de “visível” ou de “não-visível” encontrado nos PVS é estendido. A informação referente ao conjunto “visível” é ampliada para “dentro do campo de visão” ou “fora do campo de visão” e “longe” ou “perto”. Desta forma a informação referente ao conjunto “visível” é subdividida, permitindo um maior controle sobre cortes ou ajustes nos dados que devem ser feitos para adequar a quantidade de dados a ser transmitida aos limites impostos pela rede. O armazenamento dos SVS como matrizes de bits permite ainda uma interação entre diferentes SVS. Outros SVS podem ser adicionados ou subtraídos entre si com um custo computacional muito pequeno permitindo uma rápida alteração no resultado final. Transmitir apenas a informação dentro de campo de visão do usuário ou não transmitir a informação muito distante são exemplos dos tipos de ajustes que podem ser realizados para se diminuir a quantidade de informações enviadas. Como o cálculo do SVS depende da existência de informação de visibilidade entre regiões foi implementado o algoritmo conhecido como “Dual Ray Space”, que por sua vez depende do particionamento da cena em regiões. Para o particionamento da cena em uma BSP-Tree, foi modificada a aplicação QBSP3. Depois de calculada, a visibilidade é particionada em diferentes conjuntos através da aplicação SVS. Finalmente, diferentes tipos de SVS puderam ser testados em uma aplicação de navegação por um cenário 3D chamada BSPViewer. Essa aplicação também permite comparações entre diferentes tipos de SVS e PVS. Os resultados obtidos apontam o SVS como uma forma de redução da quantidade de polígonos que devem ser renderizados em uma cena, diminuindo a quantidade de informação que deve ser enviada aos usuários. O SVS particionado pela distância entre as regiões permite um corte rápido na informação muito distante do usuário. Outra vantagem do uso dos SVS é que pode ser realizado um ordenamento das informações segundo sua importância para o usuário, desde que uma métrica de importância visual tenha sido definida previamente.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A computação de tempo real é uma das áreas mais desafiadoras e de maior demanda tecnológica da atualidade. Está diretamente ligada a aplicações que envolvem índices críticos de confiabilidade e segurança. Estas características, inerentes a esta área da computação, vêm contribuindo para o aumento da complexidade dos sistemas tempo real e seu conseqüente desenvolvimento. Isto fez com que mecanismos para facilitar especificação, delimitação e solução de problemas passem a ser itens importantes para tais aplicações. Este trabalho propõe mecanismos para atuarem no desenvolvimento de sistemas de tempo real, com o objetivo de serem empregados como ferramenta de apoio no problema da verificação de presença de inconsistências, que podem vir a ocorrer nos vários modelos gerados partir da notação da linguagem de modelagem gráfica para sistemas de tempo real - UML-RT(Unified Modeling Language for Real Time). Estes mecanismos foram projetados através da construção de um metamodelo dos conceitos presentes nos diagramas de classe, de objetos, de seqüência, de colaboração e de estados. Para construir o metamodelo, utiliza-se a notação do diagrama de classes da UML (Unified Modeling Language). Contudo, por intermédio das representações gráficas do diagrama de classes não é possível descrever toda a semântica presente em tais diagramas. Assim, regras descritas em linguagem de modelagem OCL (Object Constraint Language) são utilizadas como um formalismo adicional ao metamodelo. Com estas descrições em OCL será possível a diminuição das possíveis ambigüidades e inconsistências, além de complementar as limitações impostas pelo caráter gráfico da UML. O metamodelo projetado é mapeado para um modelo Entidade&Relacionamento. A partir deste modelo, são gerados os scripts DDL (Data Definition Language) que serão usados na criação do dicionário de dados, no banco de dados Oracle. As descrições semânticas escritas através de regras em OCL são mapeadas para triggers, que disparam no momento em que o dicionário de dados é manipulado. O MET Editor do SiMOO-RT é a ferramenta diagramática que faz o povoamento dos dados no dicionário de dados. SiMOO-RT é uma ferramenta orientada a objetos para a modelagem, simulação e geração automática de código para sistemas de tempo real.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

As tarefas de visão computacional incentivam uma significativa parte da pesquisa em todas as áreas científicas e industriais, entre as quais, cita-se a área voltada para o desenvolvimento de arquiteturas de computadores. A visão computacional é considerada um dos problemas mais desafiadores para a computação de alto desempenho, pois esta requer um grande desempenho, bem como um alto grau de flexibilidade. A flexibilidade é necessária pois a visão computacional abrange aplicações em que há diferentes tarefas a serem realizadas com diferentes necessidades de desempenho. Esta flexibilidade é particularmente importante em sistemas destinados a atuar como ambientes experimentais para novas técnicas de processamento visual ou para a prototipação de novas aplicações. Computação configurável tem demonstrado, por meio de exemplos implementados pela comunidade científica, fornecer uma boa relação entre alto desempenho e flexibilidade necessária para a implementação de diferentes técnicas utilizadas na área de visão computacional. Contudo, poucos esforços de pesquisa têm sido realizados na concepção de sistemas completos visando a solução de um problema de visão computacional, incluindo ambos os requisitos de software e de hardware. O principal objetivo deste trabalho é mostrar que as técnicas e tecnologias disponíveis na área de computação configurável podem ser empregadas para a concepção de um sistema capaz de implementar um grande número de aplicações da área de visão computacional na pesquisa e no ambiente industrial. Entretanto, não é escopo deste trabalho implementar um sistema de computação que seja suficiente para abordar os requerimentos necessários para todas as aplicações em visão computacional, mas os métodos aqui introduzidos podem ser utilizados como uma base geral de implementação de várias tarefas de visão computacional. Este trabalho utiliza ambientes que permitem implementações conjuntas de hardware e software, pois os mesmos facilitam a validação das técnicas aqui apresentadas, por meio da implementação de um estudo de caso, sendo parte deste estudo de caso implementado em software e outra parte em hardware.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A análise de um algoritmo tem por finalidade melhorar, quando possível, seu desempenho e dar condições de poder optar pelo melhor, dentre os algoritmos existentes, para resolver o mesmo problema. O cálculo da complexidade de algoritmos é muito dependente da classe dos algoritmos analisados. O cálculo depende da função tamanho e das operações fundamentais. Alguns aspectos do cálculo da complexidade, entretanto, não dependem do tipo de problema que o algoritmo resolve, mas somente das estruturas que o compõem, podendo, desta maneira, ser generalizados. Com base neste princípio, surgiu um método para o cálculo da complexidade de algoritmos no pior caso. Neste método foi definido que cada estrutura algorítmica possui uma equação de complexidade associada. Esse método propiciou a análise automática da complexidade de algoritmos. A análise automática de algoritmos tem como principal objetivo tornar o processo de cálculo da complexidade mais acessível. A união da metodologia para o pior caso, associada com a idéia da análise automática de programas, serviu de motivação para o desenvolvimento do protótipo de sistema ANAC, que é uma ferramenta para análise automática da complexidade de algoritmos não recursivos. O objetivo deste trabalho é implementar esta metodologia de cálculo de complexidade de algoritmos no pior caso, com a utilização de técnicas de construção de compiladores para que este sistema possa analisar algoritmos gerando como resultado final a complexidade do algoritmo dada em ordens assintóticas.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos científicos e tecnológicos do desenvolvimento de software. No desenvolvimento de software, a fase de especificação dos requisitos é uma das mais importantes, visto que erros não detectados nesta são propagados para as fases posteriores. Quanto mais avançado estiver o desenvolvimento, mais caro custa reparar um erro introduzido nas fases iniciais, pois isto envolve reconsiderar vários estágios do desenvolvimento. A prototipação permite que os requisitos do software sejam validados logo no início do desenvolvimento, evitando assim a propagação de erros. Paralelamente, a utilização de métodos formais visa revelar inconsistências, ambigüidades e falhas na especificação do software, que podem caso contrário, não serem detectadas. Usar a prototipação de software juntamente com uma notação formal enfatiza a especificação do problema e expõe o usuário a um sistema “operante” o mais rápido possível, de modo que usuários e desenvolvedores possam executar e validar as especificações dos requisitos funcionais. O objetivo principal deste trabalho é instanciar uma técnica da área de Prototipação de Software que capacite o engenheiro de software gerar automaticamente protótipos executáveis a partir de especificações formais de tipos abstratos de dados, na notação PROSOFT-algébrico, visando a validação dos requisitos funcionais logo no início do desenvolvimento do software. Para tanto foi proposto um mapeamento da linguagem PROSOFT-algébrico para OBJ. Como OBJ possui um eficiente sistema de reescrita de termos implementado, a utilização deste propicia a prototipação de tipos abstratos de dados, especificados em PROSOFT-algébrico. Os componentes envolvidos na definição deste trabalho, assim como o mapeamento entre as linguagens, foram especificados algebricamente e implementados no ambiente de desenvolvimento de software PROSOFT. A implementação serviu para validar o mapeamento proposto através de dois estudos de caso. Por fim, são apresentadas as conclusões alcançadas e as atividades adicionais vislumbradas a partir do trabalho proposto.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Editores diagramáticos possuem aplicabilidade em diferentes áreas da computação, dentre elas ferramentas CASE, editores gráficos, CAD para circuitos eletrônicos, etc. Uma subclasse desse tipo de editores adiciona a funcionalidade de execução aos diagramas manipulados, permitindo ao usuário executar um diagrama através de técnicas de animação. Esta característica, por sua vez, acarreta na inserção de novos problemas para o projetista de software, sendo o principal deles o reuso independente das funcionalidades de edição e de execução de editores construídos. Com vistas a minimizar este problema este trabalho apresenta uma arquitetura que combina uma estrutura de componentes interconectáveis descrita por meio de BML com um mecanismo de interpretação de scripts como uma alternativa para construção de editores de diagramas com funcionalidade de execução.