Roselaine Regina Rubi APLICAÇÃO DO ALGORITMO COLÔNIA DE FORMIGAS NA RESOLUÇÃO DO 8-PUZZLE

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

Download "Roselaine Regina Rubi APLICAÇÃO DO ALGORITMO COLÔNIA DE FORMIGAS NA RESOLUÇÃO DO 8-PUZZLE"

Transcrição

1 Roselaine Regina Rubi APLICAÇÃO DO ALGORITMO COLÔNIA DE FORMIGAS NA RESOLUÇÃO DO 8-PUZZLE Jaguariúna 2007

2 Roselaine Regina Rubi APLICAÇÃO DO ALGORITMO COLÔNIA DE FORMIGAS NA RESOLUÇÃO DO 8-PUZZLE Projeto apresentado à disciplina Trabalho de Graduação II, do curso de Ciência da Computação da Faculdade de Jaguariúna, sob a orientação do Prof. Sílvio Petroli Neto, como exigência essencial à conclusão do curso de graduação. Jaguariúna 2007

3 RUBI, Roselaine Regina. Aplicação do Algoritmo Colônia de Formigas na Resolução do 8- Puzzle. Trabalho de Conclusão de Curso defendido e aprovado na FAJ em 10 de dezembro de 2007 pela banca examinadora constituída pelos professores. Prof. Sílvio Petroli Neto FAJ Faculdade de Jaguariúna - Orientador Prof. Ricardo Menezes Salgado FAJ Faculdade de Jaguariúna Prof. Thales de Tarsis Cezare USF Universidade São Francisco Roselaine Regina Rubi

4 Dedico primeiramente a Deus, que me dá toda força necessária para ultrapassar todos os obstáculos, aos meus pais, família e amigos que perseverantemente me apóiam e incentivam. Em especial a minha mãe que me dá todo carinho necessário para que eu possa continuar acreditando que tudo é possível quando se ama de verdade.

5 AGRADECIMENTOS A realização desta Monografia só foi possível pelo apoio de inúmeras pessoas. A todos manifesto minha gratidão. E de modo particular: Ao Professor e Orientador Sílvio Petroli Neto pela orientação dedicada e pelo constante estímulo em todas as fases de realização deste trabalho e durante as fases do meu estudo.

6 Não tenho dúvida alguma de que qualquer homem ou mulher pode atingir o que eu atingi, se ele ou ela fizerem o mesmo esforço e cultivarem a fé e a esperança. Trabalho sem fé é como a tentativa de alcançar o fundo de um buraco sem fundo. (Mahatma Gandhi)

7 RUBI, Roselaine Regina. Aplicação do Algoritmo Colônia de Formigas na Resolução do 8- Puzzle. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) Curso Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO O algoritmo de Colônia de Formigas Artificial ou Ant Colony Systems (ACS) é inspirado pelo comportamento de colônia de formigas reais, em particular, pelo seu comportamento na procura de alimentos. Uma das idéias centrais do ACS, proposto originalmente por Dorigo et al. (1991), é a comunicação indireta baseado em trilhas (caminhos ou trajetos) de feromônios entre uma colônia de agentes denominada formigas (ants). As trilhas de feromônio funcionam como uma informação numérica distribuída que é modificada pelas formigas e desta forma compartilham sua experiência na busca da resolução de um problema. Este trabalho se propõe a descrever um algoritmo de colônias de formigas, utilizados em problemas de otimização sendo seu foco a aplicação do algoritmo no problema de 8-Puzzle. Palavra-chave: Grafos, Computação Natural, Algoritmo Colônia de Formigas, ACO, 8-Puzzle.

8 SUMÁRIO LISTA DE FIGURAS...9 INTRODUÇÃO INTRODUÇÃO A TEORIA DE GRAFOS Conceitos básicos sobre a teoria de grafos Busca em grafos Busca em largura Busca em profundidade Caminho mínimo em grafos COMPUTAÇÃO NATURAL Computação inspirada na natureza Algoritmos evolutivos ou computação evolutiva Sistemas imunológicos artificiais Redes neurais artificiais Inteligência coletiva ou swarm intelligence Outras técnicas emergentes de computação inspirada na natureza Estudos sobre a natureza através da computação Vida e organismos artificiais Geometria fractal COLÔNIA DE FORMIGAS Características e potencialidades do ACS Algoritmo de agrupamento de formiga padrão (ACA) Algoritmo genérico de otimização por colônias de formigas (ACO) Exemplo genérico do algoritmo ACO PUZZLE SOLUÇÃO DO 8-PUZZLE UTILIZANDO O ALGORITMO ACO Exemplo de solução do 8-Puzzle utilizando o ACO Aplicando o algoritmo ACO na solução do 8-Puzzle (exemplo)...29 CONCLUSÃO...40 REFERÊNCIAS BIBLIOGRÁFICAS...41

9 9 LISTA DE FIGURAS Figura 1: Exemplo de Grafo não Orientado...12 Figura 2: Representação através de uma matriz de adjacências de um Grafo não Orientado Figura 3: Exemplo de Grafo Orientado...12 Figura 4: Representação através de uma matriz de adjacências de um Grafo Orientado Figura 5: Ilustração do comportamento das formigas em busca de alimentos utilizando o feromônio. [CASTRO, 2004]...22 Figura 6: O efeito da trilha de feromônio na coleta de alimento. [CASTRO, 2004]...22 Figura 7: Algoritmo Genérico ACO [CASTRO, 2004]...23 Figura 8: Estado inicial...24 Figura 9: Estado meta...24 Figura 10: Exemplo de caminhos percorridos por 2 (duas) formigas para chegar a solução do 8- Puzzle em uma única iteração...28 Figura 11: Caminhos que poderão ser escolhidos pelas Formigas 1 e 2 na Iteração Figura 12: Caminho 2 - Escolhido pela Formiga 1 na Iteração Figura 13: Caminho 3 - Escolhido pela Formiga 1 na Iteração Figura 14: Caminho 4 - Escolhido pela Formiga 1 na Iteração Figura 15: Caminhos que poderão ser escolhidos pelas Formigas 1 e 2 na Iteração Figura 16: Caminho 2 - Escolhido pela Formiga 2 na Iteração Figura 17: Caminho 3 - Escolhido pela Formiga 2 na Iteração Figura 18: Caminho 4 - Escolhido pela Formiga 2 na Iteração Figura 19: Caminho 5 - Escolhido pela Formiga 2 na Iteração Figura 20: Caminho 6 - Escolhido pela Formiga 2 na Iteração Figura 21: Caminho 7 - Escolhido pela Formiga 2 na Iteração Figura 22: Caminho 8 - Escolhido pela Formiga 2 na Iteração Figura 23: Caminhos escolhidos pelas Formigas 1 e 2 na Iteração Figura 24: Caminho 1: Será escolhido pelas Formigas 1 e 2 na Iteração Figura 25: Caminho 2 - Escolhido pela Formiga 1 na Iteração Figura 26: Caminho 3 - Escolhido pela Formiga 1 na Iteração Figura 27: Caminho 4 - Escolhido pela Formiga 1 na Iteração Figura 28: Caminho 2 - Escolhido pela Formiga 2 na Iteração Figura 29: Caminho 3 - Escolhido pela Formiga 2 na Iteração Figura 30: Caminho 4 - Escolhido pela Formiga 2 na Iteração Figura 31: Caminhos escolhidos pelas Formigas 1 e 2 na Iteração

10 10 INTRODUÇÃO Muitos avanços da ciência foram obtidos a partir da observação da natureza. Milênios de seleção natural e evolução fez com que certos seres vivos desenvolvessem habilidades e características realmente notáveis, e que ainda hoje surpreendem pela sua complexidade e adaptabilidade. É possível observar na natureza, diversas espécies que se beneficiam das vantagens que a vida em grupo proporciona. Dentre os benefícios da sociabilidade pode-se citar o aumento da probabilidade de acasalamento, facilidade na caça e coleta de alimentos, redução da probabilidade de ataque por predadores, entre diversas outras. Os comportamentos sociais da natureza inspiram o desenvolvimento de diversas ferramentas computacionais, que através da observação intensiva de suas características, buscam reproduzi-las em um ambiente controlado, cujo objetivo principal é desenvolver métodos e ferramentas baseados nos aprendizados obtidos. Algoritmos inspirados na natureza, como é o caso do Algoritmo de Colônia de Formigas, são métodos computacionais para resolver de maneira aproximada, problemas de otimização, para os quais não é possível obter soluções em um tempo computacional razoável, mesmo utilizando um hardware com grande capacidade de processamento. Esses métodos inspirados na natureza são desenvolvidos no sentido de evitar armadilhas impostas pelos ótimos locais, permitindo que a busca continue, mesmo após um ótimo local ser detectado e podem ser vistas como versões melhoradas de um algoritmo de busca local. A técnica do Algoritmo de Colônia de Formigas é um método de otimização natural, é paralelo e adaptativo, pois os agentes se movimentam de forma independente e sem nenhum controle central, é um algoritmo cooperativo, pois cada agente (formiga) se comunica indiretamente com as demais através do feromônio. Um Algoritmo de Otimização de Formigas é também conhecido com o ACO (Ant Colony Optimization) e é baseado em agentes, cuja finalidade é simular o comportamento natural de formigas, baseado em seus mecanismos de cooperação e adaptação. A vida de uma colônia de formigas se parece com a de vários sistemas complexos, podendo-se ressaltar que apesar de serem bastante simples, geram um comportamento muito complexo, pois apesar de serem indivíduos simples, as formigas são capazes de interagir entre si, obtendo, desta forma, muitos benefícios. As habilidades das colônias de formigas transcendem as habilidades individuais de cada um dos componentes, pois na interação entre os indivíduos da população o comportamento desejado emerge. Na resolução de problemas de grafo, são utilizados estes modelos que se tornam bastante úteis, pois são problemas geralmente complexos para serem resolvidos por métodos exatos de otimização, representando assim, um importante campo de estudos da engenharia de produção. Através de técnicas da computação natural, utilizando o algoritmo ACO, o problema do 8- Puzzle proposto será solucionado.

11 11 1. INTRODUÇÃO A TEORIA DE GRAFOS O Grafo é utilizado para demonstrar a relação entre objetos, representado por um conjunto de pontos que são chamados de vértices, nodos ou nós, conectados por linhas chamadas de arestas. As relações podem ou não possuir pesos, além de serem ou não direcionadas através da representação de setas. São os elementos básicos de estudo da Teoria dos Grafos que se preocupa com as relações existentes entre os diversos objetos. O caminho de um grafo consiste em uma seqüência alternada entre os nós existentes e suas conexões. Diversas estruturas podem ser representadas a partir de grafos, abaixo são relacionados alguns exemplos comumente utilizados: Representação de estradas através de grafos, utilizando um algoritmo para encontrar o caminho mais curto entre uma cidade e outra ou até mesmo o caminho mais econômico, pois os grafos podem possuir pesos e o custo total é calculado a partir desses pesos; Redes de computadores, onde cada terminal é um vértice; Fluxogramas de dados ou circuitos; Algoritmos utilizados para escalonamento, ordenação e pesquisa, entre outros. Um grafo é um conceito matemático primitivo comparável aos conceitos de relação e função. Um grafo pode ser definido como um conjunto de elementos e um conjunto de relacionamentos entre pares destes elementos, e têm inúmeras e muito variadas aplicações em ciências da computação. Um grafo G é definido como uma dupla (V,E), onde V é o conjunto de elementos, chamados de vértices ou nodos e E é o conjunto de relacionamentos, chamados de arestas ou arcos (edges). [MARCELO, 2001]. A teoria dos grafos se apresenta como uma proposta interessante para a construção de modelos e resolução de problemas relacionados com arranjos de objetos discretos que segue uma simples abstração: pontos interligados por linhas que representam a modelagem de possíveis soluções de alguns tipos de problemas, principalmente os intensamente envolvidos com conectividade de informações. [ANJOS, 2002]. 1.1 Conceitos básicos sobre a teoria de grafos Pode-se dizer que um grafo é G = {V, E}, onde: V é o conjunto de nós ou vértices e; E é o conjunto de relações entre nós. A aresta representa a conexão entre dois vértices. São representados geralmente por um círculo para cada vértice e uma linha para cada aresta, sendo que pode possuir uma seta se o grafo for direcionado.

12 Figura 1: Exemplo de Grafo não Orientado A figura acima demonstra o grafo G = (V, E), onde: V = {1, 2, 3,4} E = {(1,2), (1,3), (3,4)} V / V Figura 2: Representação através de uma matriz de adjacências de um Grafo não Orientado. Quando existe um sentido das ligações existentes entre os vértices, o grafo é chamado de Grafo Direcionado ou Dígrafo Figura 3: Exemplo de Grafo Orientado. V / V Figura 4: Representação através de uma matriz de adjacências de um Grafo Orientado.

13 13 Matriz de Adjacência representa a ligação, ou seja, adjacência existente entre os vértices de um grafo. Matriz de Incidência representa um grafo a partir de suas arestas. Algumas denominações para Grafos: Conexo: quando existe ao menos uma conexão ligando cada par de nós existente no grafo; Direcionado: quando existe uma direção de percurso; Ponderado: se para cada conexão for definido um número ou peso. Este não deve ser negativo. 1.2 Busca em grafos Para que seja possível percorrer todos os vértices de um grafo, é necessária a utilização de técnicas. Como a variedade de situações é grande entre as possibilidades de caminhos de grafos a serem percorridos, existem vários algoritmos que propõe a determinação de caminhos nas situações mais diversas possíveis Busca em largura A busca em largura é realizada quando existe o interesse em verificar os vértices principais antes de suas derivações posteriores. Inicia-se com a escolha de um vértice inicial, e a partir deste visitam-se os vértices adjacentes, marcando-os como lidos. Os vértices adjacentes lidos são colocados em fila. Após a visita do vértice adjacente, o primeiro da fila torna-se o novo vértice inicial e todo o processo é iniciado novamente. A busca termina quando todos os vértices do grafo tiverem sidos visitados ou até que o vértice procurado tenha sido encontrado Busca em profundidade A Busca em profundidade é feita quando há necessidade de explorar as ramificações do grafo. Dá-se a partir de um vértice inicial, é visitado um vértice adjacente a este marcando-o como lido e colocando-o em outra pilha. Em seguida, o vértice visitado torna-se o vértice inicial. Este processo é repetido até que o vértice procurado seja encontrado, ou até que não haja mais vértices adjacentes. Em seguida é necessário desempilhar o topo da pilha criada, com o objetivo de encontrar o próximo vértice adjacente, repetindo o algoritmo. O algoritmo termina quando todos os vértices procurados forem encontrados ou quando a pilha não possuir mais nenhum elemento, ou seja, estiver vazia e todos os vértices existentes tiverem sidos visitados Caminho mínimo em grafos O menor caminho em um grafo começa com o objetivo de atingir um resultado com o menor custo possível, ou seja, formas para minimizar custos, podendo ser um caminho de menor tempo ou

14 14 com menor custo, por exemplo, quando falamos em gastos com combustível para percorrermos determinada distância. Como exemplo é possível citar a representação de um caminho rodoviário, onde os vértices são as cidades, e as arestas os trechos que serão percorridos na rodovia. Podemos perguntar qual o caminho mais curto, com relação à distância entre as cidades e também desejar saber qual o menor custo de pedágio entre as cidades existentes. Os algoritmos citados de busca em profundidade, largura e custo mínimo exigem um alto processamento, e desta forma, possuem um custo elevado. Para resolver este problema existem outros algoritmos que buscam minimizar o tempo gasto neste tipo de processamento. Um exemplo de algoritmos com maior agilidade no processamento, com um custo menos elevado, é o Algoritmo de Colônia de Formigas ou ACO como é conhecido, que será tratado a seguir. O ACO é uma meta-heurística, ou seja, através de um algoritmo que serve como modelo são fornecidas orientações para encontrar a solução para um determinado problema, formas para realizar uma busca direcionada.

15 15 2. COMPUTAÇÃO NATURAL A terminologia computação natural ou computação bioinspirada, vem sendo empregada na literatura para descrever todos os sistemas computacionais desenvolvidos com inspiração ou utilização de algum mecanismo natural ou biológico de processamento de informação [CAMPELLO, 2004]. Fundamentalmente, a computação natural é constituída por novas abordagens computacionais caracterizadas por uma maior proximidade com a natureza. Reflexo da perfeição da natureza, a computação natural ou computação bioinspirada, permite, por exemplo, capacitar um robô a aprender, conhecer e adaptar-se ao mundo. Dentre os vários objetivos da computação natural, destacam-se: [CAMPELLO, 2004]. Desenvolver ferramentas matemáticas e computacionais para a solução de problemas complexos em diversas áreas do conhecimento; Projetar dispositivos (computacionais) que simulam, emulam, modelam e descrevem sistemas e fenômenos naturais; Sintetizar novas formas de vida, denominadas de vida artificial; e Utilizar mecanismos naturais, como cadeias de DNA e técnicas de engenharia genética, como novos paradigmas de computação. Estes novos paradigmas vêm suplementar e/ou complementar os computadores atuais baseados em tecnologia de silício e arquitetura de Von Newmman. São vários os exemplos de objetos que são desenvolvidos e que buscaram inspiração na natureza. Dentre eles pode-se citar: velcro (baseados nas plantas), coletes a prova de bala (baseado nas teias de aranha), aviões (que buscaram a inspiração nos pássaros), entre diversos outros existentes. A computação natural também está fortemente ligada à natureza sob diversas perspectivas e com abordagens distintas. Por exemplo, o funcionamento do cérebro humano inspirou o desenvolvimento das redes neurais artificiais e o funcionamento do sistema imunológico dos vertebrados inspirou os sistemas imunológicos artificiais [CAMPELLO, 2004]. A computação natural é uma versão computacional de processos de análise e síntese da natureza, voltada para o desenvolvimento de sistemas denominados artificiais, utilizando-se da observação dos meios e mecanismos naturais para realizar computação. É importante ressaltar que a palavra artificial empregada no contexto de computação natural, significa que os sistemas e/ou dispositivos são desenvolvidos por seres humanos ao invés de serem produzidos diretamente através da evolução das espécies. Abaixo são citadas três grandes subáreas que dividem as áreas de computação natural, sendo elas: Computação inspirada na natureza; Estudos sobre a natureza através da computação; Computação com mecanismos naturais.

16 16 As três subáreas citadas, divisões da computação natural, permitem a criação de diversas ferramentas computacionais desenvolvidas para solucionar problemas complexos, permitindo desta forma, a geração de novos paradigmas da computação, e possui um papel muito importante, pois traz resultados concretos e muito convincentes, utilizando aplicações que foram produzidas a partir dos conceitos da computação natural, e também por tratar através de ferramentas computacionais apropriadas diversos aspectos da biologia. 2.1 Computação inspirada na natureza A computação inspirada na natureza é o primeiro ramo da computação natural, o mais conhecido e consolidado devido aos estudos realizados. Através da observação de vários princípios da natureza, os pesquisadores de diversas áreas da computação, perceberam a possibilidade de utilizar todos os recursos disponíveis na natureza, inspirando-se em mecanismos naturais ou biológicos, incluindo suas teorias, modelos e experiência, para implementar sistemas computacionais com grande capacidade de resolver problemas. A computação inspirada na natureza compreende, principalmente: Algoritmos evolutivos ou computação evolutiva Ramo da ciência da computação que propõe uma maneira alternativa ao processamento de dados convencional, não exigindo que para resolver um problema seja necessário o conhecimento prévio de uma maneira de encontrar uma solução para o mesmo. É composta por algoritmos que são empregados nas tarefas de busca e otimização. Exemplos de mecanismos que inspiram a computação evolutiva são a auto-organização e o comportamento adaptativo que foram descobertos e formalizados por Darwin em sua teoria da evolução natural, segundo a qual, a vida na terra é o resultado de um processo de seleção, pelo meio ambiente, dos mais aptos e adaptados, e por isto mesmo, com mais chances de reproduzir Sistemas imunológicos artificiais Surgiu em meados da década de 1980, suas aplicações vão desde a biologia até a robótica, tornando-se uma fonte de inspiração bastante frutífera para a computação inspirada na natureza. Procura explorar mecanismos que são utilizados nos Sistemas Imunológicos encontrados na natureza com o objetivo de desenvolver técnicas de solução de problemas. É um dos sistemas mais complexos que existem na natureza e sua complexidade pode ser comparada à do Sistema Nervoso. O Sistema Imunológico pode ser dividido em duas partes: O sistema inato; O sistema adaptativo. Assim que o organismo é invadido por um agente patogênico, o sistema inato entra em ação, e em muitos casos é capaz de proteger o organismo.

17 17 Caso isto não aconteça, é o momento do sistema adaptativo entrar em ação, por ser mais específico, resultando desta forma, em uma resposta mais eficaz. Por este motivo o sistema adaptativo é a parte mais interessante do Sistema Imunológico. Podendo recordar os encontros passados com agentes patogênicos, o Sistema Imunológico reage de maneira mais específica e eficaz. Isto é denominado de memória imunológica, além de ser capaz de distinguir células (proteínas) que são próprias do organismo daquelas que não o são. Deste modo, é capaz de atacar o agente patogênico e não o próprio organismo Redes neurais artificiais Através de um modelo matemático (lógico) conhecido como neurônio artificial, que foi apresentado por McCulloch & Pitts (1943), deu-se origem a uma linha de pesquisa denominada Redes Neurais Artificiais, que buscam trabalhar semelhantemente ao cérebro humano para o processamento de dados. O cérebro humano tem a capacidade de realizar processos de forma paralela e numa velocidade extremamente alta, organizando seus neurônios para que seja possível realizar o processamento necessário, não existindo nenhum computador no mundo capaz de realizar tantos processamentos como o cérebro humano faz. Da mesma maneira que o cérebro humano é capaz de aprender e tomar decisões baseadas na aprendizagem, as redes neurais realizam o processamento das informações baseado no princípio e organização dos neurônios do cérebro. O conhecimento de uma rede neural é obtido através de etapas de aprendizagem e pesos sinápticos que são usados para armazenar o conhecimento. Sinapse é o nome dado à conexão existente entre um neurônio e outro, pesos sinápticos são os valores atribuídos nas conexões. As redes neurais artificiais têm em sua constituição uma série de neurônios artificiais que são conectados entre si, formando uma rede de elementos de processamento. O processo de aprendizagem das redes neurais é realizado quando ocorrem várias modificações significantes nas sinapses dos neurônios Inteligência coletiva ou swarm intelligence Surgiu a partir dos debates que foram promovidos por Pierre Levy sobre as tecnologias da inteligência, sugerindo a possibilidade da criação de uma nova forma de espaço antropológico, ou seja, um sistema de proximidade (espaço) próprio do mundo humano (antropológico), e, portanto dependente de técnicas de significações, da linguagem, da cultura, das convenções, das representações e das emoções humanas. São duas as frentes de pesquisa da Inteligência Coletiva: Algoritmos baseados no comportamento coletivo de insetos sociais, sendo um exemplo o comportamento de formigas que será discutido mais adiante; Algoritmos baseados no comportamento sócio-cognitivos humanos, que realizam buscas em espaços contínuos.

18 18 Distribuída por toda parte seus objetivos principais são o reconhecimento e enriquecimento mútuo das pessoas coordenados em tempo real, que resulta em uma mobilização efetiva das competências, buscando a descentralização dos poderes, valorização da participação de cada indivíduo da sociedade, para proporcionar o conhecimento e enriquecimento cultural de todos Outras técnicas emergentes de computação inspirada na natureza Exemplos das outras técnicas emergentes são: Algoritmos culturais que ajudam o indivíduo a aprender mais rapidamente através da manutenção e troca de conhecimento pela sociedade; O algoritmo de simulated annealing que é uma ferramenta adequada à resolução de problemas de otimização linear através da seleção da melhor solução entre um número finito de soluções possíveis; Os sistemas baseados em crescimento e desenvolvimento; Os modelos baseados em células e tecidos, dentre vários outros. É importante ressaltar que todos os aspectos cognitivos e do raciocínio humano representam por si só mecanismos naturais de fundamental importância, desta forma a inteligência artificial simbólica e também os sistemas nebulosos, também podem inserir-se no escopo da computação natural. 2.2 Estudos sobre a natureza através da computação Através da utilização de mecanismos computacionais, sintetizam comportamentos naturais, padrões e processos biológicos, envolvendo estudos sobre vida e organismos artificiais e geometria fractal Vida e organismos artificiais A Vida Artificial ou ALife (Artificial Life) como também é conhecida, foi citada pela primeira vez pelo pesquisador Cristopher Langton na década de 80, com a finalidade de especificar uma nova ciência emergente que estuda a vida natural através da tentativa de recriar fenômenos biológicos em computadores ou outros meios artificiais, surgindo da confluência de várias disciplinas, como inteligência artificial, sistemas não-lineares e teorias biológicas. Os resultados da tentativa de recriar fenômenos biológicos de maneira artificial não só são melhores compreendidos, como também facilitam as aplicações práticas dos princípios biológicos na tecnologia de computadores e diversas áreas de engenharia. ALife não é uma simples ferramenta para simulações, mas a real incorporação dos sistemas que são criados pela inteligência artificial nas pesquisas na área de evolução computacional que se baseiam na biologia.

19 Geometria fractal Fractais (do latim fractus, fração, quebrado) são figuras da geometria não-euclidiana. Ramo da matemática que estuda as propriedades e comportamento dos fractais descreve muitas situações que não podem ser explicadas facilmente pela geometria clássica. Um fractal ou uma estrutura fractal é por definição uma estrutura na qual partes da mesma se assemelham ao todo, ou seja, existem partes auto-similares, estatisticamente, dentro da estrutura global. Isto indica a presença do fenômeno de escala e de um nível de tendência, o qual pode ser medido através da dimensão fractal, que é uma medida de complexidade. [MARCOS, 2005].

20 20 3. COLÔNIA DE FORMIGAS As mudanças ambientais fazem com que cada ser vivo tenha que se adaptar para que possa preservar sua espécie, e para isto, muitas dessas criaturas chegam à resolução de seus problemas de forma cooperativa. É conhecido que muitos grupos de criaturas estão aptos à resolução de problemas através de atividades exercidas de forma cooperativa. O Algoritmo de Colônia de Formigas ou Ant Colony Systens (ACS) é um exemplo de resolução de problemas de forma cooperativa, baseado em uma população de agentes, neste caso de formigas, onde é feita a simulação do comportamento de um conjunto de agentes. Os agentes cooperam entre si, para resolver um problema de otimização por meio de comunicações muito simples. ACS é um estudo da Inteligência de Enxame bastante recente, desenvolvido a partir da segunda metade da década de 90, mas que hoje é um campo particular da inteligência artificial. Os desenvolvimentos nestas áreas têm levado à conclusão de que os fenômenos complexos podem resultar da interação simultânea entre múltiplos mecanismos simples e que, então, algoritmos simples também podem ser usados para a resolução de problemas de elevada complexidade, tratando-se de uma forma alternativa de conceber sistemas inteligentes estudando o comportamento dos insetos sociais, tais como as formigas e as abelhas. As formigas têm capacidade para encontrar o caminho mais curto entre uma fonte de alimento e o ninho, sem utilizar dados visuais, pois deixam um rastro de uma substância química volátil chamada feromônio, que reconhecem, lhes é agradável e que é utilizada para se comunicarem. O feromônio é reconhecido por outras formigas, motivando-as a seguir determinado caminho, isto é, um movimento aleatório das formigas segue com maior probabilidade uma trilha de feromônio. Esta é uma maneira de como as trilhas são reforçadas e mais e mais formigas tendem a seguir por ela. Feromônio é uma substância volátil e sua evaporação é que permite que um carreiro de formigas formado para ir buscar alimento em um determinado lugar, desapareça quando não mais houver alimento, reforçando outro que conduz a novos caminhos de alimento. Isto aumenta muito a capacidade de adaptação do sistema, funcionando como uma espécie de consciência coletiva global na estratégia distribuída, um conceito abstrato da colônia. 3.1 Características e potencialidades do ACS O ACS é uma meta-heurística da inteligência coletiva ou swarm intelligence, que é baseada em uma população de agentes, neste caso, denominadas formigas, que possui as seguintes características: Algoritmo não-determinístico: baseado em mecanismos presentes na natureza, mais precisamente no comportamento social das formigas em busca de alimentos; Algoritmo paralelo e adaptativo: os agentes movem-se simultaneamente, mas de forma independente, não há supervisão ou controle central;

21 21 Algoritmo cooperativo: cada agente escolhe um caminho baseado nas trilhas de feromônios que foram depositadas por outros agentes, que selecionaram previamente o mesmo caminho. Dois algoritmos serão citados como exemplos de ACS: Algoritmo de Agrupamento de Formiga Padrão (ACA); Algoritmo Genérico de Otimização por Colônias de Formigas (ACO). 3.2 Algoritmo de agrupamento de formiga padrão (ACA) No Algoritmo de Agrupamento de Formiga Padrão, também conhecido como ACA, as formigas ou agentes movimentam-se aleatoriamente, cujo objetivo principal é isolar itens que são pegos no caminho, movendo-os para os mesmos locais onde se encontram itens do mesmo tipo. Podemos dizer que cada item será agrupado dentro de uma grade bi-dimensional e que o grupo ao qual cada item recolhido pelas formigas (agentes) ainda é desconhecido. [DENEUBOURG et al., 1991] propuseram um modelo teórico para estudar e modelar a organização dos chamados cemitérios de formigas em algumas espécies. As formigas têm a capacidade de perceber ou visualizar, o ambiente em uma vizinhança e se movimentam pela grade bi-dimensional que contém mxm células. Constantemente o Algoritmo ACA encontra uma quantidade de grupos maior do que a existente em sua base de dados, e por este motivo, o algoritmo tende a não se estabilizar, construindo e reconstruindo constantemente novos grupos. Existem algumas propostas de modificações no algoritmo ACA para, aliviar os efeitos do problema de construção e reconstrução de novos grupos. O algoritmo pode ser utilizado, por exemplo, para rotular dados que estejam disponíveis e informações devem ser obtidas através destes. 3.3 Algoritmo genérico de otimização por colônias de formigas (ACO) A partir da observação do comportamento natural e social das formigas na busca por alimentos, foi notado que, cada formiga segue um caminho aleatório, mas depois de um determinado tempo, elas tendem a seguir um único caminho que foi escolhido como sendo o melhor caminho para chegar à fonte de alimento. O ACO ou Otimização por Colônia de Formigas é um algoritmo baseado em agentes, e propõe que agente atue de forma local, realizando interações com o grupo ao qual pertence para que cada ação de forma individual, somada à interação entre todas as demais formigas, forme a solução do problema. No algoritmo é proposto um procedimento paralelo, onde cada formiga determina um caminho e também o atualiza através do feromônio. Grande parte das formigas existentes possui comportamentos similares quando mencionamos a coleta de alimentos, que exploram diversas fontes de alimentos ao mesmo tempo em que exploram o meio ambiente. Existem dois comportamentos importantes de serem observados: a construção de uma trilha utilizando o feromônio e segui-la para encontrar o alimento.

22 22 Figura 5: Ilustração do comportamento das formigas em busca de alimentos utilizando o feromônio. [CASTRO, 2004] O feromônio tem duas funções de extrema importância, uma é a definição da trilha que será seguida e a outra é servir como orientação para que todas as formigas que estiverem passeando fora do ninho. Abaixo exemplo da importância do feromônio em uma trilha que leva do ninho a uma fonte de alimentos. Figura 6: O efeito da trilha de feromônio na coleta de alimento. [CASTRO, 2004] As formigas trabalham da seguinte forma: Em um ponto de decisão, as formigas devem mover-se à direita ou à esquerda, desta forma selecionam, aleatoriamente, o próximo caminho e depositam feromônio no solo (neste momento, ainda não se sabe qual é a melhor escolha); Depois de um determinado tempo, as formigas que escolheram o menor caminho, fazem com que este percurso fique com uma maior concentração de feromônio quando comparado com outro caminho. Depois de um pequeno período de tempo a diferença, ou seja, a intensidade entre a quantidade de feromônio entre dois caminhos é suficientemente grande que influencia a decisão das formigas em seguir por ele.

23 23 As formigas podem cheirar o feromônio e escolher, com dada probabilidade, os caminhos marcados com concentrações mais acentuadas de feromônios. As formigas minimizam o tempo que gastam, quando escolhe qual é o caminho mais curto entre a fonte de alimento e o ninho. A quantidade de feromônio que uma formiga libera é diretamente proporcional à qualidade da fonte de alimento encontrada Exemplo genérico do algoritmo ACO Abaixo exemplo genérico do Algoritmo ACO Otimização por Colônia de Formigas: Figura 7: Algoritmo Genérico ACO [CASTRO, 2004]

24 PUZZLE Para que seja possível solucionar o problema do 8-Puzzle, utilizando o Algoritmo ACO Otimização por Colônia de Formigas, é preciso entender o que é o jogo do 8-Puzzle. O jogo de tabuleiro 8-Puzzle pertence à família de jogos de blocos deslizáveis. Existem diversas maneiras de solucioná-lo, tais como algoritmos de combinação, busca em largura, profundidade, técnicas de busca direcional, entre diversas outras. Devido à característica do jogo 8-Puzzle é possível utilizar algoritmos desenvolvidos pela Inteligência Artificial para chegar a sua solução. O 8-Puzzle consiste em um jogo com oito peças numeradas de 1 (um) a 8 (oito) e também de um espaço vazio. As peças estão dispostas em um tabuleiro quadrado que possui nove divisões. O objetivo do jogo é ordenar as peças a partir de uma posição inicial até chegar a uma meta, que pode ser, por exemplo, uma configuração em que a soma dos números das peças que ocupem determinadas posições atinjam um valor definido. Outra solução, que é a mais comumente utilizada, é a ordenação das peças. Para chegar à solução do jogo, as peças que ficam adjacentes ao espaço que está vazio podem ser deslocadas para este espaço, sendo que o resultado da movimentação é a troca de posição entre a peça que está sendo movimentada e o espaço vazio que foi ocupado. O deslocamento ocorre até que o objetivo, ou seja, a meta do jogo seja alcançada e todas as peças estejam no local desejado. É permitido mover as peças de forma horizontal ou vertical, o único movimento que não é permitido é o diagonal. A figura abaixo mostra o estado inicial de um 8-Puzzle e seu estado final, ou seja, a meta que deve ser alcançada após a movimentação das peças: Figura 8: Estado inicial Figura 9: Estado meta Algoritmos de busca, que são desenvolvidos pela área da Inteligência Artificial, buscam soluções para este tipo de problema que são da mesma família de jogos resta 1, xadrez, 15-Puzzle, entre outros.

25 25 Neste trabalho é utilizado o Algoritmo ACO Ant Colony Otimization para solucionar o problema do 8-Puzzle e para isto é necessário uma seqüência de operações que transformam uma configuração dada inicialmente em uma configuração final. Esta movimentação equivale ao problema de busca de caminho utilizando um grafo. A modelagem que é utilizada para solucionar o problema de 8-Puzzle pode ser representada utilizando-se os nós de um grafo e os caminhos (arestas) que são percorridos para que a solução seja alcançada. Cada nó do grafo representa uma configuração do 8-Puzzle e cada movimento das peças determinam uma nova posição que corresponde a um ramo. Como mencionado temos 9 (nove) configurações possíveis a cada movimentação, desta forma o problema pode ser representado através de um Grafo que possui uma matriz 3 x 3.

26 26 5. SOLUÇÃO DO 8-PUZZLE UTILIZANDO O ALGORITMO ACO O ACO - Otimização por Colônia de Formigas constrói ou modifica uma solução que é realizada de maneira probabilística. Para solucionar o problema do 8-Puzzle será utilizado um grafo, que é construído a cada iteração das formigas que encontram a solução/alimento movendo-se de um nó ao outro do grafo, definindo desta forma um caminho que considera uma transição probabilística para ser formado. Abaixo a solução para o problema do 8-Puzzle utilizando o Algoritmo ACO: Procedimento [ordena_puzzle] = ACO[max_it] Atribuir valor inicial a Tij Estado = Ei Posicionar cada formiga, todas no mesmo ponto inicial, ou seja, o estado inicial do 8- Puzzle. cont 0 T 1 Enquanto cont < max_it faça Fim cont_form 1 Enquanto cont_form Num_form faça Fim Cont_form = cont_form + 1 Enquanto não encontrar a solução para o problema do 8-Puzzle faça (Nº Peça no Lugar!= 8) Para cada aresta que leve a um novo estado que não esteja no caminho No T ij (ou seja, o caminho ainda não tenha sido percorrido) Fim Prob T ij = [Fer T ij] α. [N_PeçasNoLugar] ß Σ([ Fer T ij] α. [N_PeçasNoLugar] ß ) //Guarda o caminho percorrido pela formiga T Estado = NE ij Prob T ij seja a maior para qualquer ij Nó T ij = Matriz ij T++ //Volta pelo caminho marcando a trilha que foi percorrida, marcando-a com feromônio //Calcula Fer T ij para o novo caminho encontrado T no ij faça Fer T ij = Fer T ij * (1 p) + τ T ij // Exibir o caminho que foi escolhido pelas formigas para ser percorrido Caminho = Lista ligada de nós

27 27 Aresta = Número de nós - 1 Fim Algumas definições: Quanto menor o número de nós percorridos pela formiga para encontrar a solução do 8-Puzzle, maior o número de feromônio que será depositado na trilha: τ T ij = p_def L T N_PecasNoLugar é definido conforme abaixo: N_PecasNoLugar = Σ matriz_ij, onde Matriz_ij = Final i,j, i,j Onde: Max_it = Máximo de iterações definida pelo usuário, que serão realizadas. É importante ressaltar que toda iteração deve chegar à solução do 8-Puzzle, mas quanto maior o número de iterações, maior a probabilidade de que, quase todas as formigas sigam o mesmo caminho para solucionar o problema; Tij = Feromônio que inicialmente é igual a zero; Cont_form = Contador de formigas; Num_form = Número de formigas que é definido pelo usuário; T = Representa a formiga; ij = Caminho percorrido pela formiga na iteração; Fer T ij = Feromônio depositado pela formiga T no caminho ij; α = Peso definido pelo usuário para o feromônio aplicado nas trilhas percorridas; N_PecasNoLugar = Número de peças no lugar que será utilizada no cálculo da probabilidade da formiga percorrer determinado caminho; ß = Peso definido pelo usuário para o número de peças no lugar; p = Evaporação natural do feromônio que é igual a 0,5; p_def = Peso definido pelo usuário que será utilizado como parte do cálculo do feromônio que será aplicado na trilha; L T = Caminho percorrido pela formiga T pelos nós. 5.1 Exemplo de solução do 8-Puzzle utilizando o ACO A partir de um estado inicial, demonstrado na figura a seguir, chegar ao estado final, ou seja, solução do problema do 8-Puzzle, que neste exemplo é a ordenação numérica de todas as peças. Para chegar à solução do problema será utilizado o Algoritmo ACO - Otimização por Colônia de Formigas - que foi desenvolvido.

28 28 Figura 10: Exemplo de caminhos percorridos por 2 (duas) formigas para chegar a solução do 8-Puzzle em uma única iteração Na Figura 10 são demonstrados os caminhos percorridos por 2 (duas) formigas, em uma única iteração, seguindo as definições do Algoritmo ACO desenvolvido para chegar a solução do problema 8-Puzzle. É possível observar que existem caminhos que já foram percorridos anteriormente, e neste caso, estes serão descartados. O número de peças no lugar também é considerado, para que desta forma, a probabilidade de seguir por este caminho seja maior. Importante citar que o Feromônio que existe na trilha deixada pelas formigas, também é levado em consideração, já que no cálculo da probabilidade este valor é utilizado. A definição dos pesos que são utilizados para o Feromônio e para o Número de Peças é feita inicialmente pelo usuário. Ao encontrar a solução/alimento para o problema do 8-Puzzle a formiga retorna ao início marcando o caminho com feromônio. O cálculo do feromônio que será depositado na trilha é realizado de acordo com as definições do Algoritmo ACO proposto.

29 29 Conforme o Algoritmo ACO, o número de iterações é definido pelo usuário, e desta forma, nas próximas iterações que ocorrerem, o feromônio que foi depositado na trilha nas iterações anteriores, será levado em consideração no cálculo probabilístico. Desta forma, ao final das iterações, o maior número de formiga estará percorrendo o caminho cujo feromônio depositado na trilha é o maior Aplicando o algoritmo ACO na solução do 8-Puzzle (exemplo) Demonstrado a seguir o passo-a-passo de uma solução encontrada para um exemplo do problema 8-Puzzle utilizando o Algoritmo ACO. Valores definidos inicialmente para o exemplo utilizado: Max_it = 2 (duas) iterações; Fer T ij = 1 (um); Num_form = 2 (duas) formigas; α = 0,10; ß = 1; p = 0,5; p_def = 10. Estado Inicial Estado Final Aplicando o Algoritmo ACO na solução do 8-Puzzle para a Formiga 1 na Iteração 1 Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,50 (1 0,10 *5 1 )+(1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,50 (1 0,10 *5 1 )+(1 0,10 *5 1 ) Figura 11: Caminhos que poderão ser escolhidos pelas Formigas 1 e 2 na Iteração 1 Os resultados da probabilidade de escolha dos caminhos possíveis da figura acima são iguais, isso indica que as formigas poderão escolher qualquer caminho. Supondo que a Formiga 1 na Iteração 1 escolha o caminho abaixo para ser percorrido:

30 30 Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,40 (1 0,10 *6 1 )+(1 0,10 *4 1 ) Prob T ij = [1] 0,10 * [6] 1 1*6 6 => => => 0,60 (1 0,10 *6 1 )+(1 0,10 *4 1 ) Figura 12: Caminho 2 - Escolhido pela Formiga 1 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 1 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,60. Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,29 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [7] 1 1*7 7 => => => 0,41 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,29 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Figura 13: Caminho 3 - Escolhido pela Formiga 1 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido Formiga 1 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,41. Prob T ij = [1] 0,10 * [6] 1 1*6 6 => => => 0,42 (1 0,10 *8 1 )+(1 0,10 *6 1 ) Prob T ij = [1] 0,10 * [8] 1 1*8 8 => => => 0,57 (1 0,10 *8 1 )+(1 0,10 *6 1 ) Figura 14: Caminho 4 - Escolhido pela Formiga 1 na Iteração 1 Solução encontrada para o problema 8-Puzzle pela Formiga 1 na Iteração 1, pois todas as peças do jogo já estão dispostas na posição definida pelo estado final.

31 31 A formiga 1 na Iteração 1 irá retornar pelo caminho percorrido, marcando-o com feromônio. Calculando o Feromônio: Calculando τ T ij: τ T ij = 10 τ T ij = 2,50 (Valor definido pelo usuário) 4 (Quantidade de caminhos/arestas percorridos pela formiga) Calculando Fer T ij: Fer T ij = Fer T ij * (1 p) + τ T ij Fer T ij = 1 * (1 0,5) + 2,50 Fer T ij = 3,00 Aplicando o Algoritmo ACO na solução do 8-Puzzle para a Formiga 2 na Iteração 1 Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,50 (1 0,10 *5 1 )+(1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,50 (1 0,10 *5 1 )+(1 0,10 *5 1 ) Figura 15: Caminhos que poderão ser escolhidos pelas Formigas 1 e 2 na Iteração 1 Os resultados da probabilidade de escolha dos caminhos possíveis da figura acima são iguais, isso indica que as formigas poderão escolher qualquer caminho. Supondo que a Formiga 2 na Iteração 1 escolha o caminho abaixo para ser percorrido: Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,44 (1 0,10 *4 1 )+(1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,55 (1 0,10 *4 1 )+(1 0,10 *5 1 ) Figura 16: Caminho 2 - Escolhido pela Formiga 2 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 2 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,55.

32 32 Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,30 (1 0,10 *4 1 )+(1 0,10 *5 1 )+ (1 0,10 *4 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,38 (1 0,10 *4 1 )+(1 0,10 *5 1 )+ (1 0,10 *4 1 ) Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,30 (1 0,10 *4 1 )+(1 0,10 *5 1 )+ (1 0,10 *4 1 ) Figura 17: Caminho 3 - Escolhido pela Formiga 2 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 2 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,38. Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,44 (1 0,10 *5 1 )+(1 0,10 *4 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,55 (1 0,10 *5 1 )+(1 0,10 *4 1 ) Figura 18: Caminho 4 - Escolhido pela Formiga 2 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 2 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,55. Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 1 (1 0,10 *5 1 ) 5 5 Figura 19: Caminho 5 - Escolhido pela Formiga 2 na Iteração 1 Neste caso há somente um caminho que pode ser escolhido pela Formiga 2 na Iteração 1, já que a outra opção já foi percorrida anteriormente.

33 33 Prob T ij = [1] 0,10 * [4] 1 1*4 4 => => => 0,40 (1 0,10 *4 1 )+(1 0,10 *6 1 ) Prob T ij = [1] 0,10 * [6] 1 1*6 6 => => => 0,60 (1 0,10 *4 1 )+(1 0,10 *6 1 ) Figura 20: Caminho 6 - Escolhido pela Formiga 2 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 2 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,60. Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,29 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [7] 1 1*7 7 => => => 0,41 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Prob T ij = [1] 0,10 * [5] 1 1*5 5 => => => 0,29 (1 0,10 *5 1 )+(1 0,10 *7 1 )+ (1 0,10 *5 1 ) Figura 21: Caminho 7 - Escolhido pela Formiga 2 na Iteração 1 De acordo com o algoritmo, o caminho a ser seguido Formiga 2 na Iteração 1 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,41. Prob T ij = [1] 0,10 * [8] 1 1*8 8 => => => 0,57 (1 0,10 *6 1 )+(1 0,10 *8 1 ) Prob T ij = [1] 0,10 * [6] 1 1*6 6 => => => 0,42 (1 0,10 *6 1 )+(1 0,10 *8 1 ) Figura 22: Caminho 8 - Escolhido pela Formiga 2 na Iteração 1

34 34 Solução encontrada para o problema 8-Puzzle pela Formiga 2 na Iteração 1, pois todas as peças do jogo já estão dispostas na posição definida pelo estado final. A Formiga 2 na Iteração 1 irá retornar pelo caminho percorrido, marcando-o com feromônio. Calculando o Feromônio: Calculando τ T ij: τ T ij = 10 τ T ij = 1,25 (Valor definido pelo usuário) 8 (Quantidade de caminhos/arestas percorridos pela formiga) Calculando Fer T ij: Fer T ij = Fer T ij * (1 p) + τ T ij Fer T ij = 1 * (1 0,5) + 1,25 Fer T ij = 1,75 Caminhos percorridos pelas Formigas 1 e 2, na Iteração de número 1 A figura abaixo exibe quais foram os caminhos escolhidos pelas Formigas 1 e 2 na Iteração 1, bem como os valores atualizados do feromônio depositados nos caminhos percorridos. Os valores dos feromônios serão considerados para a próxima iteração, e desta forma, farão com que as formigas tendam a seguir pelo caminho que possui a maior quantidade de feromônio depositado nas trilhas. Figura 23: Caminhos escolhidos pelas Formigas 1 e 2 na Iteração 1

35 35 Realizando demais iterações definidas inicialmente pelo usuário De acordo com as definições do Algoritmo ACO proposto, as demais iterações irão ocorrer até que o número de iterações definidas pelo usuário seja atingido. A quantidade de feromônio depositadas nas trilhas será levada em consideração para as novas iterações. Seguindo as definições do exemplo proposto, será realizada abaixo, a segunda Iteração para as Formigas 1 e 2. Prob T ij = [3] 0,2 * [5] 0,9 1,24*4,25 5,27 => => => 0,52 (3 0,2 *5 0,9 )+(1,75 0,2 *5 0,9 ) 5,27+4,71 9,98 Prob T ij = [1,75] 0,2 * [5] 0,9 1,04*4,25 4,42 => => => 0,44 (3 0,2 *5 0,9 )+(1,75 0,2 *5 0,9 ) 5,27+4,71 9,98 Figura 24: Caminho 1: Será escolhido pelas Formigas 1 e 2 na Iteração 2 Os resultados da probabilidade das possibilidades de escolha do caminho da figura acima são diferentes. Logo para a iteração 2, as duas formigas (formiga 1 e formiga 2) deverão seguir pelo caminho de maior probabilidade, neste caso o caminho cujo resultado é 0,52. Aplicando o Algoritmo ACO na solução do 8-Puzzle para a Formiga 1 na Iteração 2: Prob T ij = [1] 0,2 * [4] 0,9 1*3,48 3,48 => => => 0,35 (3 0,2 *6 0,9 )+(1 0,2 *4 0,9 ) 6,21+3,48 9,69 Prob T ij = [3] 0,2 * [6] 0,9 1,24*5,01 6,21 => => => 0,64 (3 0,2 *6 0,9 )+(1 0,2 *4 0,9 ) 6,21+3,48 9,69 Figura 25: Caminho 2 - Escolhido pela Formiga 1 na Iteração 2

36 36 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 1 na Iteração 2 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,64. Prob T ij = [1] 0,2 * [5] 0,9 1*4,25 4,25 => => => 0,27 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Prob T ij = [3,83] 0,2 * [7] 0,9 1,24*5,76 7,14 => => => 0,45 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Prob T ij = [1] 0,2 * [5] 0,9 1*4,25 4,25 => => => 0,27 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Figura 26: Caminho 3 - Escolhido pela Formiga 1 na Iteração 2. De acordo com o algoritmo, o caminho a ser seguido pela Formiga 1 na Iteração 2 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,45. Prob T ij = [1] 0,2 * [6] 0,9 1*5,01 5,01 => => => 0,38 (3 0,2 *8 0,9 )+(1 0,2 *6 0,9 ) 8,04+5,01 13,05 Prob T ij = [3] 0,2 * [8] 0,9 1,24*6,49 8,04 => => => 0,61 (3 0,2 *8 0,9 )+(1 0,2 *6 0,9 ) 8,04+5,01 13,05 Figura 27: Caminho 4 - Escolhido pela Formiga 1 na Iteração 2. Solução encontrada para o problema 8-Puzzle pela formiga 1 na Iteração 2, pois todas as peças do jogo já estão dispostas na posição definida pelo estado final. A formiga 1 irá retornar pelo caminho percorrido, marcando-o com feromônio. Calculando o Feromônio: Calculando τ T ij: τ T ij = 10 (Valor definido pelo usuário) τ T ij = 2,50 4 (Quantidade de caminhos/arestas percorridos pela formiga)

37 37 Calculando Fer T ij: Fer T ij = Fer T ij * (1 p) + τ T ij Fer T ij = 3,00 * (1 0,5) + 2,50 Fer T ij = 4,00 Aplicando o Algoritmo ACO na solução do 8-Puzzle para a Formiga 2 na Iteração 2: Calculando o caminho para a formiga 2. Neste caso, como é possível observar, a formiga 2 abandonou o caminho que tinha percorrido na iteração 1 para ir pelo caminho que foi percorrido pela formiga 1, pois este possui o maior número de feromônio depositado na trilha: Prob T ij = [1] 0,2 * [4] 0,9 1*3,48 3,48 => => => 0,35 (3 0,2 *6 0,9 )+(1 0,2 *4 0,9 ) 6,21+3,48 9,69 Prob T ij = [3] 0,2 * [6] 0,9 1,24*5,01 6,21 => => => 0,64 (3 0,2 *6 0,9 )+(1 0,2 *4 0,9 ) 6,21+3,48 9,69 Figura 28: Caminho 2 - Escolhido pela Formiga 2 na Iteração 2 De acordo com o algoritmo, o caminho a ser seguido pela Formiga 2 Iteração 2 deve ser o de maior probabilidade, neste caso o caminho cujo resultado é 0,64. Prob T ij = [1] 0,2 * [5] 0,9 1*4,25 4,25 => => => 0,27 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Prob T ij = [3,83] 0,2 * [7] 0,9 1,24*5,76 7,14 => => => 0,45 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Prob T ij = [1] 0,2 * [5] 0,9 1*4,25 4,25 => => => 0,27 (3 0,2 *7 0,9 )+(1 0,2 *5 0,9 )+ (1 0,2 *5 0,9 ) 15,64 15,64 Figura 29: Caminho 3 - Escolhido pela Formiga 2 na Iteração 2

Otimização por Colônia de Formigas (ACO)

Otimização por Colônia de Formigas (ACO) Otimização por Colônia de Formigas (ACO) Inspiração Biológica Proposto por Dorigo e Gambardella em 1997 ACO (Ant Colony Optimization) Principal aplicação no PCV Programação do algoritmo Inspiração Biológica

Leia mais

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

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

Leia mais

Tópicos Especiais em Otimização

Tópicos Especiais em Otimização Tópicos Especiais em Otimização ivo.junior@ufjf.edu.br Juiz de Fora, 05 de Maio de 2016 Introdução Qual a diferença entre inteligência: ARTIFICIAL E COMPUTACIONAL? ARTIFICIAL: É a ciência que tenta compreender

Leia mais

Fundamentos de Inteligência Artificial [5COP099]

Fundamentos de Inteligência Artificial [5COP099] Fundamentos de Inteligência Artificial [5COP099] Dr. Sylvio Barbon Junior Departamento de Computação - UEL Disciplina Anual Assunto Aula 19 ACO - Ant Colony Optimization 2 de 15 Sumário Problema do Caixeiro

Leia mais

Computação Bioinspirada. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Computação Bioinspirada. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho) Computação Bioinspirada Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho) 1 Principais tópicos Computação Bioinspirada Computação Biológica Biologia Computacional

Leia mais

1. Computação Evolutiva

1. Computação Evolutiva Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 1.7. Outras Metaheurísticas Populacionais 1.7.1. Metaheurísticas Populacionais

Leia mais

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. Otimização em Colônias de Formigas Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. de Carvalho) Principais tópicos Introdução Colônias de Formigas Formação

Leia mais

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos

Leia mais

Inteligência Artificial

Inteligência Artificial Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Pós-Graduação

Leia mais

Inteligência Artificial. Conceitos Gerais

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

Leia mais

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Pearson, 2009. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Pós-Graduação

Leia mais

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1 COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1 Márcia Da Silva 2, Eldair Fabricio Dornelles 3, Rogério S. M. Martins 4, Édson L. Padoin 5. 1 Pesquisa desenvolvida

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

Inteligência Computacional

Inteligência Computacional Inteligência Computacional INTRODUÇÃO ÀS REDES NEURAIS ARTIFICIAIS Renato Dourado Maia Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros Na Aula Passada... O que é uma

Leia mais

Resolução de Problemas. Hugo Barros

Resolução de Problemas. Hugo Barros Resolução de Problemas Hugo Barros Resolução de Problemas Tópicos Conceitos Básicos Espaço de Estados Resolução de Problemas Dedica-se ao estudo e elaboração de algoritmos, capazes de resolver, por exemplo,

Leia mais

Inteligência Coletiva. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Inteligência Coletiva. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. Inteligência Coletiva Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. de Carvalho) Principais tópicos Inteligência Coletiva (CI) Otimização por enxames

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

Resolução de Problemas. Resolução de Problemas. Primeiros problemas por computador: prova automática de teoremas e jogos.

Resolução de Problemas. Resolução de Problemas. Primeiros problemas por computador: prova automática de teoremas e jogos. Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado

Leia mais

INTELIGÊNCIA COMPUTACIONAL

INTELIGÊNCIA COMPUTACIONAL Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br A Inteligência Computacional (IC), denominada originalmente de Inteligência Artificial (IA), é uma das ciências

Leia mais

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP) Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante

Leia mais

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Tópicos Especiais: Inteligência Artificial REDES NEURAIS Tópicos Especiais: Inteligência Artificial REDES NEURAIS Material baseado e adaptado do Cap. 20 do Livro Inteligência Artificial de Russell & Norvig Bibliografia Inteligência Artificial Russell & Norvig

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 70-000 Tel: (7)-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 0-000 Tel: ()-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP -

Leia mais

Inteligência Computacional para Jogos Eletrônicos

Inteligência Computacional para Jogos Eletrônicos Inteligência Computacional para Jogos Eletrônicos Papéis da IA em Jogos Adversários Aliados Personagens de apoio NPC s (Non-player Character) Comentaristas Controle de câmera Geração de fases Nivelamento

Leia mais

REDES NEURAIS ARTIFICIAIS

REDES NEURAIS ARTIFICIAIS REDES NEURAIS ARTIFICIAIS REDES NEURAIS ARTIFICIAIS O QUE É UMA REDE NEURAL NEURÔNIOS BIOLÓGICOS CÉREBRO HUMANO E CAPACIDADE DE GENERALIZAÇÃO. Modelo McCulloch e Pitts FUNÇÕES DE ATIVAÇÃO APRENDIZADO APRENDIZADO

Leia mais

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de

Leia mais

3 Aprendizado por reforço

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

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 0-000 Tel: ()-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP -

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Professor Rafael Stubs Parpinelli E-mail: rafael.parpinelli@udesc.br udesc.academia.edu/rafaelstubsparpinelli www.researchgate.net/profile/rafael_parpinelli www.joinville.udesc.br/portal/professores/parpinelli/

Leia mais

Marcone Jamilson Freitas Souza

Marcone Jamilson Freitas Souza Otimização: Algumas aplicações Marcone Jamilson Freitas Souza Departamento de Computação Programa de Pós-Graduação em Ciência da Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/prof/marcone

Leia mais

Computação Bioinspirada PROF. PAULO SALGADO

Computação Bioinspirada PROF. PAULO SALGADO Computação Bioinspirada AULA 1 APRESENTAÇÃO DA DISCIPLINA PROF. PAULO SALGADO Aula de hoje Falar sobre Objetivos Ementa Avaliação Roteiro Proposto (Cronograma) Referências Periódicos da Área Objetivos

Leia mais

Metaheurísticas de Otimização Bio-Inspiradas

Metaheurísticas de Otimização Bio-Inspiradas Metaheurísticas de Otimização Bio-Inspiradas Aula 2 Computação Inspirada na Natureza* Prof. Dr. Hugo Valadares Siqueira * Aula baseada nas notas de aula do Prof. Fernando Von Zuben, da UNICAMP Ciências

Leia mais

GRADE CURRICULAR E CORPO DOCENTE. Fase 1 Carga horária total: 360h

GRADE CURRICULAR E CORPO DOCENTE. Fase 1 Carga horária total: 360h Ciência da Computação CÂMPUS LAGES Instrumentos Regulatórios (Resolução CEPE e CONSUP ou Portaria de reconhecimento do curso pelo MEC) RESOLUÇÃO CEPE/IFSC Nº 39, DE 13 DE AGOSTO DE 2014. RESOLUÇÃO CONSUP/IFSC

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

Leia mais

2. Redes Neurais Artificiais

2. Redes Neurais Artificiais Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.1. Introdução às Redes Neurais Artificiais (RNAs) 2.1.1. Motivação

Leia mais

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de

Leia mais

PRINCÍPIOS DE NEUROCOMPUTAÇÃO

PRINCÍPIOS DE NEUROCOMPUTAÇÃO PRINCÍPIOS DE NEUROCOMPUTAÇÃO Neurocomputação Funcionamento do cérebro humano e os neurônios Formação das conexões e como se concebe teoricamente a aquisição do conhecimento, formalizando-os em procedimentos

Leia mais

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Eros Moreira de Carvalho Gabriel Silva Ramos CI209 - Inteligência Artificial BCC - Bacharelado em Ciência da Computação DInf - Departamento

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Metaheurísticas de Otimização Bio-Inspiradas

Metaheurísticas de Otimização Bio-Inspiradas * Aula baseada nas notas de aula do prof. Fernando Von Zuben, da UNICAMP UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Metaheurísticas de Otimização Bio-Inspiradas Aula 14 Otimização por Colônia de Formigas*

Leia mais

Grafos COM11087-Tópicos Especiais em Programação II

Grafos COM11087-Tópicos Especiais em Programação II Grafos COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Grafos são estruturas muito estudadas na Ciência da Computação para modelagem de problemas Euler (1736) em Königsberg

Leia mais

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto Redes Neurais Artificial Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Histórico 3. Conceitos Básicos 4. Aprendizado em RNA 5. Exemplo de Aprendizado com

Leia mais

Buscas Informadas ou Heurísticas - Parte II

Buscas Informadas ou Heurísticas - Parte II Buscas Informadas ou Heurísticas - Parte II Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Graduação em Ciência da Computação / 2006 FUNÇÕES HEURÍSTICAS - 1/7 FUNÇÕES HEURÍSTICAS - 2/7 Solução

Leia mais

Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 02 Representação do Conhecimento Prof. Max Pereira Para que um computador possa solucionar um problema

Leia mais

Inteligência Artificial

Inteligência Artificial Contextualizando Inteligência Artificial Buscas Onde podemos usar a IA Problemas que não possuem soluções algortimicas Problemas que possuem soluções algoritimicas, mas são impraticáveis (Complexidade,

Leia mais

Inteligência de enxame e o algoritmo das abelhas

Inteligência de enxame e o algoritmo das abelhas Inteligência de enxame e o algoritmo das abelhas (Swarm intelligence and bee s algorithm) Glaucus Augustus, 6219168 O que é: Cooperação: é o processo de agir junto, em união(ex: grupo de tcc) Colaboração:

Leia mais

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2 UNIVERSIDADE FEDERAL DE PERNAMBUCO PRÓ-REITORIA PARA ASSUNTOS DE PESQUISA E PÓS-GRADUAÇÃO ESTRUTURA CURRICULAR STRICTO SENSU (baseada na Res. 10/2008 do CCEPE) NOME DO CURSO: Pós-Graduação em Ciência da

Leia mais

6 Estudos de Casos Porta Lógica OU de 4 Entradas

6 Estudos de Casos Porta Lógica OU de 4 Entradas 6 Estudos de Casos Com o objetivo de avaliar a síntese automática de circuitos de QCA usando técnicas de Hardware Evolucionário (EHW), alguns circuitos foram sintetizados e serão apresentados a seguir.

Leia mais

2 Modelos Baseados no Comportamento de Formigas

2 Modelos Baseados no Comportamento de Formigas 2 Modelos Baseados no Comportamento de Formigas Formigas são seres vivos relativamente simples. Entretanto, é interessante reparar que suas colônias costumam apresentar um nível de sofisticação estrutural

Leia mais

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

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

Leia mais

Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado

Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado Ministério da Educação Instituto Federal de Educação, Ciência e Tecnologia Sudeste de Minas Gerais - Campus Rio Pomba Bacharelado em Ciência da Computação 1) Considere os termos abaixo e complete. Inteligência

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Resolução de problemas por meio de algoritmos de busca Aula II Algoritmos básicos de busca

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos. Niterói, 12 de Maio de 2018

Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos. Niterói, 12 de Maio de 2018 Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos Niterói, 12 de Maio de 2018 Realização 2 Realização 3 Programação: manhã 9:30h-10:30H VISÃO GERAL: OTIMIZAÇÃO E INTELIGÊNCIA COMPUTACIONAL

Leia mais

Profa. Sheila Morais de Almeida. março

Profa. Sheila Morais de Almeida. março Classificação das Ciências Profa. Sheila Morais de Almeida DAINF-UTFPR-PG março - 2019 Sheila Almeida (DAINF-UTFPR-PG) Classificação das Ciências março - 2019 1 / 23 Este material é preparado usando como

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

Inteligência Artificial. Agentes computacionais. Aula II Introdução

Inteligência Artificial. Agentes computacionais. Aula II Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Agentes computacionais Aula II Introdução Roteiro Continuação aos conceitos iniciais Noções

Leia mais

OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS PARA O ROTEAMENTO EM REDES DE COMPUTADORES.

OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS PARA O ROTEAMENTO EM REDES DE COMPUTADORES. OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS PARA O ROTEAMENTO EM REDES DE COMPUTADORES. Renato Guilherme Martins Junior (ICV-UNICENTRO), Richard Aderbal Gonçalves (Co-orientador), Carolina Paula de Almeida (Orientadora)

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

Inteligência de Enxame

Inteligência de Enxame Inteligência de Enxame! Inteligência de enxames é a denominação aplicada a tentativa de desenvolvimento de algoritmos para a solução distribuída de problemas inspirando-se no comportamento coletivo de

Leia mais

3 Redes Neurais Artificiais

3 Redes Neurais Artificiais 3 Redes Neurais Artificiais 3.1. Introdução A capacidade de implementar computacionalmente versões simplificadas de neurônios biológicos deu origem a uma subespecialidade da inteligência artificial, conhecida

Leia mais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais ricardo.kerschbaumer@ifc.edu.br http://professor.luzerna.ifc.edu.br/ricardo-kerschbaumer/ Introdução O Cérebro humano Mais fascinante processador

Leia mais

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO METAHEURÍSTICAS: É uma das primeiras metaheurísticas que foi utilizada com muito sucesso nos problemas complexos de pesquisa operacional. O S.A surgiu do campo

Leia mais

Lista de Exercícios de Arranjo Físico Industrial Prof. Artur

Lista de Exercícios de Arranjo Físico Industrial Prof. Artur Lista de xercícios de rranjo Físico Industrial Prof. rtur Questão 1: Calcule uma solução para a instância abaixo do PQ utilizando a heurística gulosa dada em sala e forneça o seu custo. - 4 3 Distâncias

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 24 Aprendizado Por Reforço Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest Neighbor (KNN).

Leia mais

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas Inteligência Artificial Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas 1 Agente solucionador de problemas (guiado por objetivo) O agente reativo Escolhe suas ações com base apenas nas percepções

Leia mais

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid 1 Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid Luciana Conceição Dias Campos Resumo Este trabalho consiste da aplicação de um algoritmo genético ao método

Leia mais

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina Redes Neurais O modelo biológico O cérebro humano possui cerca 100 bilhões de neurônios O neurônio é composto por um corpo celular chamado soma, ramificações chamadas dendritos (que recebem as entradas)

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais

Redes Neurais INTELIGÊNCIA ARTIFICIAL

Redes Neurais INTELIGÊNCIA ARTIFICIAL Redes Neurais INTELIGÊNCIA ARTIFICIAL 1 2 Introdução As redes neurais são um tema da computação altamente inspirada na natureza que nos cerca. Durante anos e anos os homens trabalharam para fazer computadores

Leia mais

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N.

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N. CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N. Ordem Código COMPONENTE CURRICULAR Créditos Horas Prérequisitos 01 Introdução à informática 04 60 02 Matemática instrumental

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 22 Redes Neurais Edirlei Soares de Lima Formas de Aprendizado Aprendizado Supervisionado Árvores de decisão. K-Nearest Neighbor (KNN). Support

Leia mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica REDES NEURAIS ARTIFICIAIS AULA 03 Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 INTRODUÇÃO Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo

Leia mais

3 Métodos de Otimização

3 Métodos de Otimização 3 Métodos de Otimização Problemas de otimização são relacionados a minimização ou maximização de função de uma ou mais variáveis num determinado domínio, possivelmente com a existência de um conjunto de

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP Primeiro Exercício programa: Como o Google ordena páginas MAP-2121 para EPUSP 1 Instruções gerais Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar

Leia mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por

Leia mais

Buscas Informadas ou Heurísticas - Parte III

Buscas Informadas ou Heurísticas - Parte III Buscas Informadas ou Heurísticas - Parte III Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Mestrado em Ciência da Computação / 2006 BUSCA SMA* (Simplified Memory-Bounded A*) BUSCA SMA* (Simplified

Leia mais

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Inteligência Artificial - IA. Resolução de problemas por meio de busca Resolução de problemas por meio de busca 1 Agente reativo - definido por ação reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável.

Leia mais

Visão Computacional. Prof. Leandro Augusto Frata Fernandes TCC Introdução à Ciência da Computação (2012.

Visão Computacional. Prof. Leandro Augusto Frata Fernandes TCC Introdução à Ciência da Computação (2012. Visão Computacional Prof. Leandro Augusto Frata Fernandes laffernandes@ic.uff.br TCC-00.169 Introdução à Ciência da Computação (2012.1) Visão Humana Responsável por cerca de 75% de nossa percepção O ato

Leia mais

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas

Leia mais

4 Metáforas de Optimização

4 Metáforas de Optimização 4 Metáforas de Optimização O gigantesco avanço tecnológico que vem sofrendo os sistemas de computação, mais precisamente as unidades de processamento, criou a base para o uso efetivo da Inteligência Computacional,

Leia mais

Resolução de Problemas

Resolução de Problemas Resolução de Problemas 1 Agente de Resolução de Problemas (1/2) 2 O agente reativo Escolhe suas ações com base apenas nas percepções atuais não pode pensar no futuro, não sabe aonde vai 4 5 8 1 6 7 2 3?

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Aula -Grafos Uma figura vale por mil palavras A representação de dados e ou informações utilizando de recursos visuais é, em muitos casos,

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

A evolução natural deu ao cérebro humano muitas características desejáveis que não estão presentes na máquina de von Neumann:

A evolução natural deu ao cérebro humano muitas características desejáveis que não estão presentes na máquina de von Neumann: Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias PUC-Campinas João Luís Garcia Rosa 2004 2 A evolução natural deu ao cérebro humano muitas características desejáveis

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Resolução de problemas por meio de algoritmos

Leia mais

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

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

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 18 Aprendizado Por Reforço Edirlei Soares de Lima Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest Neighbor (KNN).

Leia mais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,

Leia mais