O documento discute computação em DNA, comparando-a com computação tradicional. Apresenta o experimento pioneiro de Adleman que usou DNA para resolver um problema NP-completo. Também descreve os processos de manipulação do DNA e como a computação em DNA pode resolver problemas de forma mais rápida do que computadores tradicionais.
Os computadores de DNA podem substituir os microprocessadores de silicone no futuro próximo. As moléculas de DNA têm o potencial de executar cálculos mais rapidamente do que os supercomputadores atuais e podem armazenar bilhões de vezes mais dados em um espaço muito menor. Cientistas estão desenvolvendo portões lógicos e biochips de DNA que, quando combinados, podem criar um computador de DNA funcional.
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.
Este documento discute o desenvolvimento de uma solução técnica para monitorar transformadores de distribuição através da medição da temperatura em diversos pontos ao redor do transformador usando sensores. A solução proposta envolve o uso de redes neurais artificiais treinadas com dados de temperatura e umidade para inferir a corrente elétrica circulando no transformador.
O documento introduz os conceitos e operações básicas de algoritmos genéticos, inspirados na evolução biológica. Descreve brevemente o histórico, principais conceitos como cromossomos, genes e população, e as etapas de seleção, cruzamento e mutação. Também apresenta um exemplo de implementação para encontrar o máximo da função f(x)=x2+5.
1. O documento discute circuitos digitais e suas aplicações em telecomunicações. 2. Aborda métodos para detecção e correção de erros em transmissões digitais utilizando dispositivos lógicos programáveis. 3. O objetivo é estudar estas técnicas digitais para melhorar a qualidade e eficiência das telecomunicações.
Este documento descreve um projeto que implementa uma rede neural de Hopfield para reconhecimento de números binários. O sistema é projetado em Java e treina a rede para reconhecer padrões binários de 4 bits, demonstrando sua capacidade de generalizar e recuperar padrões corrompidos.
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas criticas e de recente desenvolvimento. Além das complicações inerentes a área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumenta a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2\% para CRC e 8\% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem se mostrou mais interessante a medida que os processos que exijam tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Os computadores de DNA podem substituir os microprocessadores de silicone no futuro próximo. As moléculas de DNA têm o potencial de executar cálculos mais rapidamente do que os supercomputadores atuais e podem armazenar bilhões de vezes mais dados em um espaço muito menor. Cientistas estão desenvolvendo portões lógicos e biochips de DNA que, quando combinados, podem criar um computador de DNA funcional.
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.
Este documento discute o desenvolvimento de uma solução técnica para monitorar transformadores de distribuição através da medição da temperatura em diversos pontos ao redor do transformador usando sensores. A solução proposta envolve o uso de redes neurais artificiais treinadas com dados de temperatura e umidade para inferir a corrente elétrica circulando no transformador.
O documento introduz os conceitos e operações básicas de algoritmos genéticos, inspirados na evolução biológica. Descreve brevemente o histórico, principais conceitos como cromossomos, genes e população, e as etapas de seleção, cruzamento e mutação. Também apresenta um exemplo de implementação para encontrar o máximo da função f(x)=x2+5.
1. O documento discute circuitos digitais e suas aplicações em telecomunicações. 2. Aborda métodos para detecção e correção de erros em transmissões digitais utilizando dispositivos lógicos programáveis. 3. O objetivo é estudar estas técnicas digitais para melhorar a qualidade e eficiência das telecomunicações.
Este documento descreve um projeto que implementa uma rede neural de Hopfield para reconhecimento de números binários. O sistema é projetado em Java e treina a rede para reconhecer padrões binários de 4 bits, demonstrando sua capacidade de generalizar e recuperar padrões corrompidos.
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas criticas e de recente desenvolvimento. Além das complicações inerentes a área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumenta a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2\% para CRC e 8\% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem se mostrou mais interessante a medida que os processos que exijam tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
T02_LM3: Introdução à algoritmia (2013-2014)Carlos Santos
O documento discute introdução à algoritmia, definindo o que é um programa e o ato de programar. Explica os passos para programar, incluindo definir o problema, escolher uma estratégia, codificar instruções lógicas e testar. Dois problemas de exemplo são apresentados e resolvidos através de algoritmos e programas.
O documento introduz os princípios e aplicações dos algoritmos genéticos, que são algoritmos inspirados na evolução biológica e na genética. Descreve os componentes-chave dos algoritmos genéticos, incluindo a representação cromossômica das soluções, a avaliação de aptidão, a seleção baseada na aptidão e os operadores genéticos como cruzamento e mutação. Aplicações dos algoritmos genéticos incluem otimização de funções matemáticas, problemas de otimização combinatória
O documento apresenta uma ementa de uma disciplina de Arquitetura de Computadores. A ementa inclui tópicos como organização de computadores, sistemas de memória, processadores e arquiteturas. O documento também fornece detalhes sobre critérios de avaliação, aulas, referências bibliográficas e conceitos sobre quantificação de dados e evolução do conceito de máquinas.
Bioinformática com Rosalind utilizando PythonMarcos Castro
O documento discute a plataforma Rosalind para aprendizado de bioinformática através da resolução de problemas bioinformáticos. Apresenta alguns problemas como contar nucleotídeos em DNA, transcrever DNA para RNA, determinar o complemento de uma fita de DNA e traduzir RNA para proteínas. Também discute formatos FASTA, NCBI, BLAST, k-mers e grafos de De Bruijn aplicados em reconstrução de genomas.
O documento discute problemas determinísticos versus não determinísticos e a complexidade de algoritmos. Também explica os conjuntos P, NP e NP-completo e fornece exemplos como a localização de rotas e o problema do caixeiro viajante.
Linguagem c wellington telles - aula 01profwtelles
1) O documento apresenta definições básicas sobre linguagens de programação, tipos de memória e componentes de um computador como barramentos.
2) A linguagem C é classificada como de nível médio e é adequada para programação de microcontroladores. Sua criação esteve ligada ao desenvolvimento do sistema operacional UNIX.
3) São descritos os principais componentes de um programa como entrada e saída de dados, manipulação dos dados e apresentação de resultados.
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...Charles Silva
Este documento descreve um estudo sobre a segmentação automática de imagens bidimensionais de seções transversais do tórax humano obtidas por ressonância magnética. O objetivo é identificar os contornos das regiões do pulmão e cavidades do coração usando algoritmos de processamento de imagens como detecção de bordas, dilatação e erosão. A metodologia propõe tratar os pulmões e coração separadamente usando heurísticas baseadas em suas características anatômicas e de tom de cinza. Os resultados são analis
O documento descreve a história e os conceitos básicos de redes neurais artificiais. Começa com as diferenças entre IA simbólica e conexionista, e continua com o histórico das redes neurais desde os anos 1940. Também explica como neurônios naturais e artificiais funcionam, além de aspectos, aplicações, aprendizado e vantagens/limitações das redes neurais.
O documento apresenta o plano de ensino do curso de Processamento Digital de Sinais ministrado pelo professor Marcelo E. Pellenz na Pontifícia Universidade Católica do Paraná. O curso aborda conceitos teóricos e aplicações práticas de processamento digital de sinais, com ênfase em sistemas de comunicação digital, utilizando simulações no Matlab e implementações em tempo real com um kit DSP.
Este documento fornece um resumo sobre conceitos e técnicas de programação, incluindo:
1) Representação de algoritmos usando pseudocódigo e linguagem natural;
2) Elementos básicos de linguagens de programação como variáveis, constantes, tipos de dados e operadores;
3) Etapas para desenvolver um programa, como formular o algoritmo, codificá-lo e gerar um programa executável.
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"Andrew Edberg
1. O documento apresenta a GPU-NB, uma implementação paralela do algoritmo Naive Bayes usando GPUs para classificação de documentos. 2. Os resultados experimentais mostraram que a GPU-NB foi até 11x mais rápida que a implementação sequencial e paralela em CPU, mantendo a mesma qualidade de classificação. 3. Quanto maior o número de classes, maior o ganho de desempenho da GPU-NB em relação à CPU.
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
Este documento apresenta um algoritmo de reconhecimento facial usando redes neurais MLP. É descrito o processo de extração de características das imagens, treinamento da rede neural e teste do sistema em diferentes configurações, alcançando taxa de acerto de até 98,33%.
O documento discute computação manycore e arquiteturas multicore, explicando porque a programação paralela é importante e como técnicas como OpenMP e Intel Cilk Plus podem ser usadas para dividir tarefas entre múltiplos processadores. É apresentado o conceito de decomposição de dados para escalonar o paralelismo de acordo com o tamanho do problema.
T02_LM3: Introdução à algoritmia (2013-2014)Carlos Santos
O documento discute introdução à algoritmia, definindo o que é um programa e o ato de programar. Explica os passos para programar, incluindo definir o problema, escolher uma estratégia, codificar instruções lógicas e testar. Dois problemas de exemplo são apresentados e resolvidos através de algoritmos e programas.
O documento introduz os princípios e aplicações dos algoritmos genéticos, que são algoritmos inspirados na evolução biológica e na genética. Descreve os componentes-chave dos algoritmos genéticos, incluindo a representação cromossômica das soluções, a avaliação de aptidão, a seleção baseada na aptidão e os operadores genéticos como cruzamento e mutação. Aplicações dos algoritmos genéticos incluem otimização de funções matemáticas, problemas de otimização combinatória
O documento apresenta uma ementa de uma disciplina de Arquitetura de Computadores. A ementa inclui tópicos como organização de computadores, sistemas de memória, processadores e arquiteturas. O documento também fornece detalhes sobre critérios de avaliação, aulas, referências bibliográficas e conceitos sobre quantificação de dados e evolução do conceito de máquinas.
Bioinformática com Rosalind utilizando PythonMarcos Castro
O documento discute a plataforma Rosalind para aprendizado de bioinformática através da resolução de problemas bioinformáticos. Apresenta alguns problemas como contar nucleotídeos em DNA, transcrever DNA para RNA, determinar o complemento de uma fita de DNA e traduzir RNA para proteínas. Também discute formatos FASTA, NCBI, BLAST, k-mers e grafos de De Bruijn aplicados em reconstrução de genomas.
O documento discute problemas determinísticos versus não determinísticos e a complexidade de algoritmos. Também explica os conjuntos P, NP e NP-completo e fornece exemplos como a localização de rotas e o problema do caixeiro viajante.
Linguagem c wellington telles - aula 01profwtelles
1) O documento apresenta definições básicas sobre linguagens de programação, tipos de memória e componentes de um computador como barramentos.
2) A linguagem C é classificada como de nível médio e é adequada para programação de microcontroladores. Sua criação esteve ligada ao desenvolvimento do sistema operacional UNIX.
3) São descritos os principais componentes de um programa como entrada e saída de dados, manipulação dos dados e apresentação de resultados.
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...Charles Silva
Este documento descreve um estudo sobre a segmentação automática de imagens bidimensionais de seções transversais do tórax humano obtidas por ressonância magnética. O objetivo é identificar os contornos das regiões do pulmão e cavidades do coração usando algoritmos de processamento de imagens como detecção de bordas, dilatação e erosão. A metodologia propõe tratar os pulmões e coração separadamente usando heurísticas baseadas em suas características anatômicas e de tom de cinza. Os resultados são analis
O documento descreve a história e os conceitos básicos de redes neurais artificiais. Começa com as diferenças entre IA simbólica e conexionista, e continua com o histórico das redes neurais desde os anos 1940. Também explica como neurônios naturais e artificiais funcionam, além de aspectos, aplicações, aprendizado e vantagens/limitações das redes neurais.
O documento apresenta o plano de ensino do curso de Processamento Digital de Sinais ministrado pelo professor Marcelo E. Pellenz na Pontifícia Universidade Católica do Paraná. O curso aborda conceitos teóricos e aplicações práticas de processamento digital de sinais, com ênfase em sistemas de comunicação digital, utilizando simulações no Matlab e implementações em tempo real com um kit DSP.
Este documento fornece um resumo sobre conceitos e técnicas de programação, incluindo:
1) Representação de algoritmos usando pseudocódigo e linguagem natural;
2) Elementos básicos de linguagens de programação como variáveis, constantes, tipos de dados e operadores;
3) Etapas para desenvolver um programa, como formular o algoritmo, codificá-lo e gerar um programa executável.
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"Andrew Edberg
1. O documento apresenta a GPU-NB, uma implementação paralela do algoritmo Naive Bayes usando GPUs para classificação de documentos. 2. Os resultados experimentais mostraram que a GPU-NB foi até 11x mais rápida que a implementação sequencial e paralela em CPU, mantendo a mesma qualidade de classificação. 3. Quanto maior o número de classes, maior o ganho de desempenho da GPU-NB em relação à CPU.
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
Este documento apresenta um algoritmo de reconhecimento facial usando redes neurais MLP. É descrito o processo de extração de características das imagens, treinamento da rede neural e teste do sistema em diferentes configurações, alcançando taxa de acerto de até 98,33%.
O documento discute computação manycore e arquiteturas multicore, explicando porque a programação paralela é importante e como técnicas como OpenMP e Intel Cilk Plus podem ser usadas para dividir tarefas entre múltiplos processadores. É apresentado o conceito de decomposição de dados para escalonar o paralelismo de acordo com o tamanho do problema.
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação em DNA
1. Computação e DNA
Victor Almeida Schinaider
Hamurabi de Medeiros Araújo
Tchallman Borges Damacena
Wllisses Guerra de Medeiros Júnior
Luan Kelvin Jacob Santos
Vitor Campos
2. Introdução
• Primeiro passo foi dado por Adleman;
• Pesquisas por novas técnicas para resolver determinados problemas,
por meio da computação em DNA;
• Busca por novas técnicas e/ou de desenvolvimento na Computação
em DNA.
3. O DNA
• Citosina (C), Guanina(G), Adenina (A) e
Timina (T).
• Citosina com Adenina, e Guanina com
Timina.
Fitas de DNA
Produzida pelos autores
4. O Computador Elétrico/Eletrônico
• Funcionamento básico da CPU;
• Linguagem de máquina;
• O que são algoritmos?
• Funcionamento de um computador durante a execução de
um algoritmo.
#include <stdio.h>
int main(){
//alocação do espaço na memória
int a, b, c;
printf(“Insira dois valores a serem somados”);
//preenchimento dos espaços alocados
scanf(“%i %i”, &a, &b);
c = a + b;
printf(“O resultado da soma é: %i”, c);
return 0;
}
5. O DNA e a computação
• Processos de manipulação do DNA, para que possa ser usado para
benefício da computação:
• Síntese de Sequências;
• Hibridação;
• Desnaturação de Sequências;
• Polimerização em Cadeia;
• Restrição de Sequências;
• Ligação de Sequências;
• Separação de Sequências.
Disponível em: http://cicascience.blogspot.com.br/2011/10/dna-molecula-da-vida.html
Acesso em 28 de maio de 2012
6. A motivação da computação de
DNA
• Os algoritmos de tempo de execução Polinomial e NP-Completos;
Polinomiais NP-Completos
• Se caracterizam por ter uma • São apenas verificáveis em tempo
entrada n e ter um tempo de polinomial e resolvidos em tempo
execução n^k (n elevado a k). exponencial.
São resolvidos facilmente por
qualquer computador
7. Porquê usar a computação em DNA
para a solução de problemas?
• Com os experimentos de Adleman, observou-se que a computação em DNA
poderia ser uma boa alternativa para a solução dos problemas
NP-Completos.
• O fato de ser possível a execução de várias reações químicas
paralelamente, aumenta consideravelmente a velocidade de execução
dos cálculos.
• Um problema que levaria milhões de anos para ser resolvidos, nos
computadores atuais, leva apenas meses para se chegar a uma solução
com os computadores de DNA.
Gráfico da relação complexidade x tempo
Produzido pelos autores
8. Resultados da Experiência de
Adleman
• Experiência de Adleman do Caminho Hamiltoniano:
Representação gráfica do problema do Caminho Hamiltoniano
Produzido pelos autores
9. Resultados da Experiência de
Adleman
• As dificuldades encontradas para gerar um ambiente propício para que se
possa chegar no resultado esperado, para se adaptar o código necessário;
• Os resultados obtidos.
10. Metodologia
● O trabalho foi desenvolvido a partir do primeiro experimento de computação
de DNA do principal nome desta técnica computacional. Através dos dados
obtidos em seu artigo Molecular Computation of Solutions to Combinatorial
Problems, pudemos avaliar um pouco da força da modelo computacional
utilizado moléculas de DNA. Precisou-se consultar outros teóricos em outras
áreas, como Alberts et al da biologia para estudo do DNA e Reed da
computação para estudo do computador elétrico/eletrônico. Através de todas
as informações obtidas, pode-se traçar um paralelo com a computação atual,
e mostrar as vantagens e desvantagens da técninca de DNA.
12. Referências
ADLEMAN, Leonard M.. Molecular Computation of Solutions to
Combinatorial Problems, Science, [s.l], v. 266, p. 1021-1024, 11 nov. 1994.
ALBERTS, Bruce et al. Molecular Biology of The Cell. 5 ed. New York:
Garland Science, Taylor & Francis Group, 2007. 1.392 p.
KARP, M. Richard. Reducibility Among Combinatorial Problems, 1972.
New York: Plenum Press, 1972.
REED, David. A Balanced Introduction to Computer Science and
Programming, 2ed, …, 2007
T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Algoritmos:
Teoria e Prática.