Universidade de Brasília

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

Download "Universidade de Brasília"

Transcrição

1 Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Mecanismo de Comunicação Assíncrona para Alinhamento Múltiplo de Sequências com Algoritmo Genético Multi-Ilha Luíza da Silva Jaques Monografia apresentada como requisito parcial para conclusão do Bacharelado em Ciência da Computação Orientadora Prof. a Dr. a Alba Cristina M. A. De Melo Brasília 2011

2 Universidade de Brasília UnB Instituto de Ciências Exatas Departamento de Ciência da Computação Bacharelado em Ciência da Computação Coordenador: Prof. Dr. Marcus Vinicius Lamar Banca examinadora composta por: Prof. a Dr. a Alba Cristina M. A. De Melo (Orientadora) CIC/UnB Prof. a Dr. a Aletéia Patrícia Favacho de Araújo CIC/UnB Prof. Dr. Gerson Henrique Pfitscher ENE/UnB CIP Catalogação Internacional na Publicação Jaques, Luíza da Silva. Mecanismo de Comunicação Assíncrona para Alinhamento Múltiplo de Sequências com Algoritmo Genético Multi-Ilha / Luíza da Silva Jaques. Brasília : UnB, p. : il. ; 29,5 cm. Monografia (Graduação) Universidade de Brasília, Brasília, computação em cluster, 2. alinhamento múltiplo de sequências, 3. algoritmo genético CDU Endereço: Universidade de Brasília Campus Universitário Darcy Ribeiro Asa Norte CEP Brasília DF Brasil

3 Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Mecanismo de Comunicação Assíncrona para Alinhamento Múltiplo de Sequências com Algoritmo Genético Multi-Ilha Luíza da Silva Jaques Monografia apresentada como requisito parcial para conclusão do Bacharelado em Ciência da Computação Prof. a Dr. a Alba Cristina M. A. De Melo (Orientadora) CIC/UnB Prof. a Dr. a Aletéia Patrícia Favacho de Araújo CIC/UnB Prof. Dr. Gerson Henrique Pfitscher ENE/UnB Prof. Dr. Marcus Vinicius Lamar Coordenador do Bacharelado em Ciência da Computação Brasília, 28 de Janeiro de 2011

4 Dedicatória Dedico este trabalho à minha família, em especial aos meus pais, que com carinho e dedicação sempre me deram o apoio necessário em todas as minhas atividades. i

5 Agradecimentos Agradeço à minha orientadora, professora Alba, pela atenção dedicada à minha orientação neste trabalho. Agradeço aos meus amigos, pelo apoio e companheirismo sempre demonstrados. Agradeço à minha família por sempre estar ao meu lado. ii

6 Resumo O potencial de aprendizagem sobre estrutura e função das móleculas possibilitado pelo Alinhamento Múltiplo de Sequências (MSA) é enorme, sendo por isso um dos problemas mais importantes da Bioinformática. O MSA é um problema computacionalmente complexo, no entanto. Por esse motivo, diversas heurísticas têm sido propostas a fim de encontrar soluções aceitáveis com um custo limitado. Dentre os algoritmos utilizados, destacam-se os Algoritmos Genéticos (AGs). Os AGs são meta-heurísticas que combinam escolhas aleatórias e conhecimentos obtidos por resultados prévios para se guiarem no espaço de soluções em problemas de otimização e busca. AGs, no entanto, têm um alto custo computacional. Uma maneira de reduzir esse custo é a utilização de AGs na forma paralela. Em [24], é proposto um modelo de AG paralelo com a utilização da técnica chamada Injeção de Ilhas para o problema MSA. Em comparação a outros modelos, como AGs sequencial e tradicional de Ilha, o modelo apresentado obteve ganhos significativos na qualidade dos alinhamentos. Os ganhos de tempos de execução, no entanto, não foram considerados ideais. O presente trabalho de graduação visa a continuar o projeto descrito em [24], propondo, implementando e avaliando um mecanismo de comunicação assíncrona para a estratégia proposta, com o objetivo de reduzir o tempo de execução do procedimento. Testes demonstraram que a estratégia modificada proposta obteve ganhos consideráveis de tempo em comparação à estratégia original e a outras abordagens, como AGs sequencial e tradicional de Ilha. Palavras-chave: computação em cluster, alinhamento múltiplo de sequências, algoritmo genético iii

7 Abstract The potential for learning about structure and function of molecules by Multiple Sequence Alignment (MSA) is huge, thus it is one of the most important problems of Bioinformatics. MSA is a computationally complex problem though. Therefore, several heuristics have been proposed to find acceptables solutions with a limited cost. Among the used algorithms, Genetic Algorithms (GA) stand out. GAs are metaheuristics which combine random choices and knowledge obtained by prior results to guide themselves in the solution space of optimization and search problems. GAs have a high computational cost though. One way to reduce this cost is the use of GAs in parallel. In [24], a parallel GA model using the technique called Island Injection is proposed for the MSA problem. Compared to other models, such as sequential and island traditional GAs, the presented model achieved significant gains in alignment quality. However, the gains in run time were not considered ideal. This work aims to continue the project described in [24], proposing, implementing and evaluating an asynchronous communication mechanism for the strategy, aiming to reduce the procedure s run time. Tests demonstrated that the proposed modified strategy achieved considerable gains in run time compared to the original strategy and other approaches such as sequential and island traditional GAs. Keywords: cluster computing, multiple sequence alignment, genetic algorithm iv

8 Sumário 1 Introdução 1 2 Algoritmos Genéticos Visão Geral Representação dos Indivíduos Escolha dos parâmetros População Inicial Avaliação e Seleção Geração dos Filhos Operador de Recombinação (Crossover) Operador de Mutação Critério de Parada Algoritmos Genéticos Paralelos Alinhamento Múltiplo de Sequências Visão Geral Tipos de Alinhamentos Alinhamento Dois-a-Dois Algoritmo Needleman-Wunsch Algoritmo Smith-Waterman Alinhamento Múltiplo Função de Avaliação Sum-of-Pairs (SP) Weighted Sum-of-Pairs (WSP) Classes de Algoritmos para MSA Métodos Progressivos Métodos Iterativos Alinhamento Múltiplo de Sequências com Algoritmo Genético Multi- Ilha Visão Geral Algoritmo Genético Multi-ilha Estratégia Paralela Multi-Ilha para o problema de MSA Super Ilha de Alta Resolução Super Ilha de Baixa Resolução Algoritmo Genético Base Análise dos Resultados Obtidos v

9 5 Mecanismo de Comunicação para Alinhamento Múltiplo com Algoritmo Genético Multi-Ilha Deficiências do Mecanismo de Comunicação Original Gargalo nos Intervalos de Migração dos AGBs Gargalo nos Intervalos de Migração Externa Arquitetura da Comunicação Proposta Combatendo o Gargalo nos Intervalos de Migração dos AGBs Combatendo o Gargalo nos Intervalos de Migração Externa Resultados Experimentais Ambiente de Implementação e Testes Comparativo entre as diferentes estratégias após as modificações Comparativo entre as implementações original e modificada Discussão Conclusão e Trabalhos Futuros 56 Referências 58 vi

10 Lista de Figuras 2.1 Fluxograma de um Algoritmo Genético Típico Exemplo de crossover de um ponto: (a) Dois indivíduos são selecionados. (b) Um ponto de corte é escolhido. (c) São recombinadas as subdivisões, gerando dois novos indivíduos Modelo de população única mestre/escravo [15] Modelo de população única refinada [15] Modelo de múltiplas populações não-refinadas [15] Modelos Híbridos de AG. (a) Organização externa em Modelo de Ilha e interna em Modelo de População Única Refinada (b) Organização externa em Modelo de Ilha e interna em Modelo mestre/escravo [15] Comparação das sequências AGCTAGGA e GACTAGGC utilizando o Método Matricial Escalar. A diagonal revela a subsequência CTAGG, presente nas duas cadeias. Retirado de [26] Modelo Sum-of-pairs utilizado na avaliação de um MSA. Três colunas de um alinhamento múltiplo entre cinco sequências são representadas. O método SP de cálculo é representado no diagrama por um grafo que ilustra todas as combinações entre as bases. Linhas pontilhadas representam caracteres iguais e linhas sólidas representam caracteres diferentes. O cálculo utiliza a matriz de substituição BLOSUM62. Adaptado de [26] Alinhamento progressivo. Sequências são representadas nas folhas da árvore evolutiva por ordem de similaridade, sendo alinhadas primeiramente as sequências mais próximas. Esse processo gera os galhos internos, que representam um ancestral, até que se chegue no nó raiz, que representa o MSA completo. Adaptado de [26] Etapas para produção do alinhamento múltiplo de sequências utilizando o método T-Coffee. Adaptado de [30] Etapas do algoritmo SAGA. (a) População inicial (G 0 ). (b) Ciclo realizado em uma geração (G n ). O método continua até que uma condição de parada seja alcançada. As caixas P1 n até Pm n representam os pais na geração n e C1 n+1 até Cm n+1 representam os seus descendentes. As caixas em negrito correspondem aos alinhamentos selecionados para permanecerem inalterados de uma geração para a seguinte. OP representa um operador escolhido aleatoriamente. Adaptado de [29] Estratégia de paralelização descrita em [33] Estratégia de paralelização descrita em [24] vii

11 4.3 Algoritmo do Módulo de Alta Resolução retirado de [24] Algoritmo do Módulo de Baixa Resolução retirado de [24] Algoritmo Genético Base retirado de [24] Estratégias utilizando Algoritmos Genéticos descritas em [24] Gargalos no mecanismo de comunicação original Combate aos gargalos no mecanismo de comunicação original Speedups relativos das implementações original e modificada da estratégia i2, na base 1ac5, com uma população total de 180 indivíduos, para 5000 gerações Speedups relativos das implementações original e modificada da estratégia i2, na base ttkrsyedq, com uma população total de 180 indivíduos, para 5000 gerações Speedups relativos das implementações original e modificada da estratégia i2, na base virul fac, com uma população total de 180 indivíduos, para 5000 gerações viii

12 Lista de Tabelas 3.1 Matriz DP resultante do cálculo do algoritmo Needleman-Wunsch no alinhamento das sequências AGTC e AGTAC, com g = -2, s(x i, y j ) = 1 para x i = y j e s(x i, y j ) = 1 para x i y j. O caminho para obtenção do alinhamento ótimo global obtido está em destaque Matriz DP resultante do cálculo do algoritmo Smith-Waterman no alinhamento das sequências AGTC e AGTAC, com g = -2, s(x i, y j ) = 1 para x i = y j e s(x i, y j ) = 1 para x i y j. O caminho para obtenção do alinhamento ótimo local obtido está em destaque Disposição dos Processos das estratégias i1, i2, p9, p3 e seq nos testes realizados em [24] Sequências utilizadas para a realização dos testes descritos em [24] Resultados dos testes realizados na base real 1ac5 no Cluster-IE para 5000 gerações descritos em [24] Resultados dos testes realizados com as diferentes abordagens após as modificações. Foi testada a base 1ac5, com uma população total de 180 indivíduos, para 5000 gerações, utilizando OpenMPI Resultados dos testes realizados com as diferentes abordagens após as modificações. Foi testada a base ttkrsyedq, com uma população total de 180 indivíduos, para 5000 gerações, utilizando OpenMPI Resultados dos testes realizados com as diferentes abordagens após as modificações. Foi testada a base virul fac, com uma população total de 60 indivíduos, para 5000 gerações, utilizando OpenMPI Resultados dos testes realizados com as implementações original e modificada da estratégia i2, na base 1ac5, com uma população total de 180 indivíduos, para 5000 gerações, utilizando Mpich Resultados dos testes realizados com as implementações original e modificada da estratégia i2, na base ttkrsyedq, com uma população total de 180 indivíduos, para 5000 gerações, utilizando Mpich Resultados dos testes realizados com as implementações original e modificada da estratégia i2, na base virul fac, com uma população total de 180 indivíduos, para 5000 gerações, utilizando Mpich ix

13 Capítulo 1 Introdução Nas últimas décadas, uma enorme quantidade de organismos teve sequenciado seu material genético. Para que seja possível a obtenção de propriedades e características das sequências produzidas, é necessária a utilização de técnicas de análises que podem envolver áreas diversas, como biologia, computação, dentre outras. O campo interdisciplinar envolvendo biologia, ciência da computação, matemática e estatística com o objetivo de prover ferramentas e algoritmos para análise de sequências biológicas, de suas funções e de suas estruturas macromoleculares, é chamado Bioinformática [26]. Uma das mais importantes descobertas da biologia molecular foi a de que frequentemente proteínas de diferentes organismos estão relacionadas. Através do alinhamento simultâneo de várias dessas sequências, é possível a detecção de padrões conservados entre elas ou de possíveis mutações sofridas. O potencial de aprendizagem sobre estrutura e função das móleculas possibilitado pelo Alinhamento Múltiplo de Sequências (MSA) [26] é enorme, sendo por isso um dos problemas mais importantes tratados pela Bioinformática. O MSA é o alinhamento de três ou mais sequências biológicas, normalmente realizado para encontrar alguma relação evolutiva entre elas, podendo servir para identificar algum ancestral comum ou alguma região de código genético similar. No MSA, resíduos homólogos em um conjunto de sequências são alinhados em colunas, através da inserção de lacunas (gaps) no meio ou nas extremidades das sequências [13]. O problema de alinhamento múltiplo de sequências é um problema computacionalmente complexo, tendo sido provado NP-difícil para o método utilizando o cálculo por Sum-of-pairs [37]. Por esse motivo, diversas heurísticas têm sido propostas a fim de encontrar soluções aceitáveis com um custo limitado de memória e processamento. Os algoritmos de solução para o problema de MSA são frequentemente divididos em classes, sendo uma delas baseada em Algoritmos Genéticos (AGs) [23]. Os AGs são metaheurísticas que utilizam técnicas inspiradas pelo modelo da teoria da evolução de Darwin para achar soluções aproximadas em problemas de otimização e busca. Eles utilizam uma combinação de escolhas aleatórias e de conhecimentos obtidos por resultados prévios para se guiarem no espaço de soluções. AGs constituem uma boa estratégia na busca por uma solução aceitável para problemas para os quais não existe um algoritmo determinístico de tempo polinomial conhecido. Algoritmos Genéticos, no entanto, têm um alto custo computacional, já que precisam percorrer boa parte do espaço de soluções em busca de uma aceitável. Uma maneira de reduzir esse custo, acelerando a obtenção de resultados e até melhorando os resultados alcançados, é a utilização de AGs na forma paralela. 1

14 Em [24], a autora propõe a utilização de um modelo de Algoritmo Genético paralelo para a resolução do problema do Alinhamento Múltiplo de Sequências. A estratégia utilizada é chamada Multi-Ilha (ou Injeção de Ilhas), utilizando o modelo de paralelização em Ilhas em níveis. O nível mais externo é constituído por três Super Ilhas de processamento, sendo cada uma delas em um nível interno constituída por três Micro Ilhas, nas quais é executado um Algoritmo Genético Base. Em intervalos pré-definidos, as Ilhas trocam os melhores elementos com seus pares, contribuindo para que o processamento convirja para uma solução melhor com um menor custo. Em uma das Super Ilhas, o AG é implementado de forma a obter soluções melhores com um cálculo de aptidão mais demorado (alta resolução). Nas outras duas Super Ilhas, o cálculo de aptidão implementado é mais leve (de baixa resolução). A estratégia de Injeção de Ilhas proposta obteve ganhos significativos no que se refere à qualidade dos alinhamentos obtidos se comparada a outras abordagens, como as estratégias sequencial e de paralelização simples pelo modelo de Ilha. No que diz respeito aos tempos de execução, no entanto, os resultados não foram considerados ideais. Para um dos testes realizados, por exemplo, a estratégia de Injeção de Ilhas, que conta com nove nós AG, obteve um resultado em metade do tempo da estratégia sequencial, que conta com apenas um nó de processamento. A hipótese levantada para que os ganhos no tempo de execução não tenham sido considerados satisfatórios é que a comunicação entre os nós esteja se realizando de forma síncrona e blocante, causando um overhead de comunicação no modelo. Essa sincronização na comunicação não é necessária, já que a estratégia utilizando AGs é heurística e não-determinística, podendo ser utilizadas funções que realizem comunicação assíncrona, enquanto continua-se a evoluir as populações das ilhas. Quando os dados forem totalmente recebidos, estes podem ser incorporados à população, paralisando a evolução somente quando a comunicação for concluída. O presente trabalho de graduação visa continuar o projeto realizado em [24], propondo, implementando e avaliando um mecanismo de comunicação assíncrona para a estratégia Multi-Ilha proposta, com o objetivo de reduzir o tempo de execução do procedimento, não considerado ideal. Essa evolução tem a intenção de diminuir o custo atribuído à troca de elementos entre os nós de processamento, de forma a reduzir o overhead de comunicação. Em um dos casos de teste, foi conseguida uma redução de tempo na estratégia com o mecanismo implementado neste trabalho de graduação de 21m08s para 8m08s, um ganho de 61,5%. Detalhes de projeto, implementação e testes serão apresentados posteriormente. Este trabalho de graduação está organizado em capítulos. Os Capítulos 2 e 3 se concentram na exposição dos conceitos básicos, como Algoritmos Genéticos e Alinhamento Múltiplo de Sequências. No Capítulo 4, será detalhada a estratégia Multi-ilha para o problema de MSA apresentada em [24], que serve de base para este projeto. O Capítulo 5 apresenta as deficiências percebidas no modelo original de comunicação, detalhando os gargalos encontrados, para em seguida propor uma arquitetura de comunicação não blocante. No Capítulo 6, são apresentados e analisados os resultados dos testes realizados com as implementações original e modificada do algoritmo. Finalmente, o Capítulo 7 apresenta a conclusão e as sugestões de trabalhos futuros. 2

15 Capítulo 2 Algoritmos Genéticos O processo de resolução de um problema pode ser visto como a busca pela melhor solução dentre todas as potenciais soluções para este problema. Para um espaço limitado de soluções candidatas, um método de busca exaustivo pode ser suficiente. Para espaços de busca maiores, nos quais a verificação de todas as soluções possíveis seria extremamente ineficiente, heurísticas podem ser empregadas para que se chegue em uma solução satisfatória em um tempo viável. Algoritmos Genéticos [23] estão entre essas heurísticas, sendo frequentemente utilizados na solução de problemas NP-difíceis [31]. 2.1 Visão Geral Algoritmos Genéticos (AGs) são uma família de modelos computacionais que utilizam algoritmos estocásticos (não determinísticos) para achar soluções aproximadas em problemas de otimização e busca, utilizando para isso métodos que modelam fenômenos naturais [23]. São uma classe particular de programas evolutivos que utilizam técnicas inspiradas por dois princípios básicos: transmissão hereditária das características de um organismo a seus filhos, proposto por Gregor Mendel [9], e seleção natural dos mais aptos, proposto por Charles Darwin [10]. Os Algoritmos Genéticos realizam escolhas aleatórias, utilizando conhecimentos obtidos por resultados prévios, para se guiarem através do espaço de busca de soluções. O método consiste em testar várias das soluções de forma a encontrar uma que se aproxime da solução ótima. O problema de otimização pode ser modelado por uma função objetivo, que obedece a um conjunto de restrições, e a procura por uma solução equivale a procurar um ponto extremo (de máximo ou de mínimo) da função. A resposta para o problema de otimização, ou seja, o ótimo global, será o ponto do domínio que possuir o maior (ou o menor) valor possível para a função objetivo (maior ou menor imagem). O algoritmo de otimização deve tomar cuidado, no entanto, com os chamados ótimos locais, elementos onde a imagem é maior que a imagem dos elementos vizinhos, mas que não são o ótimo global. As heurísticas devem criar procedimentos que evitem uma parada prematura nesses pontos de máximo ou mínimo locais, proporcionando melhores resultados. Uma das estratégias utilizadas pelos AGs para conseguir fugir de ótimos locais é manter uma população de soluções potenciais e não somente um único ponto de busca no espaço [23]. 3

16 Os Algoritmos Genéticos foram concebidos e fundamentados por Holland [21], sendo popularizados por Goldberg [16]. A idéia por trás do algoritmo é fazer o que a natureza faz, simulando o processo de evolução dos seres vivos, com os indivíduos mais aptos tendo mais chances de sobreviver, reproduzir-se e passar o seu material genético, mais adaptado, para as futuras gerações. Uma implementação do algoritmo genético inicia com um conjunto de soluções candidatas (no vocabulário emprestado da genética, indivíduos da população ou indivíduos), que são avaliadas através do cálculo de seu nível de aptidão. Um subconjunto desses indivíduos é selecionado para dar origem a uma nova geração, em teoria mais apta que a geração anterior. Esses indivíduos selecionados são então combinados e modificados pela ação de operadores genéticos, como a recombinação e a mutação, e então é formada uma nova geração, que é avaliada novamente. Esse processo é repetido até que se atinja um resultado satisfatório ou até que algum outro critério de parada pré-estabelecido seja atingido. As etapas de um algoritmo genético típico estão representadas na figura 2.1. Figura 2.1: Fluxograma de um Algoritmo Genético Típico 2.2 Representação dos Indivíduos Os Algoritmos Genéticos mantêm uma população de indivíduos, tal que cada um destes representa uma solução potencial para o problema em questão. Um fator de extrema relevância em AGs é a forma com que os indivíduos são representados. Embora boa parte das soluções utilize a representação na forma de strings binárias, não existe uma representação genérica que atenda a todos os problemas. A representação dos indivíduos na forma de bits pode ser difícil e não natural para alguns problemas, sendo às vezes necessária a utilização de estruturas de dados mais complexas, como números inteiros ou reais [23]. Um grande desafio dos AGs é modelar de forma mais adequada possível o problema e suas soluções, devendo ser possível o armazenamento do máximo possível de informações 4

17 específicas do problema dentro do modelo escolhido. Além disso, a forma de representação das soluções afeta diretamente o progresso de um AG, já que os operadores genéticos têm de ser projetados de forma apropriada para lidar com a estrutura escolhida para a representação dos indivíduos. 2.3 Escolha dos parâmetros Além da forma como os indivíduos são representados, há outros parâmetros que devem ser levados em conta para obter os melhores resultados possíveis do AG. O tamanho da população, por exemplo, afeta diretamente seu desempenho e sua eficiência. Se tomarmos uma população pequena, teremos uma cobertura reduzida do espaço de busca. Uma população muito grande, por sua vez, gera um esforço computacional também muito grande. Tamanho da população, número de gerações, probabilidade de aplicação dos operadores genéticos e critério de parada são alguns dos fatores que influenciam no desempenho do algoritmo e que devem ser adaptados de acordo com as características particulares da classe de problema que está sendo tratada [23]. A determinação do valor apropriado para cada um destes parâmetros é um processo experimental, existindo na literatura apenas indicações de intervalos apropriados. 2.4 População Inicial A população inicial é uma amostra do conjunto de todas as soluções possíveis, podendo ser gerada aleatoriamente ou por algum outro método. A escolha da população inicial deve ter a preocupação de refletir o conjunto de soluções como um todo, representando a diversidade existente entre os indivíduos, de forma a evitar que o algoritmo seja levado a uma convergência prematura (ótimo local). Uma forma de viabilizar isto seria gerar a população inicial procurando selecionar, dentro do espaço de busca, soluções com intervalos uniformes entre si. Uma outra técnica utilizada a fim de encontrar melhores resultados é o seeding, que consiste em utilizar resultados previamente encontrados por outros algoritmos de otimização como entrada para o AG, direcionando o algoritmo para os pontos ótimos. 2.5 Avaliação e Seleção A etapa de avaliação consiste em medir a proximidade do indivíduo com o resultado procurado, ou seja, sua aptidão. Para isso, é projetada uma função de avaliação que faz o papel de ambiente, dando uma maior pontuação às soluções mais aptas. Essa medição objetiva é o critério que permite ao algoritmo evoluir, indicando quais são as melhores soluções para o problema em questão. A rotina de avaliação é utilizada pela próxima etapa, a seleção. A seleção deve guiar o processo de busca, escolhendo os indivíduos que participarão da etapa seguinte, de geração de filhos. Na seleção, é dada preferência aos indivíduos mais aptos, já que a idéia é que 5

18 eles possam passar suas características para a próxima geração, mas os indivíduos menos adaptados não são descartados, não desconsiderando-se, dessa forma, a sua diversidade. Essa diversidade é de extrema importantância para o AG, pois permite a exploração de diversos pontos do espaço, evitando a convergência prematura e a estagnação do processo evolutivo. Um algoritmo bem popular para a seleção é o da roleta [22], onde são atribuídas probabilidades de serem escolhidos aos indivíduos de acordo com a sua aptidão. Às soluções indicadas pela etapa de avaliação como mais aptas são atribuídas probabilidades maiores de serem escolhidas que às soluções consideradas não tão boas. Esse processo se assemelha ao processo de seleção natural, onde normalmente os mais aptos sobrevivem e se reproduzem, mas existe uma chance de que os mais fracos venham a se reproduzir também e passar suas características adiante. Outras formas de seleção são o torneio, o sorteio e a seleção elitista [17, 5]. 2.6 Geração dos Filhos Os indivíduos selecionados na etapa anterior são combinados e modificados de forma a produzir uma nova geração de indivíduos, potencialmente mais evoluídos que os da população anterior. A geração dos indivíduos filhos é obtida aplicando-se operadores que simulam os processos de evolução natural, ditos operadores genéticos. Os dois processos mais utilizados para gerar os novos indivíduos são a mutação e a recombinação (crossover), que ao mesmo tempo que favorecem a diversidade da população, mantém o progresso já conquistado. Os operadores genéticos devem ser projetados de forma a lidar da melhor maneira possível com o modelo de representação de soluções escolhido, devendo passar informações relevantes do indivíduo pai para o filho ao mesmo tempo em que incorpora modificações significativas para permitir a evolução. Esses dois componentes (representação e operadores) influenciam um ao outro diretamente, devendo ser analisados em conjunto. Além da geração dos filhos, é importante analisar como se dará a formação da próxima geração de indivíduos. Essa nova geração pode ser formada totalmente pelos novos indivíduos, por uma simples substituição dos N indivíduos pais pelos N indivíduos filhos ou ainda pode-se analisar o conjunto de indivíduos pais e filhos como um todo, selecionando N indivíduos desse conjunto mais amplo. Essas duas estratégias podem provocar uma alteração bastante significativa de uma geração para a outra, tendendo a diminuir conforme a execução do algoritmo. Existem outras estratégias, como o steady-state e o elitismo, que realizam a substituição dos indivíduos de maneira menos radical. O steady-state mantém a população original, com exceção de alguns poucos indivíduos menos adaptados, que são substituídos pelos descendentes mais aptos. No elitismo ocorre o oposto, os melhores indivíduos da população atual são mantidos na nova geração, sem sofrer modificações, enquanto os outros são substituídos pelos novos indivíduos. Uma preocupação do algoritmo deve ser com os limites do domínio de soluções possíveis. Existem variadas formas de lidar com um descendente que não esteja dentro desses limites, soluções ditas infactíveis. Embora em uma primeira olhada descartar essas so- 6

19 luções pareça o lógico a fazer, não é normalmente o procedimento realizado pelos AGs. Esses indivíduos infactíveis, mesmo fora do domínio, podem estar próximos a uma região interna ao espaço de busca e sua diversidade pode vir a ser utilizada pelo algoritmo para chegar a outras soluções possíveis [23]. Uma possível forma para lidar com esses indivíduos é o uso de penalidades. O uso dessa estratégia deve ser feito com cautela, no entanto, já que uma escolha ruim no grau dessas penalidades pode levar o processo a convergir sem encontrar o melhor indivíduo. Se o procedimento incorporar uma penalidade muito alta dentro da rotina de avaliação e o risco de produzir um indivíduo infactível também for alto, pode-se correr o risco de criar um AG que passa boa parte do seu tempo avaliando soluções ilegais ou ainda que, ao encontrar uma solução válida, convirja pra ela, já que caminhos possíveis para outras soluções passariam por indivíduos ilegais. Por outro lado, se o algoritmo incorporar penalidades mais moderadas, o procedimento pode gerar indivíduos que violem as restrições mas que ainda assim sejam considerados mais aptos, já que o resto da função de avaliação pode ser melhor satisfeita aceitando a restrição do que a evitando [23] Operador de Recombinação (Crossover) O operador de recombinação realiza a etapa que corresponde à reprodução sexuada na natureza: os descendentes recebem em seu código genético parte do material genético do pai e parte do material genético da mãe. A recombinação normalmente envolve duas etapas, seleção de indivíduos dois a dois para formarem um par de reprodução e escolha de como ocorrerá a divisão do "material genético"para ser recombinado no indivíduo filho. Essas etapas são realizadas de maneira aleatória ou fazendo uso de heurísticas. A probabilidade de o operador de crossover ser aplicado a um par de soluções é chamada taxa de crossover. Essa taxa é predominante na etapa de reprodução, sendo escolhido um valor bem maior do que o da taxa de mutação. A escolha desse valor, no entanto, deve ser feita com cautela. Quanto maior for essa taxa, mais rapidamente novos indivíduos serão introduzidos na população. Se esta for alta demais, a população sofrerá alterações muito grandes a cada geração, podendo ocorrer perda de estruturas com alto grau de aptidão. Por outro lado, se for uma taxa muito baixa, a evolução do algoritmo pode tornar-se muito lenta. Como já mencionado, a representação escolhida para os indivíduos da população afeta diretamente a modelagem dos operadores. No caso de os indivíduos serem representados por cadeias binárias ou por strings, um dos métodos de implementação do operador mais conhecidos é o crossover de N-pontos [24]. Neste método, são escolhidas aleatoriamente n posições onde serão particionados os indivíduos (pontos de corte). Dois indivíduos filhos são gerados permutando-se as subdivisões dos indivíduos pais. Esse processo pode ser usado para 1 ou mais pontos de corte, sendo os crossovers de 1, 2 e 4 pontos os mais comuns. Outra estratégia bastante comum é o uso do crossover uniforme [34]. No caso de indivíduos representados por números reais, outros operadores de crossover são geralmente utilizados, tais como o crossover de média [11] e o crossover linear [39]. 7

20 Figura 2.2: Exemplo de crossover de um ponto: (a) Dois indivíduos são selecionados. (b) Um ponto de corte é escolhido. (c) São recombinadas as subdivisões, gerando dois novos indivíduos Operador de Mutação O operador de mutação é o responsável pela variabilidade genética da população. Alterando de forma pontual o indivíduo, fornece meios para a introdução de novos elementos bem distintos no conjunto de análise. A mutação assegura a possibilidade de se alcançar qualquer ponto do espaço de busca, contornando também o problema de convergência em ótimos locais, já que é capaz de alterar a direção da busca. A probabilidade de aplicação do operador é dada pela taxa de mutação, geralmente inferior à taxa de crossover por se tratar de uma operação que destrói a informação existente, substituindo-a por uma nova. No caso de indivíduos binários, o operador atua fazendo uma inversão simples do valor lógico dos bits escolhidos aleatoriamente, de 1 para 0 ou de 0 para 1. Caso os indivíduos sejam números reais, os operadores mais comuns são mutação uniforme [23] e mutação de limite [23]. 2.7 Critério de Parada As condições de parada do Algoritmo Genético devem ser previamente determinadas. Em geral, esses critérios avaliam se o algoritmo chegou a uma solução com grau de aptidão aceitável ou se o algoritmo se estabilizou, ou seja, atingiu algum ponto de convergência em que nenhuma melhora significativa é conseguida com o passar das gerações, não fazendo sentido continuar. Também é normalmente definido um número máximo de gerações para assegurar que o algoritmo não entre em um processamento infinito. Essas condições garantem o fim do procedimento. 2.8 Algoritmos Genéticos Paralelos Algoritmos Genéticos são uma ferramenta muito poderosa para a solução de problemas de otimização, sendo uma boa estratégia na busca de uma solução ótima para problemas para os quais não existe um algoritmo determinístico polinomial conhecido. Esses métodos, no entanto, têm um alto custo computacional, já que percorrem boa parte do domínio de soluções em busca de uma boa aproximação para a solução ótima. Boa parte desse esforço computacional, contudo, é realizado em etapas de processamento independentes, como a rotina de avaliação, por exemplo. Essas etapas indepen- 8

21 dentes sendo processadas serialmente podem se tornar um gargalo para a evolução do algoritmo, sendo interessante se pensar na possibilidade de realizá-las em linhas de execução simultâneas. Além disso, um AG observa diferentes regiões do espaço de busca de uma só vez, realizando escolhas que visam a evolução contínua da população como um todo, procedimento que pode ser replicado, sem perda no processo, para rodar em mais de uma linha de execução paralela, tal que a evolução conseguida por cada um dos diferentes processos fosse compartilhada com os demais. Dessa forma, por conta de seu alto custo computacional, da independência de algumas de suas etapas e de sua alta escalabilidade, os AGs apresentam um grande potencial em ser empregados em ambientes distribuídos, podendo ser considerados uma estratégia paralela por natureza [23]. A técnica utilizada em sua forma paralela tem como objetivo, além da redução de tempo de processamento, também a obtenção de soluções de melhor qualidade. Existem variadas formas de implementação do paralelismo em AGs, dependendo de alguns elementos a serem considerados: Estrutura de representação dos indivíduos, modelagem dos operadores e rotina de avaliação de aptidão. Utilização de uma única população compartilhada ou divisão desta em sub-populações. No caso de subdivisão da população, escolha do método para troca de informações. Escolha do método de seleção da geração seguinte, global ou local. De acordo com Cantú-Paz [7, 8], as estratégias de paralelização do AG podem ser divididas em três categorias: 1. População única mestre/escravo (global single-population master-slave): Neste modelo, uma única população é mantida centralizada e a rotina de avaliação é realizada de forma paralela. O processador mestre se comporta como um AG sequencial, diferenciando-se apenas no cálculo de aptidão, etapa na qual distribui os filhos para serem analisados pelos processadores escravos. Os escravos realizam o cálculo de aptidão devolvendo o resultado ao mestre, que dará continuidade à sua execução. Essa estratégia também é conhecida como modelo de AG Global. A Figura 2.3 ilustra o modelo. 2. População única refinada (single-population fine-grained): Neste modelo também é mantida uma população única, mas esta é distribuída espacialmente entre os nós participantes do sistema. Cada nó é responsável pela evolução de uma determinada parcela da população, podendo no entanto haver interação entre os processos através do compartilhamento de indivíduos com os nós vizinhos. O modelo pode ser visualizado como uma matriz, em que cada elemento é um nó de processamento, podendo enxergar apenas os elementos vizinhos. A Figura 2.4 ilustra o modelo. 3. Múltiplas populações não-refinadas (multiple-population coarse-grained): Nesta estratégia, também conhecida como modelo de Ilha, a população é particionada e distribuída entre os nós de processamento (ilhas de processamento). Cada ilha realiza a evolução de sua subpopulação separadamente e, em intervalos pré-definidos 9

22 Figura 2.3: Modelo de população única mestre/escravo [15]. Figura 2.4: Modelo de população única refinada [15]. (chamados intervalos de migração), trocam indivíduos com as ilhas vizinhas compartilhando o progresso obtido. A comunicação entre os nós é um ponto chave desse método, já que é uma etapa mais lenta que as outras computações, deve ser projetada de modo a não constituir um gargalo no processo. O número de ilhas e a topologia dessas ilhas também são elementos que devem ser analisados com cautela. A Figura 2.5 ilustra o modelo. Figura 2.5: Modelo de múltiplas populações não-refinadas [15]. Além dessas três, existem ainda estratégias híbridas, que utilizam mais de um modelo de paralelização, sendo capazes de obter resultados ainda melhores que modelos individu- 10

23 ais, muitas vezes. Ao modelo de Ilha pode ser incorporado tanto o modelo mestre/escravo, quanto o modelo de população única refinada, realizando o processamento interno de cada ilha com uma dessas estratégias. Figura 2.6: Modelos Híbridos de AG. (a) Organização externa em Modelo de Ilha e interna em Modelo de População Única Refinada (b) Organização externa em Modelo de Ilha e interna em Modelo mestre/escravo [15]. 11

24 Capítulo 3 Alinhamento Múltiplo de Sequências A descoberta, pela biologia molecular, de que proteínas de diferentes organismos estão frequentemente relacionadas, constituiu um passo muito importante para o entendimento do processo evolutivo. Padrões conservados podem ser identificados em proteínas de espécies distantes, muitas vezes desempenhando funções parecidas ou até idênticas. Em outros casos, esses padrões podem ter se alterado durante o processo de seleção natural, desempenhando outras funções. Através do alinhamento simultâneo de várias sequências, é possível a análise de padrões conservados entre elas ou de possíveis mutações sofridas [26]. O Alinhamento Múltiplo de Sequências [26] é uma importante ferramenta no estudo das proteínas, sendo de grande auxílio aos biólogos nas análises das suas estruturas e funcionalidades. Os biólogos são capazes de produzir alinhamentos manualmente, utilizando seus conhecimentos específicos sobre a evolução das cadeias protéicas, mas esse alinhamento manual pode ser enfadonho e muitas vezes complexo [13]. Por esse motivo, métodos automatizados de alinhamento múltiplo são um tópico extensivamente pesquisado na área de Bioinformática. 3.1 Visão Geral Alinhamento Múltiplo de Sequências (Multiple Sequence Alignment - MSA) é o alinhamento de três ou mais sequências biológicas tal que cada coluna do alinhamento é uma tentativa de representar as mudanças evolutivas ocorridas naquela posição da sequência [26]. Em um MSA, resíduos homólogos em um conjunto de sequências são alinhados em colunas [13]. Isso é possível através da inserção de lacunas (gaps) nas sequências. À princípio, o alinhamento múltiplo pode parecer apenas como uma generalização do alinhamento de duas sequências e, na prática, muitas vezes o processo de alinhar três ou mais sequências passa pelo alinhamento dois-a-dois. A utilização do MSA pode, no entanto, ter aplicações bastante distintas do alinhamento entre um par de sequências. O alinhamento dois-a-dois é capaz de revelar a existência de uma relação funcional ou evolutiva entre um par de sequências, já o alinhamento entre três ou mais sequências pode revelar similaridades entre uma família de proteínas [26]. Estas similaridades podem ser fracas ou se encontrar dispersas, muitas vezes não ficando aparentes no comparativo entre duas sequências mas ficando claras ao comparar-se um conjunto de cadeias relacionadas [18]. 12

25 O MSA constitui uma ferramenta para detecção e representação das similaridades entre um conjunto de sequências. Estas similaridades são capazes de revelar o histórico do processo evolutivo, revelar também importantes padrões conservados em aminoácidos ou estruturas moleculares comuns, ou dar indícios sobre cadeias que tenham funções biológicas em comum [18]. Também são utilizadas para caracterizar famílias ou superfamílias de proteínas, sendo utilizadas na busca por outros membros em uma base de dados. Famílias de proteínas podem ser representadas em função da comparação entre sequências desta família, sendo possível, a partir de um alinhamento múltiplo, especificar um perfil que traduza a frequência com que cada caracter ocorre em uma dada coluna. Os perfis são muitas vezes chamados de matrizes de peso (weight matrices), sendo bastante úteis na comparação entre conjuntos de sequências. Uma vez que tenha sido encontrado um alinhamento múltiplo adequado, o número ou o tipo de alterações nos resíduos alinhados podem ser utilizados para uma análise filogenética das sequências [26]. Cada coluna do alinhamento é capaz de predizer as mudanças que ocorreram em uma posição da sequência durante a evolução de uma família de proteínas. Essas mudanças podem envolver inserções, remoções ou substituições de bases. Algumas vezes a posição é tão importante para a funcionalidade da cadeia que não são observadas modificações. Em outros casos, a posição é menos importante, podendo ter ocorrido substituições em uma parcela dos aminoácidos, ditos não-críticos, sem que se tenha um efeito destrutivo na proteína ou em sua funcionalidade [18]. O problema de alinhamento múltiplo de sequências é um problema computacionalmente complexo. Para o alinhamento entre duas sequências, já foram demonstradas diversas técnicas com complexidade quadrática de tempo capazes de produzir um alinhamento ótimo. A extensão desses algoritmos para o alinhamento de mais duas sequências, no entanto, é extremamente custosa em termos de tempo e espaço, não sendo na maioria das vezes viável para um grande número de sequências. Em uma tentativa de minimizar estes custos, a maioria dos programas estudados para alinhamento múltiplo fazem uso de heurísticas. 3.2 Tipos de Alinhamentos Os alinhamentos podem ser de dois tipos básicos: global ou local [26]. No alinhamento global, a cadeia inteira de aminoácidos é considerada, sendo importante para o reconhecimento de sequências protéicas que podem ter se conservado em quase sua totalidade através do processo evolutivo, em diferentes organismos. Padrões conservados localmente podem ser identificados através de métodos de alinhamento locais, que alinham regiões localizadas das cadeias. Os dois tipos de alinhamento, global e local, se aplicam tanto ao alinhamento de apenas duas sequências quanto a alinhamentos de três ou mais sequências. 3.3 Alinhamento Dois-a-Dois O alinhamento global entre duas sequências foi definido como [18]: Um alinhamento global de k = 2 palavras S = {S 1,..., S k } é a associação ordenada de cada elemento de uma sequência com um elemento na outra sequência, po- 13

26 dendo ser um elemento em branco. Ao final do alinhamento, as sequências possuem comprimento igual, l, devido a inserção de elementos em branco. Como resultado é obtida uma tabela de k linhas e l colunas, onde o elemento na posição i da palavra S v está na linha v e coluna i. O alinhamento local pode ser definido como [18]: Um alinhamento local de k = 2 palavras S = {S 1,..., S k } é obtido a partir da seleção de uma subpalavra S i de cada S i S. Em seguida, é realizado um alinhamento global entre essas subpalavras. O alinhamento de cadeias dois-a-dois pode ser realizado utilizando três métodos básicos [26]: Métodos Matriciais Escalares (Dot-Matrix Methods): Estes métodos exibem graficamente possíveis alinhamentos como diagonais da matriz. São capazes de revelar inserções, remoções e repetições de padrões de uma maneira mais clara que outros métodos automatizados. Uma limitação do método, no entanto, é que ele não mostra o alinhamento das sequências propriamente dito, apenas os pontos de similaridade. Alinhamentos locais são observados facilmente através da utilização deste método. Em uma possível implementação de Método Matricial Escalar, uma das sequências é colocada na primeira linha e a outra na primeira coluna de uma matriz bidimensional. As posições onde os caracteres combinam são marcadas na matriz. Gráficos de sequências fortemente relacionadas aparecerão como uma única linha diagonal na matriz. A figura 3.1 ilustra o alinhamento entre as sequências AGCTAGGA e GACTAGGC utilizando este método. Figura 3.1: Comparação das sequências AGCTAGGA e GACTAGGC utilizando o Método Matricial Escalar. A diagonal revela a subsequência CTAGG, presente nas duas cadeias. Retirado de [26] 14

27 Métodos de Programação Dinâmica: Os algoritmos de programação dinâmica comparam cada par de elementos das duas sequências, gerando um alinhamento. Já foi demonstrado matematicamente que o alinhamento produzido por estes algoritmos é um alinhamento ótimo. O algoritmo básico de programação dinâmica pode ser adaptado tanto para alinhamento global quanto para alinhamento local, sendo os algoritmos Needleman-Wunsch [27] e Smith-Waterman [38] projetados respectivamente para alinhar globalmente e localmente duas sequências. Por fornecerem uma solução ótima, a utilização desses algoritmos torna-se bem interessante. Estes métodos serão detalhados nas seções e O sistema de pontuação escolhido para avaliar o alinhamento afeta diretamente o resultado obtido. O alinhamento encontrado é ótimo sempre considerando o sistema adotado. Mais de um alinhamento ótimo para o mesmo conjunto de entradas pode existir, ficando a cargo do programa implementado identificar ou não as diferentes possibilidades. O programa Lalign [26], por exemplo, é capaz de fornecer vários alinhamentos diferentes. O alinhamento ótimo fornece informações importantes aos biólogos, fornecendo meios para que sejam inferidas similaridades funcionais, estruturais e evolutivas entre as sequências. A idéia por trás do método de programação dinâmica é resolver o problema a partir da resolução de instâncias menores deste problema. A técnica implementa uma solução tipicamente recursiva de uma forma mais eficiente, armazenando os resultados parciais, possivelmente em uma tabela ou matriz, de forma a evitar repetições de cálculos. A Programação Dinâmica pode ser aplicada também ao alinhamento múltiplo. No entanto, o número de sequências que este método é capaz de alinhar otimamente é limitado, já que o número de passos computacionais e a quantidade de memória requeridos crescem exponencialmente com o número de sequências sendo analisadas. Métodos K-Tupla (K-Tuple Methods ou Word Methods): Estes métodos são capazes de alinhar rapidamente duas sequências fazendo a busca primeiramente por trechos idênticos entre elas e em seguida juntando estes trechos em um alinhamento, através de programação dinâmica. Os algoritmos FASTA [32] e BLAST [3] fazem uso deste método Algoritmo Needleman-Wunsch O algoritmo Needleman-Wunsch [27] é utilizado para produzir alinhamentos globais ótimos entre pares de sequências biológicas. O alinhamento global é conseguido através da inserção de espaços em branco em posições arbitrárias das sequências [26]. A única restrição é que um espaço em branco inserido em uma das sequências não pode estar pareado com outro espaço inserido na outra sequência. Ao final do procedimento, as duas sequências alinhadas terão o mesmo tamanho, considerando possivelmente espaços em branco nas suas extremidades. Para o problema de alinhamento de sequências, considere a produção deste alinhamento em etapas, começando com um alinhamento inicial entre o primeiro par de caracteres e adicionando em seguida outros pares até completar o alinhamento total. Em 15

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS ALGORITMOS GENÉTICOS INTRODUÇÃO São métodos adaptativos que podem ser usados para resolver problemas de busca e otimização. Na natureza a combinação de boas características provenientes de diferentes indivíduos

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Balanceamento de Carga

Balanceamento de Carga 40 4. Balanceamento de Carga Pode-se entender por balanceamento de carga uma política a ser adotada para minimizar tanto a ociosidade de utilização de alguns equipamentos quanto a super utilização de outros,

Leia mais

PLANEJAMENTO DA MANUFATURA

PLANEJAMENTO DA MANUFATURA 58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização

Leia mais

2 Atualidade de uma base de dados

2 Atualidade de uma base de dados 2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:

Leia mais

Analise filogenética baseada em alinhamento de domínios

Analise filogenética baseada em alinhamento de domínios Analise filogenética baseada em alinhamento de domínios Moléculas biológicas e evolução Como já foi comentado anteriormente sabemos que o DNA de qualquer espécie de ser vivo sofre mutações ao longo do

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de

Leia mais

A Otimização Colônia de Formigas

A Otimização Colônia de Formigas A Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 22/04/2008 Índice A Inspiração Biológica O Ant System Aplicado ao PCV O Ant System Aplicado

Leia mais

COMO EXPLORAR OS BENEFÍCIOS DOS INDICADORES DE DESEMPENHO NA GESTÃO DE UM CSC. Lara Pessanha e Vanessa Saavedra

COMO EXPLORAR OS BENEFÍCIOS DOS INDICADORES DE DESEMPENHO NA GESTÃO DE UM CSC. Lara Pessanha e Vanessa Saavedra COMO EXPLORAR OS BENEFÍCIOS DOS INDICADORES DE DESEMPENHO NA GESTÃO DE UM CSC Lara Pessanha e Vanessa Saavedra A utilização de indicadores de desempenho é uma prática benéfica para todo e qualquer tipo

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

Introdução à genética quantitativa usando os recursos do R

Introdução à genética quantitativa usando os recursos do R Introdução à genética quantitativa usando os recursos do R Marisa R. Cantarino 1 Julia M. P. Soler (orientadora) 2 1 Introdução Um dos principais desafios da pesquisa genética atualmente é estabelecer

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Capítulo 2 Endogamia. Acasalamentos Preferenciais. Introdução

Capítulo 2 Endogamia. Acasalamentos Preferenciais. Introdução Capítulo 2 Endogamia Acasalamentos Preferenciais Introdução No capítulo anterior foi demonstrado que se os acasalamentos forem aleatórios, as populações têm proporções genotípicas equivalentes às calculadas

Leia mais

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C.

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C. ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP Mateus Fontoura Gomes da Rosa Márcia C. Cera Roteiro Introdução Problema de Roteamento de Veículos Objetivos da

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP 1 INTRODUÇÃO Devido ao crescimento da Internet, tanto do ponto de vista do número de usuários como o de serviços oferecidos, e o rápido progresso da tecnologia de comunicação sem fio (wireless), tem se

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Pesquisa Sequencial e Binária. Introdução à Programação SI2

Pesquisa Sequencial e Binária. Introdução à Programação SI2 Pesquisa Sequencial e Binária Introdução à Programação SI2 3 Contexto Diferentes estratégias para pesquisa (busca) de um elemento específico em um conjunto de dados. Lista, array, coleção Operação importante,

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

Pisa 2012: O que os dados dizem sobre o Brasil

Pisa 2012: O que os dados dizem sobre o Brasil Pisa 2012: O que os dados dizem sobre o Brasil A OCDE (Organização para Cooperação e Desenvolvimento Econômico) divulgou nesta terça-feira os resultados do Programa Internacional de Avaliação de Alunos,

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

O DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são

O DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são Atividade extra Fascículo 2 Biologia Unidade 4 Questão 1 O DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são chamados de genes. Assinale abaixo quais

Leia mais

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Autor:Thiago França Naves 1, Orientador: Carlos Roberto Lopes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade

Leia mais

CHECK - LIST - ISO 9001:2000

CHECK - LIST - ISO 9001:2000 REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

Pesquisa Etnográfica

Pesquisa Etnográfica Pesquisa Etnográfica Pesquisa etnográfica Frequentemente, as fontes de dados têm dificuldade em dar informações realmente significativas sobre a vida das pessoas. A pesquisa etnográfica é um processo pelo

Leia mais

Como Selecionar Projetos Seis Sigma

Como Selecionar Projetos Seis Sigma Como Selecionar Projetos Seis Sigma Cristina Werkema Etapas do processo de seleção A definição dos projetos a serem desenvolvidos pelos Black Belts e Green Belts é uma das atividades mais importantes do

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

1. Introdução. 1.1 Introdução

1. Introdução. 1.1 Introdução 1. Introdução 1.1 Introdução O interesse crescente dos físicos na análise do comportamento do mercado financeiro, e em particular na análise das séries temporais econômicas deu origem a uma nova área de

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

3 Classificação. 3.1. Resumo do algoritmo proposto

3 Classificação. 3.1. Resumo do algoritmo proposto 3 Classificação Este capítulo apresenta primeiramente o algoritmo proposto para a classificação de áudio codificado em MPEG-1 Layer 2 em detalhes. Em seguida, são analisadas as inovações apresentadas.

Leia mais

6 Construção de Cenários

6 Construção de Cenários 6 Construção de Cenários Neste capítulo será mostrada a metodologia utilizada para mensuração dos parâmetros estocásticos (ou incertos) e construção dos cenários com respectivas probabilidades de ocorrência.

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos.

Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos. Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos. Thiago da Mota Souza Coordenação de Pós-Graduação e Pesquisa de Engenharia Centro de Tecnologia Universidade Federal do Rio de

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

ESTRUTURAS DE DADOS II

ESTRUTURAS DE DADOS II ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução

Leia mais

Uma Heurística para o Problema de Redução de Padrões de Corte

Uma Heurística para o Problema de Redução de Padrões de Corte Uma Heurística para o Problema de Redução de Padrões de Corte Marcelo Saraiva Limeira INPE/LAC e-mail: marcelo@lac.inpe.br Horacio Hideki Yanasse INPE/LAC e-mail: horacio@lac.inpe.br Resumo Propõe-se um

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE Mariane Alves Gomes da Silva Eliana Zandonade 1. INTRODUÇÃO Um aspecto fundamental de um levantamento

Leia mais

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 Índice 1. A Organização do Computador - Continuação...3 1.1. Memória Primária - II... 3 1.1.1. Memória cache... 3 1.2. Memória Secundária... 3 1.2.1. Hierarquias de

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Projeto Incubadora no SecondLife

Projeto Incubadora no SecondLife Projeto Incubadora no SecondLife Motivação do Projeto Ilhas de produção de conteúdo de qualidade no Second Life Um dos problemas encontrados atualmente na Internet é a enorme quantidade de conteúdos de

Leia mais

Introdução a Gerenciamento de Projetos Prof. MSc. Fábio Assunção

Introdução a Gerenciamento de Projetos Prof. MSc. Fábio Assunção Introdução a Gerenciamento de Projetos Prof. MSc. Fábio Assunção Um projeto é um esforço temporário realizado para criar um produto ou serviço único. Ou seja, é desenvolvido a partir de uma ideia, progredindo

Leia mais

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto. Discussão sobre Nivelamento Baseado em Fluxo de Caixa. Item aberto na lista E-Plan Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em

Leia mais

SUMÁRIO. Introdução... 3

SUMÁRIO. Introdução... 3 SUMÁRIO Introdução..................................... 3 1 Consultas por Similaridade e Espaços métricos............. 5 1.1 Consultas por abrangência e consultas aos k-vizinhos mais próximos... 5 1.2

Leia mais

Gerenciamento de Riscos do Projeto Eventos Adversos

Gerenciamento de Riscos do Projeto Eventos Adversos Gerenciamento de Riscos do Projeto Eventos Adversos 11. Gerenciamento de riscos do projeto PMBOK 2000 PMBOK 2004 11.1 Planejamento de gerenciamento de riscos 11.1 Planejamento de gerenciamento de riscos

Leia mais

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA: Problemas de Satisfação de Restrições Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Introdução Um PSR é definido por um conjunto de variáveis X 1, X 2,..., X n, e por um conjunto de restrições,

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Simulação Transiente

Simulação Transiente Tópicos Avançados em Avaliação de Desempenho de Sistemas Professores: Paulo Maciel Ricardo Massa Alunos: Jackson Nunes Marco Eugênio Araújo Dezembro de 2014 1 Sumário O que é Simulação? Áreas de Aplicação

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Análise e Projeto de Software

Análise e Projeto de Software Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto

Leia mais

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014 PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA 09/abril de 2014 Considerações Estatísticas para Planejamento e Publicação 1 Circularidade do Método

Leia mais

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004 QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL Resumo Executivo PARA BAIXAR A AVALIAÇÃO COMPLETA: WWW.IADB.

ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL Resumo Executivo PARA BAIXAR A AVALIAÇÃO COMPLETA: WWW.IADB. ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL Resumo Executivo PARA BAIXAR A AVALIAÇÃO COMPLETA: WWW.IADB.ORG/EVALUATION ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Introdução às Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais Introdução às Redes Neurais Artificiais Treinamento via Algoritmos Genéticos Prof. João Marcos Meirelles da Silva http://www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola

Leia mais

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP Planejamento - 7 Planejamento do Gerenciamento do Risco Identificação dos riscos 1 O que é risco? Evento que representa uma ameaça ou uma oportunidade em potencial Plano de gerenciamento do risco Especifica

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Modelagem e Simulação Material 02 Projeto de Simulação

Modelagem e Simulação Material 02 Projeto de Simulação Modelagem e Simulação Material 02 Projeto de Simulação Prof. Simão Sirineo Toscani Projeto de Simulação Revisão de conceitos básicos Processo de simulação Etapas de projeto Cuidados nos projetos de simulação

Leia mais

Qualificação de Procedimentos

Qualificação de Procedimentos Qualificação de Procedimentos Os equipamentos em geral são fabricados por meio de uniões de partes metálicas entre si empregando-se soldas. Há, portanto a necessidade de se garantir, nestas uniões soldadas,

Leia mais

Decidir como medir cada característica. Definir as características de qualidade. Estabelecer padrões de qualidade

Decidir como medir cada característica. Definir as características de qualidade. Estabelecer padrões de qualidade Escola de Engenharia de Lorena - EEL Controle Estatístico de Processos CEP Prof. MSc. Fabrício Maciel Gomes Objetivo de um Processo Produzir um produto que satisfaça totalmente ao cliente. Conceito de

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

4 Avaliação Econômica

4 Avaliação Econômica 4 Avaliação Econômica Este capítulo tem o objetivo de descrever a segunda etapa da metodologia, correspondente a avaliação econômica das entidades de reservas. A avaliação econômica é realizada a partir

Leia mais