Computação Bioinspirada aplicada à Robótica

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

Download "Computação Bioinspirada aplicada à Robótica"

Transcrição

1 Capítulo 4 Computação Bioinspirada aplicada à Robótica Talles Henrique de Medeiros, Luís Fabrício Wanderley Góes, Milene Barbosa Carvalho e Ilg Menezes Abstract The Bio-Inspired Computing is new paradigm in computer science based on Nature s phenomena. It uses concepts, principles and mechanisms studied in biological sciences to design computer programs that reproduce natural systems behavior. These Bio-Inspired programs can solve complex and unsolved problems in a simple and efficient way. Among these problems, Robotics is an open area with problems that requires these kind of intelligent systems. In this work, we remark some principles of Bio-Inspired Computing and their applications in Intelligent Robots. Resumo A Computação Bioinspirada ou Natural é um novo paradigma da Ciência da Computação inspirado nos fenômenos da Natureza. Utiliza características das Ciências Biológicas na computação projetada por seres humanos para uso metafórico de conceitos, princípios e mecanismos fundamentando sistemas naturais. Muitos problemas, até então não resolvidos ou mesmo de difícil solução, podem ser elegantemente resolvidos por Sistemas Naturais. Entre eles a Robótica, um campo especial de amplas possibilidades de aplicação destes sistemas inteligentes. Neste texto, destacaremos os princípios de algumas técnicas deste paradigma e suas aplicações na implementação de Robôs Inteligentes Introdução A natureza apresenta inúmeros exemplos de soluções elegantes e eficientes para um grande número de problemas. Estas soluções estão presentes nas mais diversas espécies de seres vivos. É fácil perceber quando abelhas se organizam para construir uma colméia facilitando a sobrevivência do enxame ou espalhando o pólen de uma planta, permitindo a fecundação de uma outra planta. É interessante, também, o modo como uma colônia de formigas consegue estabelecer uma rota entre o ninho e a comida, para suprir suas necessidades de alimento, entre vários outros exemplos. Estas soluções são, em geral, o

2 resultado de um processo evolutivo. Esta é uma das principais características presentes em sistemas biológicos e que os tornam alternativas muito atrativas para a computação. Técnicas tradicionais de computação, muitas vezes, não são eficientes para resolver um grande número de problemas que são facilmente resolvidos por processos naturais como, por exemplo, problemas de otimização e reconhecimento de padrões. Então, busca-se entender e modelar os processos complexos que ocorrem na Natureza para obter ganhos de conhecimento da Ciência Natural e na Ciência da Computação. As idéias extraídas de sistemas naturais já vêm sendo utilizadas com muito sucesso para o desenvolvimento de ferramentas tecnológicas capazes de resolver problemas de complexidade elevada, cujas soluções eram, até então, desconhecidas ou inatingíveis [DG97a]. A computação tem buscado inspirações na Natureza para lidar com estes tipos de problemas. Este texto, então, apresentará os fundamentos básicos desse novo paradigma: conhecido como Computação Bioinspirada ou Natural, e suas possibilidades de aplicações no campo da Robótica. A Computação Bioinspirada utiliza características, inspiradas pela Natureza, na computação projetada por seres humanos para o uso metafórico de conceitos, princípios e mecanismos fundamentando sistemas naturais. Esta área de pesquisa investiga o relacionamento entre a computação e a biologia, estudando como computadores podem ser utilizados para modelar a natureza e como soluções encontradas pela natureza podem originar novos paradigmas de computação. As técnicas da Computação Bioinspirada podem ser classificadas por diferentes critérios [CDR + 04]. Entre eles estão: a origem da inspiração, a dimensão do sistema biológico e o dispositivo físico utilizado para a implementação da técnica. Neste texto, por limitação de espaço, destacamos as técnicas segundo a origem de sua inspiração. Esta classificação sugere duas classes, das quais a primeira é o tema deste texto: Computação Bioinspirada: Projeto de algoritmos baseado em princípios biológicos. Exemplos: Redes Neurais Artificiais, Sistemas Imunológicos Artificiais, Computação Evolucionária, Inteligência de Enxames, etc. Bioinformática: Emprego de técnicas computacionais para resolução de problemas da Biologia Molecular. Exemplos: Reconhecimento de Genes, Predição de Estruturas de Proteínas, Alinhamento de Seqüências, etc. Os Sistemas Biológicos inteligentes não seguem processos tradicionais de manufatura. Assim, não são compostos por partes pré-fabricadas e caracterizam-se por serem projetados por processos de evolução natural. Estes sistemas são, muitas vezes, controlados por sistemas baseados no sistema nervoso e são formados por componentes que trabalham juntos, em grupos, rebanhos ou enxames. Algumas de suas sub-áreas são: Redes Neurais Artificiais, Computação Evolutiva (Algoritmos Genéticos, Programação Genética, Estratégias Evolutivas), Sistemas Imunológicos Artificiais, Vida Artificial e Inteligêcia de Enxames (ou coletiva). A Computação Bioinspirada, então, desenvolve algoritmos e ferramentas. Baseiase na capacidade computacional do sistema nervoso para resolver problemas de reconhecimento de padrões, quando trabalha com Redes Neurais Artificiais. Analisa as pro-

3 priedades emergentes de colônias de organismos na solução problemas de otimização, aproximando a computação da Inteligência de Enxames. E, através da Computação Evolutiva, busca, na capacidade da Evolução Natural, melhorar a adaptação dos indivíduos ao ambiente no decorrer de várias gerações. Neste texto, por limitação de espaço, tornou-se necessária uma abordagem simplificada das técnicas da Computação Bioinspirada. Para isso, destacaremos as seguintes teorias: Redes Neurais Artificiais; Sistemas Imunológicos Artificiais; Computação Evolucionária; Inteligência de Enxames. A Robótica é o nosso objeto de estudo, no qual destacamos as principais aplicações dos algoritmos bioinspirados. No campo da Robótica, podemos destacar os problemas de exploração, visão, reconhecimento de padrões, fala etc. Este texto está organizado da seguinte maneira: na Seção 4.1 são apresentados os fundamentos básicos de algumas das principais técnicas da Computação Bioinspirada. Na Seção 4.2 será apresentada uma breve introdução aos conceitos da Robótica, principalmente sob a visão da Robótica Inteligente. A Seção 4.3 é dedicada aos trabalhos já divulgados da Computação Bioinspirada na solução de problemas tradicionais no campo da Robótica Técnicas de Computação Bioinspirada Esta seção é dedicada a apresentação de quatro técnicas de computação bioinspirada. Aqui descreveremos os princípios de cada uma, alguns conceitos básicos e os importantes algoritmos de cada paradigma Redes Neurais Artificiais - RNAs As Redes Neurais Artificiais são modelos matemáticos que se assemelham às estruturas neurais biológicas e que têm capacidade computacional adquirida por meio de aprendizado e generalização [BCL00, Hay94]. O aprendizado em RNAs está normalmente associado à capacidade de as mesmas adaptarem os seus parâmetros como conseqüência de sua interação com o meio externo. Também como acontece com os seres vivos, o processo de aprendizado das RNAs é interativo e, por meio dele, a rede deve melhorar o seu desempenho gradativamente à medida que interage com o meio externo. O critério de desempenho que determina a qualidade do modelo neural e o ponto de parada de treinamento são pré-estabelecidos pelos parâmetros de treinamento. O passo fundamental para o surgimento das RNAs foi o modelo matemático proposto por McCulloch e Pitts, em 1943 [MP43]. O modelo, denominado neurônio MCP (McCulloch e Pitts), é descrito por um conjunto de n entradas no qual cada entrada é

4 multiplicada por um determinado peso e, em seguida, os resultados são somados e comparados a um limiar. Esse modelo é amplamente citado na literatura da área de RNAs [BCL00]. A Figura 4.1 é uma visão esquemática do nodo MCP. O processo de informação em RNAs é feito por meio de estruturas neurais em que o armazenamento e o processo de informação são realizados de maneira paralela e distribuída por elementos processadores relativamente simples (os neurônios), como estão representados na Figura 4.1. Esta característica torna a RNA uma alternativa promissora para problemas cuja solução ainda apresenta dificuldades para computação tradicional. X X X. 1 2 n w 1 w. w 2 n u f(u) Figura 4.1. Modelo de um Neurônio MCP. y Arquiteturas Neurais A arquitetura de uma RNA é composta por neurônios e conexões, que simulam as sinapses. Cada um dos neurônios (nodos) executam funções simples, mas quando combinados resultam na estrutura de uma RNA capaz de solucionar problemas complexos. Uma rede do tipo feed-foward é apresentada na Figura 4.2, onde cada nodo tem a função do nodo MCP apresentado na Figura 4.1. Esta rede possui n entradas, duas camadas ocultas de nodos, uma camada de saída com P saídas. f1(x) W 1 1 W 2 f2(x) 1 1 W 3 f3(x) Entradas P N K M Camada 3 Camada 1 Camada 2 Figura 4.2. Modelo de uma RNA feed-foward do tip MLP. Saidas Basicamente, uma rede é subdividida em camadas: camada de entrada, camadas intermediárias ou escondidas e camada de saída. Um exemplo desse arranjo é expresso

5 na Figura 4.2. A topologia mais simples de uma RNA apresenta uma única camada. As redes MLPs são uma topologia específica na área de RNAs. O funcionamento de uma rede MLP é síncrono, ou seja, dada uma entrada (um vetor) esta é propagada para a saída multiplicada pelos pesos de cada camada, aplicando-se a função de ativação e propagando-se esse valor para a camada seguinte até que a camada de saída seja atingida. Por ser constituída por um conjunto de nodos MCPs, pode-se definir funções de ativação diferenciadas para cada nodo da MLP. Geralmente, definem-se funções de ativação iguais em uma mesma camada. É necessário lembrar que uma rede que apresenta somente funções de ativação lineares nas camadas intermediárias é equivalente a uma rede de uma única camada. A topologia da MLP mais utilizada apresenta uma camada escondida e é capaz de implementar qualquer função multivarivável contínua [Cyb89], ou seja, isto representa a capacidade universal de aproximação de funções das RNAs. O Aprendizado O aprendizado das RNAs é obtido por meio de exemplos, dos quais o algoritmo é capaz de extrair o conhecimento necessário para a resolução do problema em questão. O conhecimento obtido é armazenado nos pesos da RNA para, posteriormente, gerar a resposta da rede para novos exemplos. O aprendizado em sistemas biológicos envolve ajustes nas sinapses existentes entre os neurônios. De forma similar, o aprendizado em RNAs envolve o ajuste iterativo dos pesos de suas conexões por meio da apresentação de um conjunto de exemplos de treinamento. O ajuste dos pesos é realizado pela utilização de um algoritmo de aprendizado, seguindo um certo paradigma de aprendizado. As regras de ajuste dos pesos podem ser categorizadas da seguinte forma: Correção de Erros: o ajuste dos pesos é realizado de modo a minimizar o erro da resposta rede para os exemplos de treinamento; Hebbiano: o ajuste dos pesos está associado à correlação dos valores de saída produzidos pelos nodos conectados; Competitivo: os nodos da rede competem entre si para definir qual destes nodos produzirá a resposta da rede; Boltzman: método estocástico baseado na termodinâmica e teoria da informação. Além disto, existe o paradigma de aprendizado no qual estas regras de ajuste podem ser aplicadas. Os paradigmas de aprendizado computacional podem ser definidos como: Aprendizado Supervisionado: caracterizado pela existência de um professor externo à rede que tem a função de monitorar a resposta y i da mesma para cada conjunto de entrada x i. O ajuste é feito de modo que a resposta da rede aproxime-se da saída desejada y d i ;

6 Aprendizado por Reforço: caracterizado por um processo de punição e recompensa da rede para cada resposta obtida. O conjunto de treinamento é formado somente pelos exemplos de entrada x i, mas há existência de um crítico analisando as respostas da rede; Aprendizado Não-Supervisionado: é caracterizado pela inexistência das saídas desejadas e de um crítico das respostas. O conjunto de treinamento é composto somente pelos exemplos de entrada e, por meio deles, a rede identificará as características estatisticamente relevantes, tornando possível o agrupamento dos exemplos semelhantes. Espera-se, então, que uma rede treinada com alguns exemplos estatisticamente representativos seja capaz de apresentar saídas aceitáveis para novos exemplos. A isto dá-se o nome de generalização. A Capacidade de Generalização Em problemas de aprendizado, o conjunto de treinamento é composto por uma amostragem do problema real. Para este conjunto limitado de exemplos do problema, a rede deve ser capaz de obter uma aproximação da função que gere estas amostras (exemplos). O resultado do treinamento pode ser uma rede sobreparametrizada, quando a rede possui mais parâmetros que o necessário para o problema. Entretanto, uma rede torna-se subparametrizada quando apresenta menos parâmetros que o necessário para aproximar-se da função geradora das amostras. Ambos os fenômenos, a sobreparametrização e a subparametrização, influenciam nas respostas das redes. Com isto, a rede perde sua capacidade de generalização. O problema do ajuste de modelos neurais e de equilíbrio entre redes sub e sobreparametrizadas foi descrito formalmente em [GBD92]. Uma rede capaz de apresentar boa capacidade de generalização possui um estrutura adequada ao problema em questão, de modo que apresente respostas coerentes para novos exemplos de entrada cuja saída seja desconhecida. Modelos Neurais Os primeiros modelos de redes são conhecidos como a rede Perceptron [Ros58] e a Adaline [WH60]. A rede Perceptron utiliza o algoritmo de aprendizado supervisionado baseado no ajuste dos pesos pelo método da correção de erros. Frank Rosenblatt, o autor do artigo que descreve a rede Perceptron, mostrou em um teorema que, se o Percetron pode solucionar um dado problema, então o algoritmo por correção de erros irá obter os pesos necessários para a solução do problema. Já a rede Adaline, originada quase que em paralelo com o modelo Perceptron, utiliza o ajuste dos pesos w por meio da Regra Delta, conforme a Equação 1: w (k+1) = w (k) + η.e (k). f (h (k) ).x (k) (1)

7 onde f (h (k) ) é a derivada primeira da função de ativação do nodo, e (k) é o erro da resposta da rede e η é conhecida como a taxa de aprendizado. As redes Perceptron foram criticadas por sua limitação computacional em solucionar somente problemas linearmente separáveis [MP69]. Para problemas não linearmente separáveis, foi necessária a construção de redes com camadas intermediárias. Em [RHW86] foi descrito um novo algoritmo de treinamento de redes Muti-Layer Perceptron. Este algoritmo, denominado Backpropagation, têm importância histórica fundamental para a comunidade de RNAs por ser o grande responsável pela retomada das pesquisas, até então praticamente inativas. O algoritmo Backpropagation apresenta duas fases: a fase feedfoward e a fase backward. O algoritmo backpropagation é uma generalização da Regra Delta das redes Adaline conforme a Equação 2: w (k+1) = w (k) η. J (k) (2) A função de custo J (k) é definida pela equação J = 1 2 p i=1 ( d i y i) 2, sendo a saída y da rede uma função dos pesos e das funções de ativação. O ajuste dos pesos é realizado em duas etapas: propagando-se a entrada da rede para a sua saída (forward), calculandose o erro e propagando-o novamente para a entrada (backward). Para uma rede de duas camadas, a atualização dos pesos é feita da seguinte maneira para os nodos de saída: w ji(k+1) = w ji(k) + η ( d j(k) y j(k) ) f (net j(k) )x Hi(k) (3) onde net j é a saída linear do nodo j da camada de saída e x H é a saída dos nodos da camada escondida após a aplicação da função de ativação. Para os nodos da camada escondida: w h ji(k+1) = wh ji(k) + η.xh (k). f H(r i(k) ). p [ ] δ j(k).w ji(k) j=1 (4) onde w h são os pesos da camada escondida, x h é a entrada da RNA, f H é a derivada da função de ativação da camada escondida e r i é a saída linear do neurônio i da camada escondida. Uma descrição detalhada das equações de ajuste dos pesos para cada camada é amplamente encontrada na literatura [BCL00]. As desvantagens do algoritmo Backpropagation consistem na sua baixa velocidade de convergência e na sua limitação de busca de soluções, pois trata-se de um algoritmo de busca local. Tal fato é observado na própria formulação do algoritmo. Por se tratar de um algoritmo que depende somente do gradiente local, caso haja um mínimo local próximo 1, o algoritmo ficará preso. Uma das maneiras de melhorar a resposta de uma rede utilizando esse algoritmo consiste no treinamento de múltiplas redes com pesos inicializados aleatoriamente. Nesse caso, a probabilidade de uma rede convergir para uma região próxima ao mínimo global é maior. Entretanto, tal procedimento apresenta um elevado custo computacional e não é capaz de garantir uma boa solução. O Algoritmo 1 apresenta os passos para o ajuste dos pesos de uma Rede Neural Artificial. 1 região de gradiente nulo

8 Algoritmo 1 Algoritmo Backpropagation 1: Inicialize os pesos da rede (valores aleatórios); 2: repete 3: Erro = 0; 4: para cada padrão de treinamento faça 5: para cada camada i da rede, i = 1,2,,n faça 6: para cada nodo n i j da i-ésima camada faça 7: Calcule saída y produzida do nodo; 8: fim para 9: fim para 10: e = saida dese jada y; 11: para cada camada i da rede, i = n,n 1,,1 faça 12: para cada nodo n i j da i-ésima camada faça 13: Ajuste os pesos do nodo; 14: fim para 15: fim para 16: Erro = Erro + e; 17: fim para 18: até Erro > ε Aprendizado Multiobjetivo Para o controle da generalização, o aprendizado das RNAs deve levar em conta algum outro objetivo, além do erro do conjunto de treinamento. Uma abordagem para o treinamento de RNAs por meio de otimização multiobjetivo foi proposta por [RT00]. Esta abordagem utiliza, além da soma do erro quadrático e 2 do conjunto de treinamento, a norma euclidiana w do vetor de pesos da RNA. Como mostrado em [RT00], os objetivos e 2 e w são conflitantes e decisivos na definição da qualidade de modelos neurais. A soma dos erros define quão próximo do conjunto de treinamento, que define o problema, a resposta da RNA está. Quanto menor a norma dos pesos, mais suave deverá ser a resposta do modelo neural. A medida da norma, portanto, é uma medida da suavidade desta respota. Baseado no princípio que as soluções de melhor generalização devem ter um mínimo w para um e 2 fixo, e um mínimo e 2 para um w fixo, o algorimo multiobjetivo proposto por [RT00] procura por soluções dentro do Conjunto Pareto-ótimo [CH83, Tak03]. A Figura 4.3 mostra uma forma genérica do conjunto Pareto no espaço dos objetivos. Embora o conjunto Pareto possa apresentar alguma variação de acordo com o problema, o esquema da figura realça a característica de os mesmo serem objetivos conflitantes. O conjunto Pareto é composto por soluções em que um dos objetivos não pode ser mais minimizado sem que o outro aumente. O conjunto Pareto se constitui em um fronteira entre as soluções factíveis (conjunto2) e as não-factíveis (conjunto1). Deste modo, todas as soluções implementadas estarão acima da fronteira do conjunto. É razoável imaginar, portanto, que as soluções Pareto-ótimas se constituem no conjunto restrito adequado para a busca da solução de melhor generalização.

9 conjunto2 Norma Conjunto conjunto1 Erro Figura 4.3. Conjunto Pareto-ótimo no espaço de objetivos erro e norma. O algorimo multiobjetivo, o MOBJ [RT00], utiliza métodos de otimização multiobjetivo para encontrar soluções Pareto-ótimas. Dentre as quais, aquela que apresentar o menor erro de validação ou menor auto-correlação [Med04] é, portanto, selecionada como a rede de melhor capacidade de generalização dentre as redes geradas pelo algoritmo. As RNAs têm sido utilizadas com sucesso em inúmeras aplicações de classificação de padrões, tarefas de previsão, aproximação de funções, modelagem de processos físicos entre outras aplicações. Um dos problemas para quem as utiliza é a dificuldade de definição dos seus parâmetros, por exemplo: números de nodos de cada camada, o tipo de função de ativação, a taxa de aprendizado. É preciso ficar claro que existem vários modelos de RNAs e que, neste texto, nos resumimos a detalhar o modelo MLP. Porém, para cada tipo de problema haverá um modelo mais adequado que outro. Entre outros modelos podemos citar: os Mapas Auto- Organizáveis (SOM), as Redes de Funções de Base Radial (RBFs), as redes de Hopfield [Hay94] Sistemas Imunológicos Artificiais - SIAs Entre os modelos mais recentes com inspiração biológica encontram-se os Sistemas Imunológicos Artificiais (SIA) [CVZ00, dct02, SHF97]. Estes sistemas são compostos por metodologias inteligentes para a solução de problemas do mundo real [Das98]. O Sistema Imunológico é de fundamental importância para os seres vivos e, por isso, precisa ser extremamente eficiente. É um sistema no qual existem diferentes componentes e mecanismos atuantes. Alguns destes elementos são otimizados para defesa de um único agente infeccioso, outros são projetados para atuar em vários agentes infecciosos. É um sistema extremamente redundante, o que significa que podem existir diferentes mecanismos atuantes contra um único elemento estranho no organismo. Do ponto de vista da computação e da engenharia, a presença de mecanismos de memória e aprendizagem são características fundamentais do Sistema Imunológico Natural. Isto significa que o nosso organismo é capaz de extrair informações úteis dos agentes infecciosos e memorizá-las para futuros casos de infecções pelo mesmo agente ou similares.

10 A seguir, antes de abordarmos os Sistemas Imunológicos Artificiais, daremos uma breve descrição do mecanismo de defesa do nosso organismo Mecanismo Básico de Defesa do Sistema Imunológico Biológico Nosso organismo é protegido por uma grande variedade de células e moléculas operando em harmonia, até que um antígeno apareça e torne-se o alvo principal do Sistema Imunológico. Pela Figura 4.4 podemos ter uma noção do mecanismo de reconhecimento de um antígeno e a ativação do Sistema Imunológico. As células apresentadoras de antígeno Figura 4.4. Esquema simplificado dos mecanismos de reconhecimento e ativação do Sistema Imunológico. (APCs) especializadas circulam pelo corpo ingerindo e digerindo patógenos encontrados, transformando-os em peptídeos antigênicos. Parte destes peptídeos ligam-se à moléculas do complexo de histocompatibilidade principal (MHC) e são apresentados sob a forma de um complexo MHC/peptídeo. As células T têm a função de reconhecer diferentes complexos MHC/peptídeo. Uma vez ativadas, as células T dividem-se e secretam linfocinas (sinais químicos) que mobilizam outros componentes do Sistema Imunológico. Diferente dos receptores das células T, entretanto, os receptores das células B são capazes de reconhecer partes livres solúveis dos antígenos, sem as moléculas do MHC. As células B, que também possuem moléculas receptoras de especificidade única em suas superfícies, respondem a estes sinais. As células B ativadas dividem-se e diferenciam-se em plasmócitos, secretando anticorpos em altas taxas. A ligação dos anticorpos aos antígenos encontrados faz com que o patógeno seja neutralizado, levando à sua destruição. Algumas células B e

11 T transformam-se em células de memória, as quais permanecem na circulação garantindo uma resposta rápida e eficaz contra uma futura exposição àquele antígeno [dc01] A Modelagem do Sistema Artificial No Brasil, o primeiro tutorial sobre Sistemas Imunológicos Artificiais e Suas Aplicações foi proferido pelo, então, estudante de doutorado em Engenharia Elétrica da UNICAMP, Leandro Nunes de Castro, no VI Simpósio Brasileiro de Redes Neurais (SBRN), realizado no Rio de Janeiro em novembro de No ano de 2001, a revista IEEE Transactions on Evolutionary Computation trouxe uma edição especial sobre os Sistemas Imunológicos Artificiais. A expectativa é que estes modelos, ainda que muito simplificados, demonstrem as vantagens do sistema natural, considerado o nosso sistema mais complexo. Dentre elas destacamos algumas [dct02, Cor05, FPP86]: Reconhecimento de Padrões: A facilidade de construção de moléculas específicas para cada antígeno é exclusividade do Sistema Imunológico; Auto-Identificação: O Sistema Imunológico tem a incrível capacidade de identificar qualquer corpo estranho e de eliminá-lo; Autonomia: O funcionamento dos seus componentes é completamente autônomo, independente de qualquer elemento central. Possui a capacidade de se auto-reparar parcialmente, substituindo células deficientes; Adaptação Dinâmica: O sistema não é capaz de armazenar células e moléculas capazes de detectar todos os corpos estranhos possíveis. Mas tem um funcionamento que, devido à elevada taxa de morte e produção de novas células, é capaz de se adaptar rapidamente a novos agentes desconhecidos; Aprendizagem e Memória: Apesar da limitada capacidade do sistema, quando é detectado um corpo estranho, as células responsáveis por detectá-lo e eliminá-lo são mais estimuladas a reproduzir-se e permanecem no sistema por mais tempo. Este funcionamento é semelhante ao da memória. A elaboração de um algoritmo baseado na imunologia consiste de 3 aspectos: Representação dos componentes; Funções de afinidade entre os componentes, quantificando a interação entre eles; Conjunto dos algoritmos imunológicos que controlam o comportamento do sistema. Para cada aspecto, será feita uma breve descrição do que é realizado pelo ssstema Imunológico Artificial. 1 Hoje o prof. Dr. Leandro Nunes de Castro leciona na Universidade Católica de Santos, em Santos-SP.

12 Representação dos Componentes A representação matemática de um anticorpo e um antígeno contribui para a definição do tipo de distância empregado na avaliação da função de afinidade. A forma generalizada de uma molécula m, seja ela um anticorpo (Ab) ou mesmo um antígeno (Ag), pode ser representada por uma cadeia de L atributos m = m 1 ;m 2 ; ;ml. Os atributos podem ser de qualquer tipo: inteiros, reais, bits ou outros símbolos, dependendo da aplicação do SIA. A representação dos componentes determina o tipo de função de afinidade ideal para o algoritmo. Então, os anticorpos (moléculas do sistema), e os antígenos (moléculas invasoras do organismo), são modelados por cadeias de L atributos do espaço de representação do problema. Funções de Afinidade Nesta fase, o objetivo é encontrar uma função que relacione os anticorpos e os antígenos. Esta medida está condicionada à representação dos componentes e define o grau de complementariedade entre eles. A afinidade entre um anticorpo e um antígeno é uma medida de distância (ou similaridade) entre as cadeias de atributos, por exemplo, a distância Euclidiana. Como a melhor função de afinidade é a que possui a maior complementariedade entre as duas cadeias, quanto maior for a distância entre as moléculas, maior será a afinidade entre elas. A Figura 4.5 representa a idéia da complementariedade entre as moléculas. Figura 4.5. Esquema do Reconhecimento via a Idéia de Complementariedade. Considerando a distância Euclidiana, se um anticorpo for representado pela cadeia A c = Ac 1,Ac 2,,Ac L e um antígeno representado pela cadeia A g = Ag 1,Ag 2,,Ag L, então a função de afinidade entre estas moléculas pode ser representada pela Equação 5, D = ou então pela distância de Manhatan, conforme a Equação 6: D = L (Ab i Ag i ) 2 (5) i=1 L i=1 Ab i Ag i (6)

13 Para a representação binária dos atributos de cada cadeia, a função de afinidade é melhor obtida utilizado-se a distância de Hamming: D = L i=1 onde δ i = 1 se Ab i Ag i ou δ i = 0, caso contrário. δ i (7) Define-se, ainda, um limiar ε para a afinidade (ou complementariedade) a partir do qual considera-se que houve reconhecimento. Isto é, se D ε diz-se que o anticorpo reconhece o antígeno. A medida de afinidade funciona como uma função de avaliação da molécula. As que têm melhor avaliação são mais selecionadas pelo operador de reprodução. Porém, nada obriga que a avaliação seja feita apenas com base na afinidade entre pares de moléculas. Podem considerar-se outros fatores, como o número de antígenos reconhecidos por um anticorpo ou o grau de interação do anticorpo com outros anticorpos. Quando mais fatores são levados em consideração, é comum atribuir a avaliação por nível de estimulação, englobando todos os fatores. Algoritmos Imunológicos Nesta fase abordamos os algoritmos computacionais que modelam os diferentes mecanismos e teorias imunológicas. Entre eles destacam-se: os Modelos de Medula Óssea (MMO), o Algoritmo de Seleção Negativa (ASN), o Algoritmo de Seleção Clonal (CLO- NALG) e os Modelos Contínuos da Rede Imunológica [dc01]. De acordo com [dct03], estes algoritmos podem ser classificados em duas famílias: Modelos baseados em Populações: definem o modo como os componentes do sistema interagem com os agentes externos; Modelos de Redes Imunológicas: usados para simular redes imunológicas, incluindo sua estrutura, dinâmica e metadinâmica. Os modelos de medula óssea são utilizados para a geração de cadeias de atributos que representam os repertórios imunológicos; o ASN possui aplicações em detecção de anomalias, como segurança computacional e predição de séries temporais; o algoritmo CLONALG tem várias aplicações no reconhecimento de padrões e otimização multimodal e combinatorial; e os modelos contínuos de rede imunológica são normalmente empregados em processos de robótica e controle [CVZ00]. Dos modelos de algoritmos citados, destacaremos dois deles: o Algoritmo de Seleção Negativa e o de Seleção Clonal. Algoritmos Imunológicos: Algoritmo de Seleção Negativa - ASN Este algoritmo foi inicialmente projetado para o processo de detecção de anomalias, como a proteção de sistemas de informação. O ASN é executado em duas fases conforme o Algoritmo 2:

14 Algoritmo 2 Algoritmo da Seleção Negativa - ASN 1: Defina o conjunto S de cadeias próprias que deseja-se proteger; 2: Gere cadeias P aleatoriamente e avalie a afinidade entre elas e as S do sistema; 3: para Cada cadeia P gerada faça 4: se Afinidade D i de P i ε a então 5: A cadeia P reconhece o próprio sistema e deve ser eliminada; 6: senão 7: Armazene-a em um conjunto R de detectores; 8: fim se 9: fim para 10: Dado o conjunto S; 11: para Cada cadeia S a ser protegida faça 12: se Afinidade D i (S i,r i ) ε b então 13: Um elemento não próprio foi identificado; 14: fim se 15: fim para O algoritmo ASN é capaz de realizar tarefas de reconhecimento de padrões armazenando informações do conjunto complementar que se deseja proteger. Deste modo, o padrão não-próprio é reconhecido como um elemento diferente do próprio sistema. Cadeias Próprias (S) Conjunto de Detectores (R) Gere Cadeias Aleatoriamente (R0) Match Não Conjunto de Detectores (R) Cadeias Protegidas (S) Match Não Sim Sim Rejeita Não-Próprio Detectado (a) (b) Figura 4.6. Diagrama de Fluxos do Algoritmo de Seleção Negativa. (a) Censoriamento e (b) Monitoramento das cadeias protegidas. Algumas observações sobre o ASN: O tamanho do conjunto de detectores não cresce necessariamente com o número de cadeias a serem protegidas; A probabilidade de detecção de anomalias aumenta exponencialmente com a quantidade de algoritmos de detecção independentes; O processo de detecção é simétrico;

15 A geração de detectores apresenta um custo exponencial em relação ao tamanho do conjunto de cadeias a serem protegidas devido a geração aleatória das cadeias do conjunto R, ocasionando repetições de várias cadeias. Algoritmos Imunológicos: Algoritmo de Seleção Clonal - CLONALG Os principais aspectos considerados para o desenvolvimento do algoritmo de seleção clonal são: manutenção das células de memória funcionalmente independentes do repertório, seleção e reprodução (clonagem) das células mais estimuladas, morte das células menos estimuladas, maturação de afinidade e reseleção dos clones com maiores afinidades antigênicas, geração e manutenção de diversidade, hipermutação proporcional à afinidade celular [dc01]. Este algoritmo pode ser utilizado em tarefas de Reconhecimento de Padrões, Aprendizagem de Máquina e Otimização. Algoritmo 3 Algoritmo da Seleção Clonal - CLONALG 1: Gere um conjunto P de candidatos a solução, composto pelo subconjunto de células de memória M mais o restante P {r} da população P = P {r} M; 2: Selecione os n melhores indivíduos P {r} da população P, com base em uma medida de afinidade; 3: Reproduza os indivíduos selecionados gerando uma população temporária de clones. A quantidade de filhos de cada indivíduo é diretamente proporcional à sua afinidade; 4: Submeta a população de clones a um esquema de hipermutação, em que a taxa de mutação seja proporcional à afinidade do anticorpo. Uma população de anticorpos maduros é gerada C ; 5: Selecione os melhore indivíduos de C para compor o conjunto de memória M; 6: Susbstitua d anticorpos por novos indivíduos. O processo de seleção do algoritmo CLONALG pode utilizar métodos probabilísticos para selecionar os indivíduos da população. A Figura 4.7 mostra a seqüência de passos do algoritmo CLONALG. O passo de hipermutação do algoritmo de seleção clonal utiliza um mecanismo denominado maturação da afinidade. Este mecanismo faz com que o algoritmo aumente globalmente a afinidade entre os anticorpos e os antígenos. O aspecto distintivo da hipermutação por maturação de afinidade é que cada anticorpo tem uma taxa de mutação independente, que é uma função da sua afinidade com o antígeno. Deste modo, os anticorpos que já possuem uma afinidade grande são pouco alterados. Por outro lado, os anticorpos que estão mais afastados de reconhecer a solução ótima são modificados de forma mais drástica, na expectativa de se pesquisarem outras zonas do espaço de soluções. É necessário definir uma função de dependência entre a taxa de mutação e a afinidade. Quando estamos trabalhando com problemas de otimização, normalmente não conhecemos o ótimo previamente. De modo que é conveniente que a função da taxa de hipermutação seja dependente da afinidade normalizada D = D D max. Uma função freqüentemente utilizada para este fim é:

16 N d P {r } M Seleção P {n } Re-Seleção Clonagem C Maturação C * Figura 4.7. Diagrama do Algoritmo de Seleção Clonal - CLONALG. onde ρ é um parâmetro que define a curvatura da função. p k i j(t) = α(d ) = exp( ρd ) (8) Além dos modelos de SIA acima descritos, existe a abordagem híbrida com os Algoritmos Genéticos, as Redes Neurais Artificiais, os Sistemas Nebulosos ( Fuzzy ). Os SIAs constituem-se numa técnica muito poderosa e que deverá ainda ser melhor explorado. Vários resultados interessantes, porém, já foram obtidos na aplicação dos SIAs em reconhecimento de padrões [DN00], mineração de dados, robótica, otimização, controle, detecção de falhas [DKWB04], escalonamento e segurança de sistemas de informação [KB99], etc [dct03, CVZ00] Computação Evolucionária Esta seção apresenta uma breve introdução aos principais conceitos dos sistemas baseados na Teoria da Evolução Natural e Genética, conhecida como Computação Evolutiva ou Evolucionária. Entre as subáreas da Computação Evolutiva, destacamos os Algoritmos Genéticos, mas ainda podemos citar as Estratégias de Evolução e a Programação Genética. As pesquisas nesta área tiveram início na década de 50, tratando de sistemas para a resolução de problemas que utilizam modelos computacionais baseados na teoria da evolução natural [Bac96]. Em 1996, Back propõe o agrupamento dos sistemas de Computação Evolutiva em três grandes categorias: Algoritmos Genéticos: cujos princípios podem ser encontrados em trabalhos de John Holland nos anos 60 [Hol92]. Os algoritmos genéticos foram desenvolvidos com

17 o propósito de formalizar matematicamente e explicar rigorosamente processos de adaptação em sistemas naturais, e desenvolver sistemas artificiais que buscam simular os mecanismos originais encontrados em sistemas naturais [Zub00]; Estratégias Evolutivas: propostas na década de 60 com o objetivo de solucionar problemas de otimização de parâmetros; Programação Genética: uma extensão dos Algoritmos Genéticos e que foi desenvolvida com o intuito de evoluir um conjunto de programas de computador, ao invés de uma cadeia de bits. Pelo limite de espaço deste texto, abordaremos somente os Algoritmos Genéticos (AGs) por apresentarem maiores aplicações no campo da engenharia. Antes disso, faremos uma rápida introdução à Teoria da Evolução Natural e à Genética, necessária para compreensão da nomenclatura e inspiração dos AGs Evolução Natural e Genética Em meados do século XIX, o mundo acreditava que cada espécie havia sido criada separadamente por um ser supremo ou por meio de geração espontânea. O trabalho do naturalista Carolus Linnaeus sobre a classificação biológica de organismos despertou o interesse pela similaridade entre certas espécies, levando a acreditar na existência de alguma relação entre elas. Outros naturalistas como Jean Baptiste Lamark e Thomas Robert Malthus desenvolveram trabalhos que vieram a influenciar a teoria da seleção natural. Após 20 anos de observações e experimentos, Charles Darwin apresentou, em 1859, o livro A origem das espécies por meio da seleção natural com sua teoria completa, sustentada por muitas evidências colhidas durante suas viagens. Seu trabalho influenciou não somente o futuro da biologia, mas da botânica, zoologia, os pensamentos políticos, religiosos, filosóficos e econômicos. A Teoria da Evolução e a Computação nasceram praticamente na mesma época: Charles Babbage, um dos precursores da computação moderna e amigo pessoal de Darwin, desenvolveu sua máquina analítica em Por volta de 1900, Gregor Mendel desenvolveu seus trabalhos sobre os princípios básicos de herança genética,os quais tiveram grande influência sobre os trabalhos futuros relacionados à evolução. A moderna teoria da evolução combina a genética e as idéias de Darwin e Wallace sobre a seleção natural, criando o princípio básico de Genética Populacional. Nas décadas de 50 e 60, muitos biológos começaram a desenvolver simulações computacionais de sistemas genéticos. Entretanto, foi através de John Holland que desenvolveramse as primeiras pesquisas sobre o tema. Em 1975 foi publicado o livro Adaptation in Natural and Artificial Systems, hoje considerado como referência básica sobre Algoritmos Genéticos [Hol92]. A partir de então, a computação evolucionária vêm sendo aplicada com sucesso nos mais diversos problemas de otimização e aprendizado de máquina [Rez03].

18 Algoritmos Genéticos Destacaremos agora, os principais aspectos e as características dos Algoritmos Genéticos que os tornam ferramentas interessantes de otimização para inúmeros problemas [Gol89, GH88]. Otimização é a busca da melhor solução para um dado problema. Consiste em tentar várias soluções e utilizar a informação obtida neste processo de forma a encontrar soluções cada vez melhores. Um exemplo simples de otimização é a melhoria da imagem das televisões com antena acoplada no próprio aparelho. Através do ajuste manual da antena, várias soluções são testadas, guiadas pela qualidade de imagem obtida na TV, até a obtenção de uma resposta ótima, ou seja, uma boa imagem. As técnicas de otimização geralmente apresentam: Um espaço de busca, onde estão todas as possíveis soluções do problema; Uma função objetivo (algumas vezes chamada de função de aptidão na literatura de AGs), utilizada para avaliar as soluções produzidas, associando uma nota a cada uma delas. As técnicas de otimização tradicionais iniciam seu processamento com um único candidato que, iterativamente, é manipulado utilizando algumas heurísticas, normalmente estatísticas, diretamente associadas ao problema a ser solucionado. Na prática, apesar de não serem métodos suficientemente robustos, são amplamente utilizados com sucesso em inúmeras aplicações. Por outro lado, os AGs operam sobre uma população de soluções candidatas em paralelo. Assim, elas podem fazer a busca em diversas áreas do espaço de solução. Como resultado, os AGs têm mais chances de atingir as áreas mais promissoras do espaço de busca. Os AGs diferem-se dos métodos tradicionais de busca e otimização principalmente em quatro aspectos: trabalham com uma codificação do conjunto de parâmetros e não com os próprios parâmetros; trabalham com uma população e não com um único ponto; utilizam informações de custo ou recompensa e não derivadas ou outro conhecimento auxiliar; utilizam regras de transição probabilísticas e não determinadas. O primeiro passo dos AGs é a geração de uma população inicial de indivíduos (possíveis soluções). Durante o processo evolutivo, esta população é avaliada e cada indivíduo recebe uma nota (denominada de aptidão), refletindo a qualidade da solução que ele representa. Em geral, os indivíduos mais aptos são selecionados e os menos aptos são descartados. Os indivíduos selecionados podem sofrer modificações em suas características fundamentais através dos operadores de cruzamento e mutação, gerando descendentes

19 Algoritmo 4 Algoritmo Genético 1: T 0; 2: Gere população inicial P(0); 3: para Cada indivíduo i da população atual P(t) faça 4: Avalie aptidão do indivíduo i; 5: fim para 6: enquanto Critério de Parada não for satisfeito faça 7: t = t + 1; 8: Selecione a população P(0) a partir de P(t 1); 9: Aplique operadores de cruzamento sobre P(t); 10: Aplique operadores de mutação sobre P(t); 11: Avalie P(t); 12: fim enquanto para a próxima geração. Este processo é repetido até que uma solução satisfatória seja encontrada. O Algoritmo 4 apresenta um ciclo de um Algoritmo Genético: Apesar de aparentemente simples, estes algoritmos são capazes de resolver problemas complexos de uma maneira muito elegante. Além disso, não estão limitados por suposições do espaço de busca, por características de descontiuidades, multimodalidade, diferenciabilidade da função de custo do problema abordado [Tak03]. A seguir, descreveremos os aspectos que devem ser considerados na implementação de um AG. Representação dos Parâmetros O primeiro aspecto é a representação, ou seja, a codificação escolhida deve mapear o espaço de soluções no espaço de codificação utilizado, preservando as características do problema. Uma codificação inadequada pode acarretar em convergência prematura do algoritmo, resultando em um ótimo local. A representação do indivíduo poder ser feita por inteiros, reais ou binários. A representação binária é historicamente importante, uma vez que foi utilizada nos trabalhos pioneiros de Holland [Hol92]. Além disso, é a representação mais aplicada por ser facilmente utilizada, manipulada e simples de ser analisada teoricamente. Porém, alguns problemas de otimização necessitam que seus parâmetros sejam codificados, por exemplo, com números reais. Processo de Seleção De acordo com o princípio da teoria de Darwin: Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua chance de sobreviver e gerar descendentes. Portanto, o AG deverá, a cada geração encontrar um população de indivíduos mais aptos. O AG começa com um população de N indivíduos, que podem ser gerados aleatoriamente. Inspirado no processo de seleção natural de seres vivos, o AG seleciona os melhores indivíduos da população inicial (aqueles de alta aptidão) para gerar os filhos (que

20 são variantes dos pais) através dos operadores de cruzamento e mutação. Uma população intermediária é utilizada para alocar os indivíduos pais selecionados. Geralmente, os pais são selecionados com probabilidade proporcional à sua aptidão. Portanto, a probabilidade de seleção p i de um indivíduo s i com aptidão f i é dada por: f i p i = N i=1 f i (9) Dois métodos são bem conhecidos para a realização da seleção dos indivíduos: o Método da Roleta e a Seleção por Torneio. Na seleção por roleta, cada indivíduo é representado em uma roleta proporcionalmente à aptidão. Portanto, os indivíduos com maior aptidão ocupam maior fatia da roleta. O Algoritmo 5 descreve o método da roleta. Algoritmo 5 Seleção pelo Método da Roleta 1: Total N i=1 f i; 2: rand randômico(0, total); 3: total parcial 0; 4: i 0; 5: repete 6: i i + 1; 7: total parcial total parcial + f i ; 8: até total parcial rand 9: Retornar o indivíduo s i Quando o método de seleção por torneio é utilizado, n indivíduos são escolhidos aleatoriamente, com a mesma probabilidade. O indivíduo com maior aptidão, entre os escolhidos, é selecionado para compor a população intermediária. O processo se repete até que se consiga a população intermediária com o número de indivíduos desejados. Uma estratégia que busca melhorar a convergência dos AGs é o Elitismo, que passa um certo número de melhores indivíduos para a próxima geração. Geralmente, a elite tem um tamanho reduzido, 1 a 2 indivíduos para cada 50 indivíduos. Esta escolha pode ser feita diretamente ou por sorteio [CDR + 04]. Cruzamento e Mutação Os operadores de cruzamento e a mutação são os principais mecanismos de busca dos AGs para explorar regiões desconhecidas do espaço de busca. O cruzamento é aplicado a um par de indivíduos retirados da população intermediária, gerando dois indivíduos filhos. Cada um dos indivíduos pais tem sua cadeia de bits cortada em uma posição aleatória produzindo duas cabeças e duas caudas. As caudas são trocadas gerando dois novos indivíduos. O operador de cruzamento pode ser apresentado esquematicamente pela Figura 4.8. O operador de mutação é responsável por modificar aleatoriamente um ou mais bits da cadeia que representa um indivíduo. A probabilidade de mutação é chamada de

21 Ponto de Cruzamento Pai Pai Filho Filho Figura 4.8. Esquema de representação do operador de cruzamento. taxa de mutação. Os valores para a taxa de mutação são geralmente pequenos. O objetivo da mutação é evitar que as soluções obtidas se concentrem em um ótimo local, explorando regiões desconhecidas do espaço de busca. Considerando o caso particular de uma codificação binária, podemos exemplificar o operador de mutação com a Figura 4.9. Ponto de Mutação Pai Pai Figura 4.9. Esquema de representação do operador de mutação Inteligência de Enxames O comportamento de insetos sociais tem inspirado o desenvolvimento de técnicas baseadas nessas organizações para solucionar problemas complexos [ESK01, BDT99]. Essa abordagem busca abstrair e simular algumas das características encontradas em populações de seres vivos como a autonomia, a auto-organização, a emergência e o funcionamento distribuído. Algumas colônias já vem sendo estudadas há algum tempo como as formigas, abelhas, aves e lagartos. Por serem, por enquanto, a colônia mais aplicada para solução de problemas de otimização discreta, nosso texto estará concentrado somente nas Colônias de Formigas. Otimização por Colônia de Formigas - ACOs Esta seção é destinada ao método de otimização heurístico baseado no comportamento social de colônias de formigas [DMC91, DG97b, DD99b]. A inspiração para este método partiu da experiência com a colônia de formigas Iridomyrmex humilis a uma fonte de alimento através de dois caminhos distintos [GADP89]. O experimento foi planejado de maneira que as formigas, ao percorrerem ambas as direções, tinham sempre que optar por um ou outro caminho. Após uma fase transitória,

22 Figura Inteligência Coletiva de Pássaros e Peixes. a maioria das formigas acabava por escolher o mesmo caminho. A probabilidade de selecionar o caminho de menor distância aumentava à medida em que a diferença de tamanho entre os caminhos tornava-se maior. Figura Esquema da Experiência com as Formigas Iridomyrmex humilis. A explicação para tal comportamento está relacionada à substância denominada feromônio, depositada pelas formigas durante sua locomoção. Quando as formigas chegam a um ponto de decisão, como a intersecção entre dois caminhos distintos, elas fazem uma escolha probabilística baseada na quantidade de feromônio presente nestes caminhos. Então, quanto maior a quantidade de feromônio em um caminho, maior a probabilidade deste ser escolhido. Inicialmente, não existe feromônio nos caminhos, portanto, a probabilidade de escolha é a mesma para ambos os caminhos. Quando os caminhos têm distâncias distintas, a taxa de chegada de formigas na fonte de alimentos vindas pelo menor caminho é maior. Sendo assim, ao iniciar a viagem de retorno ao ninho, estas formigas irão encontrar mais ferômonio sobre o menor caminho. Este fato estimulará mais formigas a seguí-lo, e assim cada vez mais, até que a grande maioria das formigas acabe optando pelo mesmo caminho. Este processo ocorre da mesma maneira no sentido inverso.

23 O Problema do Caixeiro Viajante A primeira aplicação do algoritmo de colônia de formigas foi para o clássico problema do Caixeiro Viajante [DG97a]. Inicialmente, m formigas são distribuídas pelas cidades segundo algum critério pré-estabelecido e todos os caminhos (i, j) E são inicializados com a mesma quantidade τ i j (1) > 0 de feromônio. Em seguida, cada formiga k(k = 1,,m) seleciona as próximas cidades a serem visitadas, por meio da seguinte regra de decisão probabilística: onde: p k i j(t) = [τ i j(t)] α [η i j ] β l N k[τ i j (t)] α [η i j ] β se j Nk i ; senão, p k i j(t) = 0. (10) i p k i j (t) probabilidade da cidade j ser escolhida pela formiga k, atualmente situada na cidade i, durante a t-ésima iteração do algoritmo; τ i j (t) intensidade do feromônio no caminho (i, j) E na t-ésima iteração; α parâmetro que regula a influência de τ i j (t); η i j = 1 d i j visibilidade da cidade j com relação à cidade i; d i j distância entre as cidades i e j; β parâmetro que regula a influência de η i j ; Ni k (t) conjunto de cidades ainda não visitadas pela formiga k situada na cidade i na t-ésima iteração; O processo de seleção da próxima cidade a ser visitada é repetido até que todas as formigas tenham completado um caminho interligando todas as cidades uma única vez. O processo de depósito e evaporação do feromônio ocorre do seguinte modo: sendo τ i j (t) = m i=1 τk i j (t), τk i j (t) = E; caso contrário, τi k j (t) = 0 onde: t iteração atual do algoritmo; τ i j (t + 1) = (1 ρ)τ i j (t) + τ i j (t) (11) ρ [0,1] parâmetro que regula a redução de τ i j (t); Q, se a formiga k percorreu o caminho (i, j) L k (t) τ i j (t) ganho total de feromônio no caminho (i, j) E; m número de formigas; τi k j (t) ganho de feromônio no caminho (i, j) E, causado pela formiga k;

24 Q quantidade de feromônio excretada por uma formiga a cada iteração; S k (t) caminho completo que interliga todas as cidades uma única vez, descoberto pela formiga k; L k (t) distância associada ao caminho completo S k (t) descoberto pela formiga k; Todos esses procedimentos são executados a cada iteração do algoritmo baseado em colônia de formigas até que um número finito de iterações, previamente definido, seja atingido. Neste caso, a melhor solução encontrada até o momento é retornada. O Método de Colônia de Formigas Agora apresentaremos a formulação geral do método baseado em colônia de formigas, conhecido como Ant Colony Optimization - ACO, que pode ser utilizado na determinação de caminhos de custo mínimo em um grafo G = (C,L,W) [DD99a]. O grafo G = (C,L,W) e as restrições Ω(C,L,θ), que juntos representam de maneira geral um problema de otimização discreto, são definidos da seguinte forma em [DD99b]: C = {c 1,c 2,,c Nc } é o conjunto finito de N C componentes, como, por exemplo, as cidades do Problema do Caixeiro Viajante (TSP); L = {l ci c j c i,c j C} é o conjunto finito de possíveis conexões entre os elementos de C. Como, por exemplo, os caminhos (i, j) E que interligam as cidades em TSP; W é o conjunto de pesos associados, ou a C, ou a L, ou a ambos. Por exemplo, a distância d i j dos caminhos (i, j) E que interligam as cidades em TSP; Ω(C,L,θ) é o conjunto finito de restrições atribuídas aos elementos de C e L, com o θ indicando que mudanças de restrição poderão ocorrer ao longo do tempo. Por exemplo, se uma determinada cidade for visitada em TSP, ela não poderá ser visitada novamente; Os estados do problema são definidos por seqüências s =< a 1,a 2,,a k, >, com a i = c k C, k = 1,,N c ; Caso c 1 seja o último componente do estado s 1, então um estado s 2 é dito vizinho a s 1, se somente se, c 2 C(l c1 c 2 ) (s 2 =< s 1,c 2 >). Por exemplo, se existe em TSP um caminho (i, j) E entre as cidades i, j E, então o estado s 2 =< s 1, j > é vizinho ao estado s 1 =< s 0,i >; Caso a seqüência s =< a 1,a 2,,a k >, a i,a i+1 L seja viável por satisfazer as restrições Ω(C, L, θ), então esta seqüência constituirá uma solução viável ψ do problema abordado; S é o conjunto de todas as soluções viáveis do problema;

25 A cada solução viável ψ está associado um custo J(ψ) dado em função dos custos J(l ci c j,θ) das conexões l ci c j E, ou dos custos J(c i,θ) dos componentes c i C, ou de ambos. Por exemplo, dado que em TSP J(l ci c j,θ) = d i j, onde d i j é a distância entre a cidade i e j, então J(ψ) = (i, j) ψ d i j. Vale ressaltar que os custos J(l ci c j,θ), e por conseguinte J(ψ), podem estar parametrizados por alguma medida de tempo θ, o que não é o caso de TSP. Em um algoritmo ACO, as formigas constroem soluções representadas no grafo de forma incremental. Cada formiga parte de uma solução inicial composta de um único elemento pertencente a C e segue adicionando novos elementos até alcançar uma solução viável. Os componentes candidatos a serem adicionados são selecionados aleatoriamente a partir de uma vizinhança, definida em torno do último elemento. A escolha aleatória é feita com o uso de informações locais dos vértices e/ou conexões já visitadas. Após construir a solução viável ψ (ou enquanto a constrói), a formiga deposita feromônio sobre os componentes e/ou conexões visitadas, segundo a qualidade da solução ψ encontrada (ou que vem encontrando). Este feromônio depositado pela formiga é o que influenciará a construção da solução das demais. Algoritmo 6 Otimização por Colônia de Formigas 1: enquanto Critério de Parada não for satisfeito faça 2: se Escalonar Atividades então 3: Geração e Atividades da Fomigas( ); 4: Evaporação de Feromônio( ); 5: Atividades Opcionais( ); 6: fim se 7: fim enquanto A Otimização por Colônia de Formigas tem sido aplicada com sucesso em vários problemas, dentre eles: o problema do Caixeiro Viajante [DG97b], o roteamento em redes de telecomunicações [KESMI + 01, BHG + 98], o roteamento de veículos, escalonamento [CDMT94], balaceamento de cargas [SHBR96], robótica [KZ92], etc Robótica Introdução A palavra robô tem origem da palavra tcheca robotnik, que significa servo, o termo robô foi utilizado inicialmente por Karel Capek em 1923, nesta época a idéia de um homem mecânico parecia vir de alguma obra de ficção. No contexto atual, um robô pode ser considerado um agente físico que executa tarefas manipulando o mundo físico. Apesar desta definição, o termo robô pode ser usado para denotar agentes lógicos muito utilizados em sistemas distribuídos. Um robô não precisa ser necessariamente inteligente, ele pode ser utilizado para realização de tarefas repetitivas como na indústria automobilística e têxtil [RN04, Mur00]. Estes robôs sem inteligência são chamados de robôs manipuladores e possuem a sua origem nas áreas de mecânica e controle. Nesse contexto, os principais problemas dos

26 projetistas de robôs estão ligados a definição de funções para controle de uma trajetória repetível, o movimento de uma articulação etc. Geralmente, esses robôs não possuem sensores do ambiente, pois ele está inserido em um mundo imutável, onde tudo está no lugar certo e os eventos acontecem em momentos predeterminados, com alta precisão e rápida repetição. Robôs manipuladores estão ligados à automação de atividades rotineiras. Alguns exemplos de robôs manipuladores são: braços robôs, automação industrial, piloto automático etc (ver Figura 4.12) [RN04, Mur00]. Figura Exemplo de um braço robô manipulador. Na Figura 4.13, podemos observar a evolução dos robôs desde 1960 até os dias de hoje, onde houve o surgimento de robôs com inteligência. Essa evolução foi possível por meio dos avanços alcançados na engenharia mecânica na corrida espacial e os avanços na área de visão computacional para o reconhecimento de objetos 4.12) [RN04, Mur00]. Um robô inteligente pode ser definido de maneira simples: uma criatura mecânica autônoma. Por criatura, entendemos que um robô é uma entidade com suas próprias motivações e processos de tomada de decisões. Além disso, um robô é uma criatura mecânica, pois ele é construído ou projetado pelo ser humano. Por último, um termo diretamente ligado a inteligência é a autonomia, que permite ao robô sentir, pensar e atuar com o ambiente externo de forma autônoma. Figura Evolução histôrica dos robôs

27 Os robôs precisam de inteligência pela necessidade de: interpretação de sensações, entendimento de situações, interação com seres humanos, recuperação de falhas, localização e aprendizado [RN04, Mur00]. Atualmente, a área de inteligência artificial possui as ferramentas necessárias para estudar esses problemas, dentre elas, destacamos: representação de conhecimento (ex: lógica de predicados), entendimento de linguagens (ex: linguagens como o Prolog), planejamento e solução de problemas (ex: Algoritmos Genéticos), busca (ex: algoritmo A ), inferência (ex: sistemas especialistas), aprendizado (ex: redes neurais artificiais) e visão (ex: classificadores de padrões). Figura Aplicações de robôs: entretenimento e tarefas cotidianas. Com o estudo e desenvolvimento destas áreas da inteligência artificial nos últimos anos, os robôs inteligentes já são utilizados em diversas aplicações de áreas diferentes, tais como (ver Figura 4.14): Substituição de humanos em tarefas cotidianas (cortar grana etc.); Ambientes arriscados: poder de fazer coisas que os humanos não conseguem (ex: vasculhar os destroços do WTC, desarmar bombas, exploração espacial); Linha de montagem: substituição de peças, manipulação de materiais, soldagem e pintura; Transporte: cadeira de rodas automáticas, helicópteros autônomos, navegação em auto-estradas; Medicina: realização de cirurgias precisas no cérebro. Entretenimento: cães robôs, futebol de robôs etc Arquitetura de Robôs Robôs inteligentes são compostos por: efetuadores, sensores, energia, controle e inteligência. Na Figura 4.15, podemos observar a arquitetura de um robô com controle remoto, ou seja, a inteligência é centralizada e não está localizada no agente. Neste caso, o operador do robô precisa de um display local e um mecanismo de controle para guiar o robô. Para a inteligência artificial, um robô que é totalmente controlado por um humano não é

28 um objeto de estudo interessante. Portanto, para o estudo de robôs inteligentes consideramos apenas os robôs tele-operados e totalmente autônomos. Os robôs tele-operados são auxiliados por humanos em atividades mais complexas como reconhecimento de objetos [RN04, Mur00]. Figura Arquitetura de robôs. Os efetuadores são os meios pelos quais os robôs se movem e alteram a forma de seus corpos, ou seja, cuidam da mobilidade e comunicação de um robô. A mobilidade está relacionada com o movimento das pernas, braços, pescoço e demais partes do robô que atuam com o meio externo. Um conceito importante relacionado com a mobilidade é o grau de liberdade, que indica o número de direções independentes em que um efetuador pode mover-se. Já a comunicação está relacionada com a emissão de sons, gestos e qualquer outro tipo de dispositivo que permita a iteração do robô com outros agentes e com o ambiente [RN04, Mur00]. Os sensores são a interface perceptiva entre robôs e seus ambientes, ou seja, a entrada de dados e informações do robô. Eles podem estar presentes em diferentes partes de um robô como olhos, nariz, tato e audição, além de outros sensores como radares e sensores de umidade [RN04, Mur00]. Um grande desafio na construção de robôs hoje em dia é a questão da economia de energia. Quanto mais complexos, em termos de motores e componentes eletrônicos, mais energia é consumida por um robô. Como alternativa as baterias, que são pesadas e armazenam pouca energia, robôs de exploração espacial como o Opportunity utilizam a energia solar para seu funcionamento [RN04, Mur00]. Mas a parte fundamental de um robô inteligente é parte de controle e inteligência. Este componente do robô é o principal foco da inteligência artificial, que provê a autonomia necessária para os robôs. Para atingir uma autonomia completa, a parte de controle e inteligência deve cuidar da geração e execução de ações para atingir um objetivo ou completar uma missão. Além disso, a execução é caracterizada pela ocorrência de eventos e ambientes não previstos, exigindo uma adaptação dinâmica do sistema. Neste trabalho,

29 abordaremos com mais detalhes no capítulo seguinte, o uso de computação bioinspirada para o alcance desta autonomia [RN04, Mur00] Robôs Móveis Quanto á mobilidade, os robôs inteligentes podem ser divididos em três classes [Mur00]: Veículos Terrestres Não-Tripulados (VTNT), Veículos Aéreos Não-Tripulados (VANT) e Veículos Subaquáticos Não-Tripulados (VSNT). Os VTNTs são caracterizados pela presença de rodas, esteira, patas ou pernas. Os principais exemplos deste tipo de robô móvel são: o cão AIBO da Sony, os jipes de exploração espacial Sojourner e Opportunity da NASA, além dos humanóides P3 e Asimo da Honda (ver Figura 4.16(a)). Figura Classes de robôs: (a) VTNT; (b) VANT; (c) VSNT. Os VANTs são caracterizados pela presença de asa fixa ou veículos do tipo VTOL (tipo helicóptero, que levantam vôo e aterrisam na vertical). Os principais exemplos deste tipo de robô móvel são os projetos: Global Hawk, Predator e UCAV (ver Figura 4.16(b)). Os VSNTs são divididos em duas classes: operados remotamente e totalmente autônomos.os principais exemplos deste tipo de robô móvel são os projetos: Persephone, Jason e Hugin (ver Figura 4.16(c)) Tipos de Robôs Inteligentes Autônomos Idealmente, robôs inteligentes devem ser totalmente autônomos. A autonomia de um robô é baseada em três primitivas: sensação, planejamento e ação [Mur00]. Uma quarta primitiva opcional seria o aprendizado. Um robô deve coletar dados de entrada sobre o ambiente ao seu redor (sensação), processar estes dados em busca de informações significativas (planejar) e então atuar no ambiente da melhor forma possível (ação). Baseado no fato que os únicos seres autônomos inteligentes conhecidos são da própria espécie humana, o aprendizado se torna uma ferramenta que auxilia na compreensão e adaptação do robô as mudanças no ambiente, tal como nos humanos. A autonomia de um robô inteligente pode ser dividida em três classes: reativa, deliberativa e híbrida. A autonomia deliberativa foi a primeira proposta baseada ainda em

30 Figura Primitivas para um robô autônomo. robôs manipuladores. Nesse tipo de autonomia, um robô coleta informações do ambiente, planeja e age de maneira seqüencial. As sensações são realimentadas com as ações tomadas. Esta estrutura monolítica e seqüencial torna esse tipo de autonomia muito restrita e com baixo desempenho. Com todas as limitações desta abordagem, a autonomia reativa foi proposta como uma forma mais interessante de autonomia. Neste tipo, um robô não possui mais a primitiva de planejamento, ele simplesmente reage de acordo com as sensações. Com isso, ganhou-se em paralelismo, pois as decisões se tornaram independentes. Apesar disso, os engenheiros de controle não conseguiam provar formalmente o funcionamento destes robôs. Além disso, os estudiosos de inteligência artificial desejavam colocar o planejamento de volta aos robôs, pois ele era essencial para a tomada de decisões inteligentes. Com isso, em 1990, foi proposta uma abordagem híbrida (deliberativa/reativa), onde primeiramente o robô planeja, depois ele se torna reativo até que a tarefa esteja completa ou precisa de alguma adaptação. Desta forma o robô passou a tomar decisões inteligentes, mas reagindo com o ambiente de forma paralela. A primitiva de planejamento pode ser implementada com diversas técnicas de inteligência artificial. Dentre estas técnicas, destacamos a computação bioinspirada. Além disso, estas técnicas podem trabalhar em conjunto com técnicas de aprendizado, tornando o robô altamente adaptativo Aplicações A autonomia de um robô depende de suas partes sensoriais, de planejamento e atuação ou ação [Mur00]. O módulo de planejamento pode ser definido como a inteligência do robô, pois é o responsável pela geração e conseqüente execução das ações do robô que fazem parte do objetivo que este deve atingir. Apesar dos diversos avanços nas pesquisas nas áreas de inteligência artificial, projetar o módulo de planejamento de um robô é uma tarefa árdua. A dificuldade do desenvolvimento da inteligência do robô é, em grande parte, justificada pelo seu ambiente. Diferentemente de muitas das diversas aplicações nas quais técnicas de inteligência artificial são aplicadas, o ambiente dos robôs é o mundo real que possui diversas características que dificultam as ações de um robô.

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001 47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações

Leia mais

Do neurônio biológico ao neurônio das redes neurais artificiais

Do neurônio biológico ao neurônio das redes neurais artificiais Do neurônio biológico ao neurônio das redes neurais artificiais O objetivo desta aula é procurar justificar o modelo de neurônio usado pelas redes neurais artificiais em termos das propriedades essenciais

Leia mais

Modelos Pioneiros de Aprendizado

Modelos Pioneiros de Aprendizado Modelos Pioneiros de Aprendizado Conteúdo 1. Hebb... 2 2. Perceptron... 5 2.1. Perceptron Simples para Classificaçãod e Padrões... 6 2.2. Exemplo de Aplicação e Motivação Geométrica... 9 2.3. Perceptron

Leia mais

Redes Neurais. A IA clássica segue o paradigma da computação simbólica

Redes Neurais. A IA clássica segue o paradigma da computação simbólica Abordagens não simbólicas A IA clássica segue o paradigma da computação simbólica Redes Neurais As redes neurais deram origem a chamada IA conexionista, pertencendo também a grande área da Inteligência

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Aprendizagem de Máquina Professor: Rosalvo Ferreira de Oliveira Neto Disciplina: Inteligência Artificial Tópicos 1. Definições 2. Tipos de aprendizagem 3. Paradigmas de aprendizagem 4. Modos de aprendizagem

Leia mais

Complemento II Noções Introdutória em Redes Neurais

Complemento II Noções Introdutória em Redes Neurais Complemento II Noções Introdutória em Redes Neurais Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Redes Neurais Artificiais na Engenharia Nuclear 2 Aula-1 Ano: 2005

Redes Neurais Artificiais na Engenharia Nuclear 2 Aula-1 Ano: 2005 Redes Neurais Artificiais na Engenharia Nuclear 1 - Apresentação do Professor: dados, lista de E-mail s, etc. - Apresentação da Turma: Estatística sobre origem dos alunos para adaptação do curso - Apresentação

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística Aula 4 Conceitos Básicos de Estatística Aula 4 Conceitos básicos de estatística A Estatística é a ciência de aprendizagem a partir de dados. Trata-se de uma disciplina estratégica, que coleta, analisa

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Teoria geral dos sistemas Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Necessário entender inicialmente os conceitos básicos e base filosófica que norteiam sistemas

Leia mais

SIG. Uma plataforma para introdução de técnicas emergentes no planejamento urbano, regional e de transportes

SIG. Uma plataforma para introdução de técnicas emergentes no planejamento urbano, regional e de transportes SIG Uma plataforma para introdução de técnicas emergentes no planejamento urbano, regional e de transportes SIG Uma plataforma para introdução de técnicas emergentes no planejamento urbano, regional e

Leia mais

3 Estratégia para o enriquecimento de informações

3 Estratégia para o enriquecimento de informações 34 3 Estratégia para o enriquecimento de informações Podemos resumir o processo de enriquecimento de informações em duas grandes etapas, a saber, busca e incorporação de dados, como ilustrado na Figura

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade Introdução É sabido que os processos rodam em processadores. Nos sistemas tradicionais existe somente um único processador, de forma que não há dúvida a respeito de como ele deve ser usado. Em um sistema

Leia mais

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões Classificação de imagens Autor: Gil Gonçalves Disciplinas: Detecção Remota/Detecção Remota Aplicada Cursos: MEG/MTIG Ano Lectivo: 11/12 Sumário Classificação da imagem (ou reconhecimento de padrões): objectivos

Leia mais

Avaliação de Desempenho de Sistemas

Avaliação de Desempenho de Sistemas Avaliação de Desempenho de Sistemas Introdução a Avaliação de Desempenho de Sistemas Prof. Othon M. N. Batista othonb@yahoo.com Roteiro Definição de Sistema Exemplo de Sistema: Agência Bancária Questões

Leia mais

DURATION - AVALIANDO O RISCO DE MUDANÇA NAS TAXAS DE JUROS PARTE ll

DURATION - AVALIANDO O RISCO DE MUDANÇA NAS TAXAS DE JUROS PARTE ll DURATION - AVALIANDO O RISCO DE MUDANÇA NAS TAXAS DE JUROS PARTE ll! Qual a origem do conceito de duração?! Como calcular a duração?! Quais as limitações do cálculo da duração?! Como estimar a variação

Leia mais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie 1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância

Leia mais

Estudo de Casos 57. 5.1. Estudo de Caso 1: Velocidade Intervalar e Espessura da Camada

Estudo de Casos 57. 5.1. Estudo de Caso 1: Velocidade Intervalar e Espessura da Camada Estudo de Casos 57 5 Estudo de Casos Neste capítulo são relatados três estudos de caso com sismogramas de referência sintéticos que têm como objetivo avaliar o modelo proposto. Na descrição dos estudos

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

Engenharia de Software

Engenharia de Software Conceitos básicos sobre E.S: Ambiência Caracterização do software Fases de desenvolvimento 1 Introdução Aspectos Introdutórios Crise do Software Definição de Engenharia do Software 2 Crise do Software

Leia mais

3 Metodologia de Previsão de Padrões de Falha

3 Metodologia de Previsão de Padrões de Falha 3 Metodologia de Previsão de Padrões de Falha Antes da ocorrência de uma falha em um equipamento, ele entra em um regime de operação diferente do regime nominal, como descrito em [8-11]. Para detectar

Leia mais

MLP (Multi Layer Perceptron)

MLP (Multi Layer Perceptron) MLP (Multi Layer Perceptron) André Tavares da Silva andre.silva@udesc.br Roteiro Rede neural com mais de uma camada Codificação de entradas e saídas Decorar x generalizar Perceptron Multi-Camada (MLP -

Leia mais

Evolução da cooperação em populações modeladas por autômatos celulares com o uso de teoria de jogos

Evolução da cooperação em populações modeladas por autômatos celulares com o uso de teoria de jogos Geração de modelos de redes com verificação dos parâmetros topológicos Prof. Pedro Schimit - schimit@uninove.br Muitas coisas podem ser modeladas a partir de modelos de redes (ou grafos). A maneira como

Leia mais

Motivação. Robert B. Dilts

Motivação. Robert B. Dilts Motivação Robert B. Dilts A motivação é geralmente definida como a "força, estímulo ou influência" que move uma pessoa ou organismo para agir ou reagir. De acordo com o dicionário Webster, motivação é

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

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

Inovação aberta na indústria de software: Avaliação do perfil de inovação de empresas

Inovação aberta na indústria de software: Avaliação do perfil de inovação de empresas : Avaliação do perfil de inovação de empresas Prof. Paulo Henrique S. Bermejo, Dr. Prof. André Luiz Zambalde, Dr. Adriano Olímpio Tonelli, MSc. Pamela A. Santos Priscila Rosa LabGTI Laboratório de Governança

Leia mais

função de produção côncava. 1 É importante lembrar que este resultado é condicional ao fato das empresas apresentarem uma

função de produção côncava. 1 É importante lembrar que este resultado é condicional ao fato das empresas apresentarem uma 90 6. CONCLUSÃO Segundo a teoria microecônomica tradicional, se as pequenas empresas brasileiras são tomadores de preços, atuam nos mesmos mercados e possuem a mesma função de produção, elas deveriam obter

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Eventos independentes

Eventos independentes Eventos independentes Adaptado do artigo de Flávio Wagner Rodrigues Neste artigo são discutidos alguns aspectos ligados à noção de independência de dois eventos na Teoria das Probabilidades. Os objetivos

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear. CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.

Leia mais

2 Fundamentação Conceitual

2 Fundamentação Conceitual 2 Fundamentação Conceitual 2.1 Computação Pervasiva Mark Weiser define pela primeira vez o termo Computação Ubíqua ou Computação Pervasiva (Ubiquitous Computing) em (10). O autor inicia o trabalho com

Leia mais

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas CONSIDERAÇÕES INICIAIS AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas Quando planejamos construir uma subestação, o aspecto de maior importância está na escolha (e, conseqüentemente, da definição)

Leia mais

4 Avaliação Experimental

4 Avaliação Experimental 4 Avaliação Experimental Este capítulo apresenta uma avaliação experimental dos métodos e técnicas aplicados neste trabalho. Base para esta avaliação foi o protótipo descrito no capítulo anterior. Dentre

Leia mais

3 Metodologia 3.1. Tipo de pesquisa

3 Metodologia 3.1. Tipo de pesquisa 3 Metodologia 3.1. Tipo de pesquisa Escolher o tipo de pesquisa a ser utilizado é um passo fundamental para se chegar a conclusões claras e responder os objetivos do trabalho. Como existem vários tipos

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

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

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

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

Leia mais

UMA ABORDAGEM DE PODA PARA MÁQUINAS DE APRENDIZADO EXTREMO VIA ALGORITMOS GENÉTICOS

UMA ABORDAGEM DE PODA PARA MÁQUINAS DE APRENDIZADO EXTREMO VIA ALGORITMOS GENÉTICOS UMA ABORDAGEM DE PODA PARA MÁQUINAS DE APRENDIZADO EXTREMO VIA ALGORITMOS GENÉTICOS Alisson S. C. Alencar, Ajalmar R. da Rocha Neto Departamento de Computação, Instituto Federal do Ceará (IFCE). Programa

Leia mais

Introdução. Capítulo. 1.1 Considerações Iniciais

Introdução. Capítulo. 1.1 Considerações Iniciais Capítulo 1 Introdução 1.1 Considerações Iniciais A face humana é uma imagem fascinante, serve de infinita inspiração a artistas há milhares de anos. Uma das primeiras e mais importantes habilidades humanas

Leia mais

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br SINOP MT 2015-1 COMO SÃO DESENVOLVIDOS OS SISTEMAS DE INFORMAÇÃO? São desenvolvimento como uma estrutura

Leia mais

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Pós-Graduação em Engenharia Elétrica Inteligência Artificial Pós-Graduação em Engenharia Elétrica Inteligência Artificial João Marques Salomão Rodrigo Varejão Andreão Inteligência Artificial Definição (Fonte: AAAI ): "the scientific understanding of the mechanisms

Leia mais

ELABORAÇÃO DE PROJETOS

ELABORAÇÃO DE PROJETOS Unidade II ELABORAÇÃO DE PROJETOS DE PESQUISA Profa. Eliane Gomes Rocha Pesquisa em Serviço Social As metodologias qualitativas de pesquisa são utilizadas nas Ciências Sociais e também no Serviço Social,

Leia mais

INTRODUÇÃO À ROBÓTICA

INTRODUÇÃO À ROBÓTICA Material de estudo 2010 INTRODUÇÃO À ROBÓTICA André Luiz Carvalho Ottoni Introdução à Robótica Capítulo 1 - Introdução Robótica é um ramo da tecnologia que engloba mecânica, eletrônica e computação, que

Leia mais

4- PROJETO DE BANCO DE DADOS

4- PROJETO DE BANCO DE DADOS 4- PROJETO DE BANCO DE DADOS OBJETIVOS DE ENSINO: 4 - Empregar a técnica da modelagem de dados no projeto de banco de dados. OBJETIVOS OPERACIONAIS Ao final desta unidade o aluno será capaz de: 4.1 - Definir

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SEGURANÇA DA INFORMAÇÃO Aula N : 15 Tema:

Leia mais

CAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão

CAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão CAPÍTULO 3 Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão 3.1 - Multicomponentes Conceitos Básicos: O conceito de multicomponente é utilizado em diversas áreas de

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Software Livre e Engenharia Elétrica

Software Livre e Engenharia Elétrica Software Livre e Engenharia Elétrica Diego Cézar Silva de Assunção Henrique Ribeiro Soares José Rubens Guimarães Vilaça Lima Pedro Dias de Oliveira Carvalho Rafael Viegas de Carvalho Carlos Gomes O software

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador

Leia mais

ADMINISTRAÇÃO GERAL MOTIVAÇÃO

ADMINISTRAÇÃO GERAL MOTIVAÇÃO ADMINISTRAÇÃO GERAL MOTIVAÇÃO Atualizado em 11/01/2016 MOTIVAÇÃO Estar motivado é visto como uma condição necessária para que um trabalhador entregue um desempenho superior. Naturalmente, como a motivação

Leia mais

Como a palavra mesmo sugere, osteointegração é fazer parte de, ou harmônico com os tecidos biológicos.

Como a palavra mesmo sugere, osteointegração é fazer parte de, ou harmônico com os tecidos biológicos. PRINCIPAIS PERGUNTAS SOBRE IMPLANTES DENTÁRIOS. O que são implantes osseointegrados? É uma nova geração de implantes, introduzidos a partir da década de 60, mas que só agora atingem um grau de aceitabilidade

Leia mais

Desenvolvimento de uma Etapa

Desenvolvimento de uma Etapa Desenvolvimento de uma Etapa A Fase Evolutiva do desenvolvimento de um sistema compreende uma sucessão de etapas de trabalho. Cada etapa configura-se na forma de um mini-ciclo que abrange as atividades

Leia mais

Transcrição Automática de Música

Transcrição Automática de Música Transcrição Automática de Música Ricardo Rosa e Miguel Eliseu Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Leiria Departamento de Engenharia Informática A transcrição automática de

Leia mais

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Ramon Pereira Lopes Rangel Silva Oliveira 31 de outubro de 2011 1 Introdução O presente documento refere-se ao relatório

Leia mais

UNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO

UNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO UNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO RIO BRANCO Ano AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO Pré-Projeto de Pesquisa apresentado como exigência no processo de seleção

Leia mais

4 Metodologia. 4.1. Tipo de pesquisa

4 Metodologia. 4.1. Tipo de pesquisa 4 Metodologia Este capítulo descreve a metodologia adotada na execução do trabalho de pesquisa: definição da variável alvo, delimitação da população, processo de seleção da amostra, técnicas e procedimentos

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

Piaget diz que os seres humanos passam por uma série de mudanças previsíveis e ordenadas; Ou seja, geralmente todos os indivíduos vivenciam todos os

Piaget diz que os seres humanos passam por uma série de mudanças previsíveis e ordenadas; Ou seja, geralmente todos os indivíduos vivenciam todos os Teoria cognitivista Piaget utilizou os princípios conhecidos como o conceito da adaptação biológica para desenvolver esta teoria; Ela diz que o desenvolvimento da inteligência dos indivíduos acontece à

Leia mais

Desenvolve Minas. Modelo de Excelência da Gestão

Desenvolve Minas. Modelo de Excelência da Gestão Desenvolve Minas Modelo de Excelência da Gestão O que é o MEG? O Modelo de Excelência da Gestão (MEG) possibilita a avaliação do grau de maturidade da gestão, pontuando processos gerenciais e resultados

Leia mais

Motivação para o trabalho no contexto dos processos empresariais

Motivação para o trabalho no contexto dos processos empresariais Motivação para o trabalho no contexto dos processos empresariais Carlos Alberto Pereira Soares (UFF) carlos.uff@globo.com Wainer da Silveira e Silva, (UFF) wainer.uff@yahoo.com.br Christine Kowal Chinelli

Leia mais

análisederisco empresarial

análisederisco empresarial análisederisco empresarial Ca da vez mais, a administração torna-se uma arte, sendo que os administradores aprendem a cada dia novas articulações, para poder dar continuidade a seus negócios. Muitas vezes,

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Aprendizagem de Máquina Professor: Rosalvo Ferreira de Oliveira Neto Disciplina: Inteligência Artificial Tópicos 1. Definições 2. Tipos de aprendizagem 3. Paradigmas de aprendizagem 4. Modos de aprendizagem

Leia mais

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Prof. Leugim Corteze Romio Universidade Regional Integrada URI Campus Santiago-RS leugimcr@urisantiago.br Prof.

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

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

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

Considerações sobre redimensionamento de motores elétricos de indução

Considerações sobre redimensionamento de motores elétricos de indução Considerações sobre redimensionamento de motores elétricos de indução Artigo publicado na revista Lumiere Electric edição nº 166 Aplicações de investimentos dentro das empresas sempre são questionadas

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Redes Neurais. Profa. Flavia Cristina Bernardini

Redes Neurais. Profa. Flavia Cristina Bernardini Redes Neurais Profa. Flavia Cristina Bernardini Introdução Cérebro & Computador Modelos Cognitivos Diferentes Cérebro Computador Seqüência de Comandos Reconhecimento de Padrão Lento Rápido Rápido Lento

Leia mais

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP DARCI PRADO Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP Versão 1.6.4 Setembro 2009 Extraído do Livro "Maturidade em Gerenciamento de Projetos" 2ª Edição (a publicar) Autor: Darci

Leia mais

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Gerenciamento de Projetos Modulo II Clico de Vida e Organização Gerenciamento de Projetos Modulo II Clico de Vida e Organização Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com Bibliografia* Project Management Institute. Conjunto de Conhecimentos

Leia mais

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. De acordo com a Norma NBR 1001, um grande número de fatores influência a freqüência de calibração. Os mais importantes,

Leia mais

Controle II. Estudo e sintonia de controladores industriais

Controle II. Estudo e sintonia de controladores industriais Controle II Estudo e sintonia de controladores industriais Introdução A introdução de controladores visa modificar o comportamento de um dado sistema, o objetivo é, normalmente, fazer com que a resposta

Leia mais

FMEA (Failure Model and Effect Analysis)

FMEA (Failure Model and Effect Analysis) Definição FMEA (Failure Model and Effect Analysis) Conceitos Básicos A metodologia de Análise do Tipo e Efeito de Falha, conhecida como FMEA (do inglês Failure Mode and Effect Analysis), é uma ferramenta

Leia mais

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos.

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos. Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos. 9.1 Explicações iniciais A avaliação é algo que faz parte de nossas vidas, mesmo antes de nascermos, se não

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

Projeto de inovação do processo de monitoramento de safra da Conab

Projeto de inovação do processo de monitoramento de safra da Conab Projeto de inovação do processo de monitoramento de safra da Conab Projeto elaborado por Lorenzo Seguini lorenzo_seguini@yahoo.it Projeto Diálogos Setoriais União Europeia - Brasil 1 Sumário 1. Introdução...3

Leia mais

Cadernos do CNLF, Vol. XVI, Nº 04, t. 3, pág. 2451

Cadernos do CNLF, Vol. XVI, Nº 04, t. 3, pág. 2451 O PLURAL DAS PALAVRAS TERMINADAS EM -ÃO: MUDANÇA OU VARIAÇÃO ESTÁVEL? Miriam Cristina Almeida Severino (UFRJ) cristinasmiriams@yahoo.com.br Christina Abreu Gomes (UFRJ) christina-gomes@uol.com.br 1. Introdução

Leia mais

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da 6 Conclusões No âmbito do framework teórico da Engenharia Semiótica, este trabalho faz parte de um esforço conjunto para desenvolver ferramentas epistêmicas que apóiem a reflexão do designer durante o

Leia mais

1. Os métodos Não-Paramétricos podem ser aplicados a uma ampla diversidade de situações, porque não exigem populações distribuídas normalmente.

1. Os métodos Não-Paramétricos podem ser aplicados a uma ampla diversidade de situações, porque não exigem populações distribuídas normalmente. TESTES NÃO - PARAMÉTRICOS As técnicas da Estatística Não-Paramétrica são, particularmente, adaptáveis aos dados das ciências do comportamento. A aplicação dessas técnicas não exige suposições quanto à

Leia mais

Projeto de Redes Neurais e MATLAB

Projeto de Redes Neurais e MATLAB Projeto de Redes Neurais e MATLAB Centro de Informática Universidade Federal de Pernambuco Sistemas Inteligentes IF684 Arley Ristar arrr2@cin.ufpe.br Thiago Miotto tma@cin.ufpe.br Baseado na apresentação

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

DESENVOLVENDO COMPETÊNCIAS MATEMÁTICAS Marineusa Gazzetta *

DESENVOLVENDO COMPETÊNCIAS MATEMÁTICAS Marineusa Gazzetta * DESENVOLVENDO COMPETÊNCIAS MATEMÁTICAS Marineusa Gazzetta * RESUMO: Neste texto apresento algumas considerações sobre as competências e habilidades matemáticas a serem desenvolvidas no Ensino Fundamental,

Leia mais

BASES MACROMOLECULARES DA CONSTITUIÇÃO CELULAR

BASES MACROMOLECULARES DA CONSTITUIÇÃO CELULAR BASES MACROMOLECULARES DA CONSTITUIÇÃO CELULAR As moléculas que constituem as células são formadas pelos mesmos átomos encontrados nos seres inanimados. Todavia, na origem e evolução das células, alguns

Leia mais

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas

Leia mais

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos SENAC Pós-Graduação em Segurança da Informação: Análise de Riscos Parte 2 Leandro Loss, Dr. Eng. loss@gsigma.ufsc.br http://www.gsigma.ufsc.br/~loss Roteiro Introdução Conceitos básicos Riscos Tipos de

Leia mais

Poluição atmosférica decorrente das emissões de material particulado na atividade de coprocessamento de resíduos industriais em fornos de cimento.

Poluição atmosférica decorrente das emissões de material particulado na atividade de coprocessamento de resíduos industriais em fornos de cimento. Poluição atmosférica decorrente das emissões de material particulado na atividade de coprocessamento de resíduos industriais em fornos de cimento. Benedito Costa Santos Neto

Leia mais

PROJETO POLÍTICO PEDAGÓGICO: ELABORAÇÃO E UTILIZAÇÃO DE PROJETOS PEDAGÓGICOS NO PROCESSO DE ENSINO APRENDIZAGEM

PROJETO POLÍTICO PEDAGÓGICO: ELABORAÇÃO E UTILIZAÇÃO DE PROJETOS PEDAGÓGICOS NO PROCESSO DE ENSINO APRENDIZAGEM PROJETO POLÍTICO PEDAGÓGICO: ELABORAÇÃO E UTILIZAÇÃO DE PROJETOS PEDAGÓGICOS NO PROCESSO DE ENSINO APRENDIZAGEM Resumo Gisele Gomes Avelar Bernardes- UEG 1 Compreendendo que a educação é o ponto chave

Leia mais

Recomendada. A coleção apresenta eficiência e adequação. Ciências adequados a cada faixa etária, além de

Recomendada. A coleção apresenta eficiência e adequação. Ciências adequados a cada faixa etária, além de Recomendada Por quê? A coleção apresenta eficiência e adequação metodológica, com os principais temas relacionados a Ciências adequados a cada faixa etária, além de conceitos em geral corretos. Constitui

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO 1 Introdução A portabilidade é a facilidade que possibilita ao assinante de telefonia manter o número do seu telefone

Leia mais

Gerenciamento de Projetos Modulo IX Qualidade

Gerenciamento de Projetos Modulo IX Qualidade Gerenciamento de Projetos Modulo IX Qualidade Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com Bibliografia* Project Management Institute. Conjunto de Conhecimentos em Gerenciamento

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais