O documento discute técnicas de resolução de problemas por meio de busca com informação, como heurística, busca A*, busca gulosa e minimax. Especificamente, apresenta: 1) Uma descrição geral dessas técnicas; 2) Um exemplo de aplicação da heurística com A* para resolver o problema do metrô de Paris, representando estados como estações, linhas e informações de baldeação.
Inteligência Artificial - Aula2 - Busca em GrafosRafael Pinto
O documento discute problemas e algoritmos de busca em inteligência artificial. Aborda o que são problemas e algoritmos de busca, definindo características de um problema de busca e tipos de algoritmos como busca em profundidade, largura e informada. Explica conceitos como estado inicial, ações possíveis, modelo de transição e objetivo para definir formalmente um problema de busca.
O documento descreve os conceitos fundamentais de processos em sistemas operacionais, incluindo o que é um processo, seus componentes (contexto de hardware, contexto de software e espaço de endereçamento), estados possíveis de um processo (executando, pronto e espera) e a função do bloco de controle de processo.
O documento compara algoritmos de ordenação como Shellsort, Quicksort, Heapsort e Bubble sort. O Quicksort geralmente é o mais rápido, enquanto Bubble sort é o mais lento. Shellsort é bom para arquivos de tamanho moderado e fácil de implementar, mas não é estável. Quicksort requer pouca memória auxiliar mas pode ser lento em partições desequilibradas. Heapsort é previsível em tempo mas complexo de implementar.
O documento discute os principais conceitos e implementações de sistemas de arquivos. Aborda tópicos como arquivos, diretórios, métodos de acesso, gerenciamento de espaço em disco e alocação de espaço. Explica como os sistemas de arquivos organizam e fornecem acesso aos dados armazenados de forma permanente nos dispositivos de armazenamento.
O documento descreve o algoritmo de ordenação Shell Sort. Ele divide o vetor em sub-vetores menores e ordena esses sub-vetores usando inserção ou outra técnica simples, melhorando a ordenação a cada passo até chegar a um único vetor ordenado. O documento também discute a complexidade do algoritmo e métodos para escolher os incrementos usados nos passos.
O documento introduz conceitos básicos de computação, incluindo a evolução histórica dos computadores dividida em gerações, componentes de hardware e software, e linguagens de programação.
O documento descreve o tônus muscular como a resistência sentida quando uma parte do corpo é movida passivamente, causada pela estimulação nervosa. Explica que o tônus muscular mantém os músculos preparados para a ação e permite movimentos mais rápidos. Também discute as alterações do tônus muscular como a hipotonia e hipertonia e métodos para avaliar o tônus, incluindo a extensibilidade e passividade muscular.
O documento descreve um sistema de controle de custos intangíveis da utilização da internet nas empresas. O sistema foi desenvolvido para gerar relatórios sobre o uso da internet por departamentos e funcionários e calcular os custos associados a uso indevido para auxiliar na tomada de decisões gerenciais. O sistema utiliza tecnologias como PHP, MySQL e XML para coletar logs de acesso à internet, classificar os custos e permitir a exportação e importação de dados.
Inteligência Artificial - Aula2 - Busca em GrafosRafael Pinto
O documento discute problemas e algoritmos de busca em inteligência artificial. Aborda o que são problemas e algoritmos de busca, definindo características de um problema de busca e tipos de algoritmos como busca em profundidade, largura e informada. Explica conceitos como estado inicial, ações possíveis, modelo de transição e objetivo para definir formalmente um problema de busca.
O documento descreve os conceitos fundamentais de processos em sistemas operacionais, incluindo o que é um processo, seus componentes (contexto de hardware, contexto de software e espaço de endereçamento), estados possíveis de um processo (executando, pronto e espera) e a função do bloco de controle de processo.
O documento compara algoritmos de ordenação como Shellsort, Quicksort, Heapsort e Bubble sort. O Quicksort geralmente é o mais rápido, enquanto Bubble sort é o mais lento. Shellsort é bom para arquivos de tamanho moderado e fácil de implementar, mas não é estável. Quicksort requer pouca memória auxiliar mas pode ser lento em partições desequilibradas. Heapsort é previsível em tempo mas complexo de implementar.
O documento discute os principais conceitos e implementações de sistemas de arquivos. Aborda tópicos como arquivos, diretórios, métodos de acesso, gerenciamento de espaço em disco e alocação de espaço. Explica como os sistemas de arquivos organizam e fornecem acesso aos dados armazenados de forma permanente nos dispositivos de armazenamento.
O documento descreve o algoritmo de ordenação Shell Sort. Ele divide o vetor em sub-vetores menores e ordena esses sub-vetores usando inserção ou outra técnica simples, melhorando a ordenação a cada passo até chegar a um único vetor ordenado. O documento também discute a complexidade do algoritmo e métodos para escolher os incrementos usados nos passos.
O documento introduz conceitos básicos de computação, incluindo a evolução histórica dos computadores dividida em gerações, componentes de hardware e software, e linguagens de programação.
O documento descreve o tônus muscular como a resistência sentida quando uma parte do corpo é movida passivamente, causada pela estimulação nervosa. Explica que o tônus muscular mantém os músculos preparados para a ação e permite movimentos mais rápidos. Também discute as alterações do tônus muscular como a hipotonia e hipertonia e métodos para avaliar o tônus, incluindo a extensibilidade e passividade muscular.
O documento descreve um sistema de controle de custos intangíveis da utilização da internet nas empresas. O sistema foi desenvolvido para gerar relatórios sobre o uso da internet por departamentos e funcionários e calcular os custos associados a uso indevido para auxiliar na tomada de decisões gerenciais. O sistema utiliza tecnologias como PHP, MySQL e XML para coletar logs de acesso à internet, classificar os custos e permitir a exportação e importação de dados.
O documento discute as principais modificações no puerpério e o tratamento fisioterapêutico nesse período. As principais modificações incluem a involução uterina, alterações no sistema cardiovascular e musculatura perineal. A fisioterapia objetiva prevenir complicações, restaurar a função muscular e orientar a puérpera sobre amamentação e cuidados com o bebê.
O documento discute algoritmos e fornece exemplos. Em três frases:
Discutem-se definições e características de algoritmos, como sequências finitas de passos para resolver problemas. Fornecem-se exemplos de algoritmos, como receitas culinárias e troca de lâmpadas. Abordam-se também representações gráficas como fluxogramas para descrever algoritmos.
O documento discute a análise de algoritmos. Ele explica que a análise de algoritmos avalia a complexidade dos algoritmos para entender sua eficiência. O objetivo da aula é desenvolver habilidades para julgar algoritmos de forma elementar, considerando critérios como tempo de execução e uso de memória. A complexidade é medida em termos do número de operações executadas em função do tamanho da entrada.
O documento discute o paradigma lógico de programação, no qual programas são definidos declarativamente através de fatos e regras lógicas. A linguagem Prolog é apresentada como a principal linguagem deste paradigma, permitindo declarar fatos sobre objetos e relacionamentos, definir regras sobre esses objetos e fazer perguntas para inferir novas informações.
O documento fornece dicas para criar apresentações eletrônicas eficazes, enfatizando que os recursos audiovisuais devem ser usados com moderação para apoiar, e não substituir, a comunicação do orador. Algumas dicas importantes incluem usar poucas cores harmoniosas, fontes legíveis, texto conciso, imagens ilustrativas e manter o contato visual com a audiência.
O documento descreve os principais elementos para criação de formulários HTML, incluindo tags como <form>, <input>, <select>, <textarea>. Explica como esses elementos coletam dados do usuário e os enviam para processamento no servidor.
O documento descreve árvores binárias, estruturas de dados hierárquicas onde cada nó tem no máximo dois filhos. Explica que uma árvore binária possui uma raiz e nós internos com duas subárvores esquerda e direita, além de nós folha sem filhos. Também apresenta operações básicas como busca, inserção e remoção em árvores binárias de busca, onde os nós são ordenados.
O documento descreve alocação dinâmica de memória usando ponteiros. Explica que a alocação dinâmica permite reservar espaço de memória à medida que é necessário, ao contrário de definir tamanhos fixos no início. Apresenta exemplos simples de programação com ponteiros que ilustram como a memória pode ser alocada e liberada conforme necessário.
Este documento fornece instruções detalhadas sobre exercícios de alongamento para diferentes grupos musculares, incluindo panturrilhas, sóleo, iliopsoas, isquiotibiais, adutores, glúteos e banda iliotibial. As instruções descrevem a forma correta de execução de cada exercício, os músculos envolvidos e possíveis considerações.
O documento discute técnicas de gerenciamento de memória em sistemas operacionais, incluindo alocação contígua, particionada estática e dinâmica, mapeamento de memória com listas ligadas, e a técnica de swapping para alternar processos entre memória principal e secundária.
O documento descreve as principais seções de uma placa-mãe (motherboard) incluindo o processador, memória RAM e ROM, chips de controle, slots de expansão e conectores. Também discute os tipos de placas-mãe AT, ATX e as melhorias do padrão ATX em relação ao AT original.
O Shellsort é um algoritmo de ordenação desenvolvido por Donald Shell em 1959. Funciona fazendo trocas em elementos espaçados a distâncias cada vez menores até chegar à distância de 1, equivalente ao Insertion Sort. A melhor sequência para definir as distâncias ainda é objeto de estudo, mas a de Knuth geralmente produz bons resultados. O Shellsort é mais rápido que outros métodos para arquivos de até 10.000 registros.
O documento discute as alavancas e o sistema osteomioarticular. Descreve o que é uma alavanca e suas características, incluindo os tipos de alavancas e suas funções no corpo humano. Também define ossos, articulações e músculos, e como eles interagem como alavancas no sistema locomotor.
Hidroterapia exercícios de aquecimento para parte superior do corpo - Aula 3Cleanto Santos Vieira
O documento descreve exercícios de aquecimento para a parte superior do corpo realizados em hidroterapia, incluindo puxadas com os braços, estilo nado de peito, exercícios pendulares e uma combinação de movimentos de braços, destacando os músculos trabalhados em cada exercício.
O documento apresenta um livro sobre semiologia ortopédica para médicos, dividido em 25 módulos que abordam anatomia, exame físico, patologias e radiologia do aparelho locomotor, com foco nos módulos sobre punhos e mãos.
O documento apresenta um SSD (Solid State Drive), um disco rígido que usa chips de memória flash em vez de discos magnéticos. Ele explica como os SSDs funcionam sem partes móveis e oferecem vantagens como velocidade, resistência e consumo de energia reduzido, apesar de ainda terem alto custo e menor capacidade em comparação aos discos rígidos convencionais. O documento também discute o futuro dos SSDs, incluindo modelos com até 4TB de espaço e protótipos do tamanho de um selo.
O documento descreve a anatomia e biomecânica do complexo articular do ombro, incluindo suas articulações, ligamentos, músculos e funções. São descritas as articulações esternoclavicular, acromioclavicular e glenoumeral, assim como a articulação escápulotorácica. Vários músculos e seus papéis no movimento e estabilidade do ombro também são explicados. Por último, aspectos da avaliação clínica do complexo do ombro, como inspeção, palpação e testes especiais,
O documento discute a análise de requisitos de software, incluindo: (1) a importância da elicitação correta de requisitos, (2) as definições de requisitos e os stakeholders envolvidos, (3) os desafios da elicitação de requisitos e as técnicas recomendadas para superá-los.
O documento discute os principais tipos de memórias ROM e RAM, incluindo suas características e aplicações. Apresenta as memórias RAM como sendo voláteis e usadas para armazenar dados durante a execução de programas, enquanto as memórias ROM são não voláteis e permitem apenas leitura dos dados.
O documento discute vários problemas e estratégias de inteligência artificial, incluindo o problema das jarras, busca em profundidade e amplitude, heurísticas como subida da encosta e vizinho mais próximo, e satisfação de restrições em problemas de coloração de mapas.
Existem problemas complexos que não podem ser resolvidos em tempo viável por métodos tradicionais. Algoritmos genéticos, inspirados na evolução biológica, podem encontrar soluções aproximadas para estes problemas, como a otimização de rotas de distribuição.
O documento discute as principais modificações no puerpério e o tratamento fisioterapêutico nesse período. As principais modificações incluem a involução uterina, alterações no sistema cardiovascular e musculatura perineal. A fisioterapia objetiva prevenir complicações, restaurar a função muscular e orientar a puérpera sobre amamentação e cuidados com o bebê.
O documento discute algoritmos e fornece exemplos. Em três frases:
Discutem-se definições e características de algoritmos, como sequências finitas de passos para resolver problemas. Fornecem-se exemplos de algoritmos, como receitas culinárias e troca de lâmpadas. Abordam-se também representações gráficas como fluxogramas para descrever algoritmos.
O documento discute a análise de algoritmos. Ele explica que a análise de algoritmos avalia a complexidade dos algoritmos para entender sua eficiência. O objetivo da aula é desenvolver habilidades para julgar algoritmos de forma elementar, considerando critérios como tempo de execução e uso de memória. A complexidade é medida em termos do número de operações executadas em função do tamanho da entrada.
O documento discute o paradigma lógico de programação, no qual programas são definidos declarativamente através de fatos e regras lógicas. A linguagem Prolog é apresentada como a principal linguagem deste paradigma, permitindo declarar fatos sobre objetos e relacionamentos, definir regras sobre esses objetos e fazer perguntas para inferir novas informações.
O documento fornece dicas para criar apresentações eletrônicas eficazes, enfatizando que os recursos audiovisuais devem ser usados com moderação para apoiar, e não substituir, a comunicação do orador. Algumas dicas importantes incluem usar poucas cores harmoniosas, fontes legíveis, texto conciso, imagens ilustrativas e manter o contato visual com a audiência.
O documento descreve os principais elementos para criação de formulários HTML, incluindo tags como <form>, <input>, <select>, <textarea>. Explica como esses elementos coletam dados do usuário e os enviam para processamento no servidor.
O documento descreve árvores binárias, estruturas de dados hierárquicas onde cada nó tem no máximo dois filhos. Explica que uma árvore binária possui uma raiz e nós internos com duas subárvores esquerda e direita, além de nós folha sem filhos. Também apresenta operações básicas como busca, inserção e remoção em árvores binárias de busca, onde os nós são ordenados.
O documento descreve alocação dinâmica de memória usando ponteiros. Explica que a alocação dinâmica permite reservar espaço de memória à medida que é necessário, ao contrário de definir tamanhos fixos no início. Apresenta exemplos simples de programação com ponteiros que ilustram como a memória pode ser alocada e liberada conforme necessário.
Este documento fornece instruções detalhadas sobre exercícios de alongamento para diferentes grupos musculares, incluindo panturrilhas, sóleo, iliopsoas, isquiotibiais, adutores, glúteos e banda iliotibial. As instruções descrevem a forma correta de execução de cada exercício, os músculos envolvidos e possíveis considerações.
O documento discute técnicas de gerenciamento de memória em sistemas operacionais, incluindo alocação contígua, particionada estática e dinâmica, mapeamento de memória com listas ligadas, e a técnica de swapping para alternar processos entre memória principal e secundária.
O documento descreve as principais seções de uma placa-mãe (motherboard) incluindo o processador, memória RAM e ROM, chips de controle, slots de expansão e conectores. Também discute os tipos de placas-mãe AT, ATX e as melhorias do padrão ATX em relação ao AT original.
O Shellsort é um algoritmo de ordenação desenvolvido por Donald Shell em 1959. Funciona fazendo trocas em elementos espaçados a distâncias cada vez menores até chegar à distância de 1, equivalente ao Insertion Sort. A melhor sequência para definir as distâncias ainda é objeto de estudo, mas a de Knuth geralmente produz bons resultados. O Shellsort é mais rápido que outros métodos para arquivos de até 10.000 registros.
O documento discute as alavancas e o sistema osteomioarticular. Descreve o que é uma alavanca e suas características, incluindo os tipos de alavancas e suas funções no corpo humano. Também define ossos, articulações e músculos, e como eles interagem como alavancas no sistema locomotor.
Hidroterapia exercícios de aquecimento para parte superior do corpo - Aula 3Cleanto Santos Vieira
O documento descreve exercícios de aquecimento para a parte superior do corpo realizados em hidroterapia, incluindo puxadas com os braços, estilo nado de peito, exercícios pendulares e uma combinação de movimentos de braços, destacando os músculos trabalhados em cada exercício.
O documento apresenta um livro sobre semiologia ortopédica para médicos, dividido em 25 módulos que abordam anatomia, exame físico, patologias e radiologia do aparelho locomotor, com foco nos módulos sobre punhos e mãos.
O documento apresenta um SSD (Solid State Drive), um disco rígido que usa chips de memória flash em vez de discos magnéticos. Ele explica como os SSDs funcionam sem partes móveis e oferecem vantagens como velocidade, resistência e consumo de energia reduzido, apesar de ainda terem alto custo e menor capacidade em comparação aos discos rígidos convencionais. O documento também discute o futuro dos SSDs, incluindo modelos com até 4TB de espaço e protótipos do tamanho de um selo.
O documento descreve a anatomia e biomecânica do complexo articular do ombro, incluindo suas articulações, ligamentos, músculos e funções. São descritas as articulações esternoclavicular, acromioclavicular e glenoumeral, assim como a articulação escápulotorácica. Vários músculos e seus papéis no movimento e estabilidade do ombro também são explicados. Por último, aspectos da avaliação clínica do complexo do ombro, como inspeção, palpação e testes especiais,
O documento discute a análise de requisitos de software, incluindo: (1) a importância da elicitação correta de requisitos, (2) as definições de requisitos e os stakeholders envolvidos, (3) os desafios da elicitação de requisitos e as técnicas recomendadas para superá-los.
O documento discute os principais tipos de memórias ROM e RAM, incluindo suas características e aplicações. Apresenta as memórias RAM como sendo voláteis e usadas para armazenar dados durante a execução de programas, enquanto as memórias ROM são não voláteis e permitem apenas leitura dos dados.
O documento discute vários problemas e estratégias de inteligência artificial, incluindo o problema das jarras, busca em profundidade e amplitude, heurísticas como subida da encosta e vizinho mais próximo, e satisfação de restrições em problemas de coloração de mapas.
Existem problemas complexos que não podem ser resolvidos em tempo viável por métodos tradicionais. Algoritmos genéticos, inspirados na evolução biológica, podem encontrar soluções aproximadas para estes problemas, como a otimização de rotas de distribuição.
O documento discute métodos para resolver o problema quadrático de alocação (QAP), incluindo métodos construtivos gulosos, busca local 2-opt e busca tabu. Os métodos construtivos propõem algoritmos FIA e NFI para gerar soluções iniciais, enquanto a busca local 2-opt e a busca tabu são usadas para melhorar soluções através de trocas de pares de alocações. A busca tabu evita repetições mantendo uma lista de movimentos proibidos e usa critérios como aspiração para
[José Ahirton Lopes] Support Vector MachinesAhirton Lopes
SVM é um algoritmo de aprendizado de máquina supervisionado usado para classificação e regressão. Ele constrói um hiperplano que separa classes de dados rotulados no espaço de recursos. Os vetores de suporte são os pontos mais próximos do hiperplano e ajudam a definir sua posição. SVM busca o hiperplano que maximiza a margem entre classes.
A classe Math de Java fornece métodos para realizar operações matemáticas como máximo, mínimo, potências, raízes, logaritmos, arredondamentos, trigonometria e números aleatórios. Os métodos podem ser chamados staticamente sem a necessidade de instanciar objetos e incluem constantes como π e e. Exemplos demonstram o cálculo de comprimento de círculo, maior e menor preço, potência e raiz quadrada.
O documento discute conceitos de lógica, algoritmos e pseudocódigo. Apresenta exemplos de algoritmos para trocar uma lâmpada e movimentar discos de torre de Hanói. Explica o que é algoritmo computacional e como escrever algoritmos em pseudocódigo de forma independente de linguagem de programação.
O documento introduz os conceitos de algoritmo e representação de algoritmos. Define algoritmo como um conjunto de regras para solução de problemas e discute suas aplicações na matemática e computação. Apresenta diferentes formas de representar algoritmos incluindo descrição narrativa, fluxograma, diagrama de Chapin e pseudocódigo.
O documento introduz os conceitos de lógica e algoritmos, definindo-os como formas de organizar pensamentos e expressar soluções de problemas de maneira estruturada. Em seguida, apresenta um exemplo passo-a-passo de como desenvolver um algoritmo para trocar uma lâmpada queimada, ilustrando conceitos como fluxo sequencial, estruturas de repetição e condicionais. Por fim, discute fatores importantes na construção de algoritmos, como complexidade, legibilidade e portabilidade.
Este documento descreve dois métodos para encontrar a tendência em séries temporais: (1) Método dos mínimos quadrados, que ajusta uma curva matemática aos dados originais usando modelos de regressão; (2) Método das médias móveis, que calcula médias de conjuntos sequenciais de valores para suavizar os dados. O documento fornece um exemplo detalhado de como aplicar cada método a um conjunto de dados sobre ocupação hoteleira.
Resolvido Prova Tecnico da Marinha 2013 Déborah Luzia
A estimativa análoga fornece estimativas de tempo e custo baseadas em projetos similares do passado. Ela depende da semelhança entre o projeto atual e os projetos históricos, sendo menos precisa do que outras técnicas, mas também mais barata.
O documento discute algoritmos e análise de algoritmos. Explica que um algoritmo é uma sequência de instruções para resolver um problema e que estruturas de dados são formas de armazenar informações. Também aborda como analisar algoritmos, variáveis na análise como tempo e espaço, e conceitos como complexidade, notação O grande e técnicas de projeto de algoritmos.
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
O documento descreve vários algoritmos de escalonamento de CPU, incluindo Round Robin. Propõe o uso da lógica fuzzy para aprimorar o algoritmo Round Robin, usando dois sistemas de inferência fuzzy para determinar o melhor tempo quantum e decidir sobre preempção de processos.
O documento discute o cálculo da incerteza de estimação geoestatística para otimizar a localização de estações climatológicas. Ele explica o que é a incerteza de estimação, como é calculada usando formalismo da indicatriz e modelagem de distribuição de probabilidade, e como sistemas de informação geográfica podem ajudar no processo. Um caso de estudo sobre rede de estações climáticas em Portugal é apresentado.
**Algoritmos de Busca: Explorando Estratégias Eficientes para Encontrar Informações**
Os algoritmos de busca desempenham um papel fundamental na computação e em muitos aspectos da vida moderna. Eles são usados em uma ampla gama de aplicações, desde motores de busca na web até sistemas de recomendação, passando por jogos, aprendizado de máquina e muito mais. Esses algoritmos permitem encontrar informações específicas dentro de grandes conjuntos de dados de forma eficiente, ajudando a resolver uma variedade de problemas. Neste texto, vamos explorar os conceitos fundamentais por trás dos algoritmos de busca, suas diferentes categorias, estratégias e aplicações práticas.
**1. Introdução aos Algoritmos de Busca**
Os algoritmos de busca são técnicas computacionais projetadas para localizar elementos específicos dentro de uma coleção de dados. Eles são amplamente utilizados em diversos campos da ciência da computação, como processamento de linguagem natural, inteligência artificial, bioinformática, entre outros. A necessidade de buscar eficientemente informações em grandes conjuntos de dados é uma questão fundamental em muitos problemas computacionais.
**2. Classificação dos Algoritmos de Busca**
Os algoritmos de busca podem ser classificados de várias maneiras, dependendo de diferentes critérios. Uma classificação comum é baseada na estrutura dos dados de entrada e na estratégia de busca utilizada. Entre as categorias principais, temos:
- Busca Sequencial
- Busca Binária
- Busca em Profundidade (DFS)
- Busca em Largura (BFS)
- Algoritmos de Busca Heurística
- Algoritmos de Busca Local
- Algoritmos de Busca A*
Vamos explorar cada uma dessas categorias com mais detalhes.
**3. Busca Sequencial**
A busca sequencial é o método mais simples de busca, onde cada elemento do conjunto de dados é examinado sequencialmente até que o elemento desejado seja encontrado ou até que todos os elementos tenham sido percorridos. Este método é adequado para pequenos conjuntos de dados, mas pode se tornar ineficiente para conjuntos maiores, já que sua complexidade é linear em relação ao tamanho do conjunto.
**4. Busca Binária**
A busca binária é um algoritmo eficiente para encontrar um elemento em uma lista ordenada. Ela opera dividindo repetidamente pela metade o espaço de busca. A cada etapa, o algoritmo compara o elemento desejado com o elemento no meio da lista e, com base nessa comparação, descarta metade dos elementos, continuando a busca na metade restante. Esse processo é repetido até que o elemento desejado seja encontrado ou até que não haja mais elementos para examinar. A busca binária tem uma complexidade de tempo de O(log n), tornando-a muito eficiente para conjuntos de dados grandes.
**5. Busca em Profundidade (DFS)**
A busca em profundidade é um algoritmo usado para percorrer ou buscar elementos em uma estrutura de dados, como árvores ou grafos. Ele começa em um nó raiz e explora o máximo possível ao longo de cada ramificação antes de fazer backtr
O documento descreve diferentes formas de representar algoritmos, incluindo linguagem natural, fluxogramas e pseudo-código. Ele fornece exemplos de algoritmos em linguagem natural para preparar receitas e ordenar rãs, e discute as vantagens da pseudo-linguagem para descrever algoritmos de forma próxima a linguagens de programação.
O documento discute algoritmos gulosos e aproximados. Especificamente, apresenta: 1) o que são algoritmos gulosos e suas características; 2) exemplos como o problema do troco e seleção de atividades; 3) algoritmos aproximados e relações de aproximação; 4) cobertura de vértices como um problema NP-completo e uma abordagem gulosa para resolvê-lo.
O documento apresenta um algoritmo de programação dinâmica para resolver o problema da multiplicação de cadeias de matrizes. O algoritmo calcula o custo ótimo de realizar as multiplicações considerando todas as possíveis ordens, armazenando os resultados para evitar recalcular subproblemas. A solução ótima é aquela que minimiza o custo total da multiplicação.
Scaling bayesian network parameter learning with HadoopJoão Gabriel Lima
Este documento descreve pesquisas sobre acelerar o aprendizado de parâmetros de redes Bayesianas usando Hadoop e MapReduce. Os autores implementaram algoritmos tradicionais e o algoritmo EM no Hadoop para aprendizagem de parâmetros, testando em várias redes Bayesianas complexas. Os experimentos mostraram que o MapReduce pode reduzir significativamente o tempo de processamento para grandes conjuntos de dados, em comparação com métodos sequenciais. As análises indicaram que o desempenho depende do tamanho e estrutura da rede, além
Este documento descreve um estudo sobre encontrar subconjuntos de itens frequentes em grandes conjuntos de dados utilizando o modelo Map-Reduce no Hadoop. O autor implementou funções Map e Reduce em Python para encontrar subconjuntos frequentes em um conjunto de dados sobre incêndios florestais, contendo variáveis meteorológicas e a área queimada. Testes iniciais foram realizados para validar as funções em uma pequena parte do conjunto de dados.
Semelhante a Inteligência Artificial - Busca com informação (20)
O documento discute os benefícios da terceirização de TI para empresas, permitindo que elas foquem no negócio principal e deixem a gestão de TI para parceiros especializados. A terceirização pode gerar economia de recursos, aumento de produtividade e competitividade, embora existam também riscos como perda de controle e dependência de terceiros.
O documento descreve o Team Software Process (TSP), um processo de desenvolvimento de software que objetiva construir equipes eficazes. O TSP foi projetado para guiar equipes em projetos de software através de ciclos de desenvolvimento rápidos, métricas e feedback contínuo para melhorar a produtividade e qualidade.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against developing mental illness and improve symptoms for those who already suffer from conditions like anxiety and depression.
As técnicas de algoritmos apresentadas incluem algoritmos de força bruta, pesquisa exaustiva, dividir e conquistar, gulosos e backtracking. O documento explica o conceito de backtracking, características como podas quando não há solução e busca em profundidade, e fornece exemplos como labirintos, problema das N rainhas e problema dos filósofos para ilustrar a técnica.
O documento discute as vantagens do ensino a distância (EAD) em relação ao ensino presencial tradicional no contexto da área de segurança pública brasileira. Aponta que o ensino presencial já não atende os desafios educacionais devido aos altos custos e dificuldades de afastamento do trabalho. Além disso, o EAD permite disseminar conhecimento para mais pessoas com redução de custos à medida que mais participam, justificando o investimento inicial em tecnologia.
O documento discute softwares de autoria que podem ser usados por alunos e professores para criar atividades educativas. Ele descreve alguns softwares como Hot Potatoes, ABC SEBRAN e Menino Curioso, explicando suas funcionalidades. Além disso, enfatiza a importância da formação de professores para usar efetivamente a tecnologia no processo de ensino-aprendizagem.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E
TECNOLOGIA DO SUL DE MINAS – CAMPUS
MUZAMBINHO
Curso Superior de Ciência da Computação
PEDRO HENRIQUE DE OLIVEIRA MACHADO
SAYMON CRISTIAN ALVES OLIVEIRA
REGINALDO FARIA DA SILVA
RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA COM
INFORMAÇÃO
Muzambinho
2013
2. 2
Sumário
1
Resolução de Problemas por meio de busca ...................................................................... 3
2
Busca com Informação ....................................................................................................... 3
3
Heurística............................................................................................................................ 3
4
Busca A* ............................................................................................................................. 4
5
Busca Gulosa ..................................................................................................................... 6
6
Minimax .............................................................................................................................. 6
7
Anexo I ..............................................................................................................................10
7.1
Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012 ........................10
7.1.1
8
O problema do Metrô de Paris .............................................................................10
Bibliografia .........................................................................................................................13
3. 3
1 Resolução de Problemas por meio de busca
É construir um espaço de estados para encontrar uma sequência de ações cuja
aplicação resolve um problema.(RIZZI, 2013)
Segundo LIMA, o processo de tentar encontrar uma sequencia de ações que
leva de um estado até um estado objetivo é chamado de busca.
2 Busca com Informação
A Busca com Informação utiliza a definição do problema bem como o
conhecimento específico do problema (informações do problema) para efetuar as
buscas, este método, não procura a melhor solução é sim uma boa ou apenas alguma
solução.
Portanto a Busca com Informação utiliza o conhecimento específico para as
tomadas de decisão, ou seja, a escolha do próximo nó a ser expandido, isso não
garante encontrar uma solução nem ao menos uma solução ótima mais na maioria das
vezes consegue acelerar o processo.
Ex: perder uma chave e se recordar da ultima vez que utilizou ela para começar a
procurar.
3 Heurística
Problemas intratáveis ou difíceis de se obter uma solução ótima são casos da
aplicação de algoritmos de heurística. Pode-se dizer que é um algoritmo que pode
produzir um bom resultado, ou até mesmo obter a solução ótima, mas pode
também não produzir solução alguma ou uma solução que está distante da solução
ótima, assim ele gerasoluções aproximadas dentro de um limite, afim de mostrar
qualidade nos resultados.
4. 4
Trabalhamos com algoritmos de heurística quando se diz respeito ao consumo
de tempo e não ter uma grande quantidade de recursos para encontrar soluções de
boa qualidade.
Definimos alguns casos e exemplos de heurística para melhor entendimento:
●
Problema da subida da encosta ou Hill Climbing:é uma estratégia que foi
baseada na Busca em Profundidade, que liga a ideia de atingir o objetivo com
o menor custo ou menor número de regras. A ideia é, empregando uma
ordenação total ou parcial do conjunto de estados, é possível dizer se um estado
sucessor leva para mais perto ou para mais longe da solução. Assim o algoritmo
de busca pode preferir explorar em primeiro lugar os estados que levam para
mais perto da solução.
●
Há duas variações do método: a Subida de Encosta SIMPLES e a Subida de Encosta
PELA TRILHA MAIS ÍNGREME.
●
Subida de encosta simples: vai examinando os sucessores do estado atual e segue
para o primeiro estado que for maior que o atual.
●
Subida de encosta pela trilha mais íngreme: Examina todos os sucessores do estado
atual e escolhe entre estes sucessores qual é o que está mais próximo da solução.
● Caixeiro Viajante:
● Problema das cores do mapa:
Se assemelha com o “tentativa e erro”.
4 Busca A*
É a forma mais conhecida de busca pela melhor escolha, avalia os nós
combinando g(n), o custo para alcançar cada nó , e h(n), o custo para ir do nó até o
objetivo: f(n) = g(n) + h(n). (RUSSEL, 2004)
5. 5
Sendo assim g(n) trata-se do caminho a ser percorrido do nó inicial até o nó n
sendo este o nó atual e h(n) refere-se ao caminho a ser percorrido do nó n até o nó
objetivo, desta forma f(n) caracteriza pela soma do caminho a ser percorrido para se
chegar ao nó n com o caminho a ser percorrido do nó n até chegar o objetivo da busca
onde é estimada a solução de custo maís baixo passando por n.
O algoritmo de Busca A* visa experimentar primeiro o nó com menor valor de
g(n) + h(n), esta estratégia poderá resultar em um algoritmo ótimo e completo, desde
que a função heurística h(n) satisfaça certas condições, a busca A* será ao mesmo
tempo completa e ótima.
Segundo RUSSEL(2004), A* será ótima se for usada com BUSCA-EM-ÁRVORE
e se h(n) for uma heurística admissível, isto é, desde que h(n) nunca superestime o
custo para alcançar o objetivo. Heurística admissíveis são otimistas por natureza , pois
imaginam que o custo da resolução do problema seja menor do que ele é na realidade.
Tendo em vista que g(n) nunca irá superestimar o custo verdadeiro de uma solução
passando por n.
Se h(n) for sempre uma subestimativa da distância de um nó a um nó
objetivo, então o algoritmo A* será ótimo: é garantido encontrar o
caminho mais curto até um estado objetivo. A* é descrito como sendo
otimamente eficiente, no sentido de que, para encontrar o caminho até o
nó objetivo, ele expandirá o mínimo de caminhos possível. Mais uma vez,
essa propriedade depende de h(n) ser sempre um subestimativa.
(COPPIN, 2012)
A* será completo apenas se:
● a árvore a ser percorrida tiver um fator finito de ramificação;
● não contiver um caminho de custo finito com um número de nós infinitos;
● se o grafo a ser percorrido for localmente finito, ou seja, deve possuir um fator
finito de ramificações;
● e todo arco entre dois nós do grafo tiver um custo diferente de zero.
6. 6
5 Busca Gulosa
A busca gulosa pela melhor escolha tenta expandir o nó mais próximo à meta,
na suposição de que isso provavelmente levará a uma solução rápida segundo Russel,
2004, ou seja, o algoritmo se dirige ao nó cuja medida reta até o destino proposto seja
o menor entre todos os nós isso supostamente levaria o algoritmo a um caminho mais
próximo.
Busca gulosa é uma variação do algoritmo A*, na qual g(nó) é zerada, de
tal modo que apenas h(nó) é utilizada para avaliar caminhos apropriados.
Deste modo, o algoritmo sempre seleciona o caminho que tenha o menor
valor heurístico ou distância estimada (ou custo) até o objetivo.(COPPIN,
2012)
No entanto a distância reta entre um nó a outro pode não ser a distância exata a
ser percorrida o que faz com que a solução encontrada pelo algoritmo de Busca Gulosa
não seja uma solução ótima uma vez que a distância a ser percorrida possa ser maior
que a distância das retas.
6 Minimax
É um método usado na Teoria da Decisão, Teoria dos Jogos, Estatística e
Filosofia para minimizar a perda máxima possível.(CALADO, 2008/2009)
O minimax é um recurso para minimizar a perda máximapossível. Sendo
considerado como a maximização do ganho mínimo. Avaliando a árvore de jogos,
pode-se assumir que o computador esteja tentando maximizar alguma pontuação que o
oponente esteja tentando minimizar.
O Algoritmo Minimax é usado para identificar os bons movimentos. Tendo a
disponibilidade de uma adequada função estática de avaliação que seja capaz de
fornecer uma pontuação geral para uma dada posição. Assim ao aplicar o Minimax o
avaliador estático será utilizado apenas nas folhas e os valores das folhas serão
7. 7
filtrados, subindo a árvore, para pegar o melhor caminho que o computador possa
atingir.
O algoritmo minimax calcula a decisão minimax a partir do estado
corrente. Ela utiliza uma computação recursiva simples dos valores
minimax de cada estado sucessor, implementando diretamente as
equações da definição. A recursão percorre todo o caminho descendente
até as folhas da árvore, e depois os valores minimax são propagados de
volta pela árvore, à medida que a recursão retorna.
O algoritmo minimax executa uma exploração completa em profundidade
da árvore de jogo. Se a profundidade máxima da árvore é m e existem b
movimentos válidos em cada ponto, a complexidade de tempo do
m
m
algoritmo minimax é O(b ). A complexidade de espaço é O(b )para um
m
algoritmo que gera todos os sucessores de um vez ou O(b )para um
algoritmo que gera um sucesso de cada vez.(RUSSEL, 2004)
O Algoritmo Minimax um procedimento recursivo direto, que usa por base dois
procedimentos auxiliares, específicos do jogo, o gerador de movimento e a avaliação
estática.
O procedimento minimax precisa de três parâmetros para ser iniciada.
- Posição do Tabuleiro.
- Atual profundidade da busca.
- Jogador que realizara a jogada.
Sendo assim uma função recursiva, a profundidade atual é a mais comumente
utilizada para o encerramento. É possível utilizar diversos modos: limitar o
procedimento através do número de nós gerado, através do tempo estipulado, ou até
que a busca ache um movimento que não seja ruim não precisa ser o melhor
movimento. Como em qualquer partida, existe o fator do tempo do relógio, que varia
muito conforme a ocasião. Assim foi feito o mecanismo de cotas de tempo para que o
tempo seja processado e administrado do melhor modo como se fosse um humano.
Podendo estipular o tempo do jogo e assim feito uma estimativa do tempo de cada
jogada. Durante a execução, quando a cota de tempo é ultrapassada, a estrutura é
retornada e o movimento com a melhor contagem até então é realizado.
8. 8
O procedimento minimax traz como resultado a estrutura que contém o valor do
caminho escolhido e o caminho em si, com o primeiro elemento, que representa o
melhor movimento a partir da posição atual. Se estiver dentro da cota de tempo, uma
camada da arvore é gerada, chamando a função de geração de movimento e atribuindo
como nós sucessores a lista que for retornada. Casa não haja sucessores, então não
há mais movimento a fazer. Retorna a estrutura. Se a lista de sucessores não estiver
vazia, então cada elemento é examinado através da função de avaliação estática, que
retornara o valor de cada nó, sendo guardado o registro do melhor elemento.
Como o Procedimento Minimax, tem um caminho que é explorado até o onde o
tempo permitir, muito caminhos podem surgir sem necessidade. Através de algoritmos
de busca fazendo algumas alterações no algoritmo Minimax para que isso não ocorra.
Alguns dos algoritmos de busca:
● Cortes Alfa-Beta- Técnica de manutenção de dois valores limites
para os nós, modificando, dessa forma, a estratégia de ramificar e
limitar utilizada no Minimax
● Busca de Quiescência- Consiste em uma busca adicional, que
tenta solucionar o problema de respostas incertas que podem ser
dadas pela função de avaliação caso se pare de aprofundar em
uma árvore não estável.
● Busca de Consistência- Consiste em uma busca de quiescência
que generaliza a busca de captura, frequentemente usada em
programas de xadrez. Expande nós que não são consistentes.
● Busca Secundária- Aumentando a precisão do procedimento
Minimax através da conferência dupla em determinada parte da
árvore.
● Movimentos Livrescos- A utilização de movimentos livrescos nas
sequências iniciais e finais em alguns jogos, combinada com a
utilização do procedimento Minimax, fornece um exemplo de como
o conhecimento e a busca podem ser combinados num único
programa e produzir resultados mais eficazes do que quando
aplicados isoladamente.
9. 9
● Busca Racional- Fundada na teoria da decisão, a ideia é analisar
matematicamente as decisões tomadas por um algoritmo de busca
para que sejam tomadas da melhor maneira possível.
10. 10
7 Anexo I
7.1 Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012
7.1.1
O problema do Metrô de Paris
“Suponha que queremos construir um sistema para auxiliar um
usuário do metrô de Paris a saber o trajeto mais rápido entre a estação
onde ele se encontra e a estação de destino. O usuário tem um painel
com o mapa, podendo selecionar a sua estação de destino.
O
sistema então acende as luzes sobre o mapa mostrando o melhor trajeto
a seguir (em termos de quais estações ele vai atravessar., e quais as
conexões mais rápidas a fazer – se for o caso).
Considere que:
• A distância em linha reta entre duas estações quaisquer é
dada em uma tabela. Para facilitar a vida, considere apenas 4 linhas do
metrô.
• A Velocidade média de um trem é de 30km/h;
• Tempo gasto para trocar de linha dentro de mesma estação
(fazer baldeação) é de 4 minutos.”(NICÁCIO, 2012)
11. 11
Fonte: http://www.acso.uneb.br/marcosimoes/Disciplinas/UNEB/TEI3/Arquivos/MetroParis.pdf
“No problema do metrô de Paris, adotamos como representação do Estado o seguinte conjunto
de informações:
• O número da estação de metrô
• A linha a qual esta estação pertente
• informação sobre baldeação – informações sobre as linhas de metrô que passam pela estação, quando
esta estação dá acesso a mais de uma linha de metrô.
12. 12
A informação sobre baldeação é importante porque informa ao agente de busca quando é
possível trocar de linha de metrô, assim como também ajuda na formação da função heurística, visto que
a realização de baldeação de linha pode ser mais custoso em um determinado ponto do caminho, mas
nada impede que o caminho de menor custo seja justamente o caminho que utilize baldeações.
Alguns exemplos da representação de um estado seriam:
• E = (1, azul, null) – representando a estação UM que pertence à linha azul e não possui opção de
baldeação.
• E = (4, azul, azul-verde) – representando a estação QUATRO, que pertence à linha Azul e possui
baldeação com a linha verde.
• E = (4, verde, azul-verde) – representando a estação QUATRO, que pertence à linha Verde e possui
baldeação com a linha azul.
Observe que cada estação que possui opção de baldeação pode ser representada de duas
formas diferentes, dependendo do caminho percorrido pelo agente. Pela ótica do agente de busca, se
ele está percorrendo a linha azul em busca da estação 8 (linha verde ou amarela) e alcança a estação 4,
naturalmente ele entenderá que essa estação pertence à linha que ele vem percorrendo (linha azul).
Uma vez estando na estação 4-azul, o agente pode modificar seu trajeto para a estação 4-verde.
Toda vez que o agente realizar uma ação onde ele não muda de estação, mas muda de linha, dizemos
que o agente realizou uma ação de baldeação.
Ações do agente
Neste contexto, o agente pode realizar as seguintes ações:
• Ir(estacao)
• Baldear(Estação)
Resultado da busca
Utilizamos o algoritmo A* (A Estrela) para a busca do estado alvo. Para demonstração,
escolhemos a estação 1 como estado inicial e a estação 14 como estado final.
Como o algoritmo A* exige a utilização de funções heurísticas, precisávamos representar, em
alguma estrutura de dados, as informações fornecidas pela lista através da tabela de distâncias e do
mapa do metrô. No programa, portanto, todas essas informações necessárias estão à disposição em
uma classe chamada ModeloMetro.java, utilizando o padrão de projeto singleton.”(NICÁCIO, 2012))
13. 13
8 Bibliografia
CALADO
CARLOS,
Luís,
et
al
.Algoritmo
MiniMax.
Disponível
em:<http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMENTOS/Alunos_MiniMax.pdf>
2008/2009. Acesso em: 04/09/2013.
COPPPIN, Ben; Inteligência Artificial. Editora: LTC - Livros Técnicos e Científicos
Editora LTDA 2012. 628p.
NICÁCIO, Jalves Mendonça; MIRANDA, SunnyKelma Oliveira; PINTO, Fernando
Antonio
Dantas
Gomes,
Disponível
em:
<http://jalvesnicacio.wordpress.com/2012/03/25/algoritmo-a-a-star-e-busca-emlargura/> Publicado em : 25 março 2012 . Acesso em: 17/09/2013
LIMA, Edirlei Soares de. Inteligência Artificial – Resolução de Problemas por Meio
de
Busca.
Disponível
em:
<http://edirlei.3dgb.com.br/aulas/ia_2012_2/IA_Aula_03_Busca_2012.pdf> Acesso em:
31/08/2013.
RIZZI, Claudia Brandelero, Inteligência Artificial – Busca com informação e
exploração. Disponível em: <http://www.inf.unioeste.br/~claudia/aula2203_heu1.pdf>
25/03/2013, Acesso em : 31/08/2013.
RUSSELL, Stuart ; NORVIG, Peter. Inteligência Artificial. 12ª Tirgagem.
Elsevier 2004. 1021 p.
Editora: