Ciência da computação teórica - Theoretical computer science

Uma representação artística de uma máquina de Turing . Máquinas de Turing são usadas para modelar dispositivos de computação em geral.

Ciência da computação teórica ( TCS ) é um subconjunto da ciência da computação geral e matemática que se concentra em aspectos matemáticos da ciência da computação , como a teoria da computação , cálculo lambda e teoria dos tipos .

É difícil circunscrever as áreas teóricas com precisão. A ACM 's Grupo de Interesse Especial em Algoritmos e Teoria Computação (SIGACT) fornece a seguinte descrição:

TCS abrange uma ampla variedade de tópicos, incluindo algoritmos , estruturas de dados , complexidade computacional , paralela e distribuída computação, computação probabilística , computação quântica , autômatos teoria , teoria da informação , criptografia , a semântica do programa e verificação , aprendizado de máquina , biologia computacional , economia computacional , computação geometria e teoria dos números computacionais e álgebra . O trabalho neste campo é freqüentemente distinguido por sua ênfase na técnica matemática e no rigor .

História

Embora a inferência lógica e a prova matemática já existissem, em 1931 Kurt Gödel provou com seu teorema da incompletude que há limitações fundamentais sobre quais afirmações poderiam ser provadas ou refutadas.

Esses desenvolvimentos levaram ao estudo moderno da lógica e da computabilidade e, de fato, ao campo da ciência da computação teórica como um todo. A teoria da informação foi adicionada ao campo com uma teoria matemática da comunicação de 1948 por Claude Shannon . Na mesma década, Donald Hebb introduziu um modelo matemático de aprendizagem no cérebro. Com a montagem de dados biológicos apoiando essa hipótese com algumas modificações, os campos das redes neurais e do processamento paralelo distribuído foram estabelecidos. Em 1971, Stephen Cook e, trabalhando independentemente, Leonid Levin , provaram que existem problemas praticamente relevantes que são NP-completos - um resultado marcante na teoria da complexidade computacional .

Com o desenvolvimento da mecânica quântica no início do século 20, surgiu o conceito de que as operações matemáticas poderiam ser realizadas em uma função de onda de uma partícula inteira. Em outras palavras, pode-se calcular funções em vários estados simultaneamente. Isso levou ao conceito de um computador quântico na segunda metade do século 20, que decolou na década de 1990, quando Peter Shor mostrou que tais métodos poderiam ser usados ​​para fatorar grandes números em tempo polinomial , o que, se implementado, tornaria alguns algoritmos de criptografia de chave pública como RSA_ (cryptosystem) inseguros.

A pesquisa teórica moderna em ciência da computação é baseada nesses desenvolvimentos básicos, mas inclui muitos outros problemas matemáticos e interdisciplinares que foram colocados, conforme mostrado abaixo:

DFAexample.svg Elliptic curve simple.png 6n-graf.svg Wang tiles.svg P = NP  ?
Lógica matemática Teoria dos autômatos Teoria dos Números Teoria dos grafos Teoria da Computabilidade Teoria da complexidade computacional
GNITIRW-TERCES Diagrama comutativo para morfismo.svg SimplexRangeSearching.svg TSP Deutschland 3.png Blochsphere.svg
Criptografia Teoria de tipo Teoria da categoria Geometria computacional Otimização combinatória Teoria da computação quântica

Tópicos

Algoritmos

Um algoritmo é um procedimento passo a passo para cálculos. Algoritmos são usados ​​para cálculos , processamento de dados e raciocínio automatizado .

Um algoritmo é um método eficaz expresso como uma lista finita de instruções bem definidas para calcular uma função . Começando de um estado inicial e entrada inicial (talvez vazio ), as instruções descrevem um cálculo que, quando executado , prossegue através de um número finito de estados sucessivos bem definidos, eventualmente produzindo "saída" e terminando em um estado final final. A transição de um estado para o próximo não é necessariamente determinística ; alguns algoritmos, conhecidos como algoritmos aleatórios , incorporam entrada aleatória.

Teoria dos autômatos

A teoria dos autômatos é o estudo de máquinas abstratas e autômatos , bem como dos problemas computacionais que podem ser resolvidos com eles. É uma teoria em ciência da computação teórica, sob a matemática discreta (uma seção de matemática e também de ciência da computação ). Autômato vem da palavra grega αὐτόματα que significa "ação automática".

A Teoria dos Autômatos é o estudo de máquinas virtuais autônomas para auxiliar no entendimento lógico do processo de entrada e saída, sem ou com estágio (s) intermediário (s) de computação (ou qualquer função / processo).

Teoria da codificação

A teoria da codificação é o estudo das propriedades dos códigos e sua adequação a uma aplicação específica. Os códigos são usados ​​para compressão de dados , criptografia , correção de erros e, mais recentemente, também para codificação de rede . Os códigos são estudados por várias disciplinas científicas - como teoria da informação , engenharia elétrica , matemática e ciência da computação - com o propósito de projetar métodos de transmissão de dados eficientes e confiáveis . Isso normalmente envolve a remoção da redundância e a correção (ou detecção) de erros nos dados transmitidos.

Biologia Computacional

A biologia computacional envolve o desenvolvimento e a aplicação de métodos analíticos e teóricos de dados, modelagem matemática e técnicas de simulação computacional para o estudo de sistemas biológicos, comportamentais e sociais. O campo é amplamente definido e inclui fundamentos em ciência da computação, matemática aplicada , animação , estatística , bioquímica , química , biofísica , biologia molecular , genética , genômica , ecologia , evolução , anatomia , neurociência e visualização .

A biologia computacional é diferente da computação biológica , que é um subcampo da ciência da computação e da engenharia da computação que usa a bioengenharia e a biologia para construir computadores , mas é semelhante à bioinformática , que é uma ciência interdisciplinar que usa computadores para armazenar e processar dados biológicos.

Teoria da complexidade computacional

A teoria da complexidade computacional é um ramo da teoria da computação que se concentra em classificar problemas computacionais de acordo com sua dificuldade inerente e relacionar essas classes entre si. Um problema computacional é entendido como uma tarefa que, em princípio, pode ser resolvida por um computador, o que equivale a afirmar que o problema pode ser resolvido pela aplicação mecânica de etapas matemáticas, como um algoritmo .

Um problema é considerado inerentemente difícil se sua solução requer recursos significativos, qualquer que seja o algoritmo usado. A teoria formaliza essa intuição, ao introduzir modelos matemáticos de computação para estudar esses problemas e quantificar a quantidade de recursos necessários para resolvê-los, como tempo e armazenamento. Outras medidas de complexidade também são usadas, como a quantidade de comunicação (usada na complexidade da comunicação ), o número de portas em um circuito (usado na complexidade do circuito ) e o número de processadores (usado na computação paralela ). Uma das funções da teoria da complexidade computacional é determinar os limites práticos do que os computadores podem ou não fazer.

Geometria computacional

A geometria computacional é um ramo da ciência da computação dedicado ao estudo de algoritmos que podem ser expressos em termos de geometria . Alguns problemas puramente geométricos surgem do estudo de algoritmos geométricos computacionais, e tais problemas também são considerados parte da geometria computacional. Embora a geometria computacional moderna seja um desenvolvimento recente, é um dos campos mais antigos da computação, com uma história que remonta à antiguidade. Um antigo precursor é o tratado de sânscrito Shulba Sutras , ou "Regras do acorde", que é um livro de algoritmos escrito em 800 aC. O livro prescreve procedimentos passo a passo para a construção de objetos geométricos como altares usando uma estaca e corda.

O principal ímpeto para o desenvolvimento da geometria computacional como disciplina foi o progresso em computação gráfica e design e manufatura auxiliados por computador ( CAD / CAM ), mas muitos problemas em geometria computacional são de natureza clássica e podem vir da visualização matemática .

Outras aplicações importantes da geometria computacional incluem robótica (planejamento de movimento e problemas de visibilidade), sistemas de informação geográfica (GIS) (localização geométrica e busca, planejamento de rota), projeto de circuito integrado (projeto e verificação da geometria IC), engenharia auxiliada por computador (CAE) (geração de malha), visão computacional (reconstrução 3D).

Teoria de aprendizagem computacional

Os resultados teóricos em aprendizado de máquina lidam principalmente com um tipo de aprendizado indutivo denominado aprendizado supervisionado. No aprendizado supervisionado, um algoritmo recebe amostras que são rotuladas de alguma forma útil. Por exemplo, as amostras podem ser descrições de cogumelos e os rótulos podem indicar se os cogumelos são ou não comestíveis. O algoritmo pega essas amostras previamente rotuladas e as usa para induzir um classificador. Este classificador é uma função que atribui rótulos a amostras, incluindo as amostras que nunca foram vistas anteriormente pelo algoritmo. O objetivo do algoritmo de aprendizado supervisionado é otimizar algumas medidas de desempenho, como minimizar o número de erros cometidos em novas amostras.

Teoria dos números computacionais

A teoria computacional dos números , também conhecida como teoria algorítmica dos números , é o estudo de algoritmos para realizar cálculos teóricos dos números . O problema mais conhecido na área é a fatoração de inteiros .

Criptografia

A criptografia é a prática e o estudo de técnicas para comunicação segura na presença de terceiros (chamados de adversários ). De modo mais geral, é sobre a construção e análise de protocolos que superam a influência de adversários e que estão relacionados com vários aspectos em segurança da informação , como dados de confidencialidade , integridade de dados , autenticação e não-repúdio . A criptografia moderna cruza as disciplinas de matemática , ciência da computação e engenharia elétrica . As aplicações de criptografia incluem cartões ATM , senhas de computador e comércio eletrônico .

A criptografia moderna é fortemente baseada na teoria matemática e na prática da ciência da computação; algoritmos criptográficos são projetados em torno de suposições de dureza computacional , tornando esses algoritmos difíceis de quebrar na prática por qualquer adversário. É teoricamente possível quebrar tal sistema, mas é inviável fazê-lo por qualquer meio prático conhecido. Esses esquemas são, portanto, denominados computacionalmente seguros; avanços teóricos, por exemplo, melhorias em algoritmos de fatoração de inteiros e tecnologia de computação mais rápida exigem que essas soluções sejam continuamente adaptadas. Existem esquemas de informação teoricamente seguros que provavelmente não podem ser quebrados, mesmo com poder de computação ilimitado - um exemplo é o bloco único -, mas esses esquemas são mais difíceis de implementar do que os melhores mecanismos teoricamente quebráveis, mas computacionalmente seguros.

Estruturas de dados

Uma estrutura de dados é uma maneira particular de organizar dados em um computador para que possam ser usados ​​com eficiência .

Diferentes tipos de estruturas de dados são adequados para diferentes tipos de aplicativos e alguns são altamente especializados para tarefas específicas. Por exemplo, bancos de dados usam índices de árvore B para pequenas porcentagens de recuperação de dados e compiladores e bancos de dados usam tabelas hash dinâmicas como tabelas de pesquisa.

As estruturas de dados fornecem um meio de gerenciar grandes quantidades de dados com eficiência para usos como grandes bancos de dados e serviços de indexação da Internet . Normalmente, estruturas de dados eficientes são essenciais para projetar algoritmos eficientes . Alguns métodos de design formal e linguagens de programação enfatizam as estruturas de dados, ao invés de algoritmos, como o principal fator de organização no design de software. O armazenamento e a recuperação podem ser realizados em dados armazenados na memória principal e na memória secundária .

Computação distribuída

A computação distribuída estuda sistemas distribuídos. Um sistema distribuído é um sistema de software no qual os componentes localizados em computadores em rede se comunicam e coordenam suas ações, passando mensagens . Os componentes interagem entre si para atingir um objetivo comum. Três características significativas de sistemas distribuídos são: simultaneidade de componentes, falta de um relógio global e falha independente de componentes. Exemplos de sistemas distribuídos variar de sistemas baseados em SOA para jogos multiplayer on-line para aplicações peer-to-peer e redes blockchain como Bitcoin .

Um programa de computador executado em um sistema distribuído é chamado de programa distribuído , e a programação distribuída é o processo de escrever esses programas. Existem muitas alternativas para o mecanismo de passagem de mensagens, incluindo conectores do tipo RPC e filas de mensagens . Um importante objetivo e desafio dos sistemas distribuídos é a transparência da localização .

Complexidade baseada na informação

A complexidade baseada em informações (IBC) estuda algoritmos ideais e complexidade computacional para problemas contínuos. IBC estudou problemas contínuos como integração de caminhos, equações diferenciais parciais, sistemas de equações diferenciais ordinárias, equações não lineares, equações integrais, pontos fixos e integração dimensional muito alta.

Métodos formais

Os métodos formais são um tipo particular de técnicas baseadas na matemática para a especificação , desenvolvimento e verificação de sistemas de software e hardware . O uso de métodos formais para projetos de software e hardware é motivado pela expectativa de que, como em outras disciplinas da engenharia, a realização de análises matemáticas adequadas pode contribuir para a confiabilidade e robustez de um projeto.

Os métodos formais são melhor descritos como a aplicação de uma variedade bastante ampla de fundamentos teóricos da ciência da computação, em particular cálculos lógicos , linguagens formais , teoria dos autômatos e semântica do programa , mas também sistemas de tipo e tipos de dados algébricos para problemas na especificação de software e hardware e verificação.

Teoria da informação

A teoria da informação é um ramo da matemática aplicada , engenharia elétrica e ciência da computação que envolve a quantificação da informação . A teoria da informação foi desenvolvida por Claude E. Shannon para encontrar limites fundamentais nas operações de processamento de sinais , como compactação de dados e armazenamento e comunicação confiáveis ​​de dados. Desde o seu início, foi ampliado para encontrar aplicações em muitas outras áreas, incluindo inferência estatística , processamento de linguagem natural , criptografia , neurobiologia , a evolução e função de códigos moleculares, seleção de modelos em estatística, física térmica, computação quântica , linguística , detecção de plágio, reconhecimento de padrões , detecção de anomalias e outras formas de análise de dados .

As aplicações de tópicos fundamentais da teoria da informação incluem compactação de dados sem perdas (por exemplo, arquivos ZIP ), compactação de dados com perdas (por exemplo, MP3s e JPEGs ) e codificação de canal (por exemplo, para Digital Subscriber Line (DSL) ). O campo está na interseção de matemática , estatística , ciência da computação , física , neurobiologia e engenharia elétrica . Seu impacto foi crucial para o sucesso das missões Voyager no espaço profundo, a invenção do CD, a viabilidade dos telefones celulares, o desenvolvimento da Internet , o estudo da lingüística e da percepção humana, a compreensão dos buracos negros , e vários outros campos. Importantes sub-campos da teoria da informação são fonte de codificação , codificação de canal , a teoria da complexidade algorítmica , teoria da informação algorítmica , segurança da informação teórica , e as medidas de informação.

Aprendizado de máquina

O aprendizado de máquina é uma disciplina científica que lida com a construção e o estudo de algoritmos que podem aprender com os dados. Esses algoritmos operam construindo um modelo baseado em entradas e usando isso para fazer previsões ou decisões, ao invés de seguir apenas instruções explicitamente programadas.

O aprendizado de máquina pode ser considerado um subcampo da ciência da computação e estatística . Tem fortes laços com inteligência artificial e otimização , que entregam métodos, teoria e domínios de aplicação para o campo. O aprendizado de máquina é empregado em uma variedade de tarefas de computação em que projetar e programar algoritmos explícitos e baseados em regras é inviável. Os aplicativos de exemplo incluem filtragem de spam , reconhecimento óptico de caracteres (OCR), mecanismos de pesquisa e visão computacional . O aprendizado de máquina às vezes é confundido com mineração de dados , embora isso se concentre mais na análise exploratória de dados. O aprendizado de máquina e o reconhecimento de padrões "podem ser vistos como duas facetas do mesmo campo".

Computação paralela

A computação paralela é uma forma de computação na qual muitos cálculos são realizados simultaneamente, operando com o princípio de que grandes problemas podem frequentemente ser divididos em menores, que são então resolvidos "em paralelo" . Existem várias formas diferentes de computação paralela: nível bit , nível de instrução , dados e paralelismo de tarefas . O paralelismo tem sido empregado por muitos anos, principalmente na computação de alto desempenho , mas o interesse por ele tem crescido recentemente devido às restrições físicas que impedem o escalonamento de frequência . Como o consumo de energia (e consequentemente a geração de calor) pelos computadores se tornou uma preocupação nos últimos anos, a computação paralela se tornou o paradigma dominante na arquitetura de computadores , principalmente na forma de processadores multi-core .

Os programas de computador paralelos são mais difíceis de escrever do que os sequenciais, porque a simultaneidade introduz várias novas classes de possíveis bugs de software , dos quais as condições de corrida são as mais comuns. A comunicação e a sincronização entre as diferentes subtarefas são normalmente alguns dos maiores obstáculos para obter um bom desempenho do programa paralelo.

A aceleração máxima possível de um único programa como resultado da paralelização é conhecida como lei de Amdahl .

Semântica do programa

Na teoria das linguagens de programação , a semântica é o campo que se preocupa com o estudo matemático rigoroso do significado das linguagens de programação . Fá-lo através da avaliação do significado de sintaticamente legais cordas definidas por uma linguagem de programação específica, mostrando o cálculo envolvidos. Nesse caso, em que a avaliação seria de strings sintaticamente ilegais, o resultado seria o não cálculo. A semântica descreve os processos que um computador segue ao executar um programa naquele idioma específico. Isso pode ser mostrado descrevendo a relação entre a entrada e a saída de um programa ou uma explicação de como o programa será executado em uma determinada plataforma , criando assim um modelo de computação .

Computação quântica

Um computador quântico é um sistema de computação que faz uso direto de fenômenos da mecânica quântica , como superposição e emaranhamento , para realizar operações em dados . Os computadores quânticos são diferentes dos computadores digitais baseados em transistores . Enquanto os computadores digitais exigem que os dados sejam codificados em dígitos binários ( bits ), cada um dos quais está sempre em um dos dois estados definidos (0 ou 1), a computação quântica usa qubits (bits quânticos), que podem estar em superposições de estados. Um modelo teórico é a máquina de Turing quântica , também conhecida como computador quântico universal. Os computadores quânticos compartilham semelhanças teóricas com computadores não determinísticos e probabilísticos ; um exemplo é a capacidade de estar em mais de um estado simultaneamente. O campo da computação quântica foi introduzido pela primeira vez por Yuri Manin em 1980 e Richard Feynman em 1982. Um computador quântico com spins como bits quânticos também foi formulado para uso como espaço-tempo quântico em 1968.

Em 2014, a computação quântica ainda está em sua infância, mas experimentos foram realizados nos quais as operações computacionais quânticas foram executadas em um número muito pequeno de qubits. A pesquisa prática e teórica continua, e muitos governos nacionais e agências de financiamento militares apóiam a pesquisa de computação quântica para desenvolver computadores quânticos para fins de segurança civil e nacional, como criptanálise .

Computação simbólica

A álgebra computacional , também chamada de computação simbólica ou computação algébrica, é uma área científica que se refere ao estudo e desenvolvimento de algoritmos e software para manipulação de expressões matemáticas e outros objetos matemáticos . Embora, falando propriamente, álgebra computacional deva ser um subcampo da computação científica , eles são geralmente considerados como campos distintos porque a computação científica é geralmente baseada em computação numérica com números de ponto flutuante aproximados , enquanto a computação simbólica enfatiza a computação exata com expressões contendo variáveis que não qualquer valor dado e, portanto, são manipulados como símbolos (portanto, o nome da computação simbólica ).

Os aplicativos de software que realizam cálculos simbólicos são chamados de sistemas de álgebra computacional , com o termo sistema aludindo à complexidade dos principais aplicativos que incluem, pelo menos, um método para representar dados matemáticos em um computador, uma linguagem de programação do usuário (geralmente diferente da linguagem usado para a implementação), um gerenciador de memória dedicado, uma interface de usuário para a entrada / saída de expressões matemáticas, um grande conjunto de rotinas para realizar operações usuais, como simplificação de expressões, diferenciação usando regra de cadeia , fatoração polinomial , integração indefinida , etc. .

Integração em larga escala

A integração em larga escala ( VLSI ) é o processo de criação de um circuito integrado (IC) combinando milhares de transistores em um único chip. O VLSI começou na década de 1970, quando tecnologias complexas de semicondutores e comunicação estavam sendo desenvolvidas. O microprocessador é um dispositivo VLSI. Antes da introdução da tecnologia VLSI, a maioria dos ICs tinha um conjunto limitado de funções que podiam executar. Um circuito eletrônico pode consistir em uma CPU , ROM , RAM e outra lógica de colagem . O VLSI permite que os fabricantes de IC adicionem todos esses circuitos em um chip.

Organizações

Revistas e boletins informativos

Conferências

Veja também

Notas

  1. ^ "SIGACT" . Recuperado em 19/01/2017 .
  2. ^ "Qualquer algoritmo matemático clássico, por exemplo, pode ser descrito em um número finito de palavras em inglês" (Rogers 1987: 2).
  3. ^ Bem definido em relação ao agente que executa o algoritmo: "Existe um agente computacional, geralmente humano, que pode reagir às instruções e realizar os cálculos" (Rogers 1987: 2).
  4. ^ "um algoritmo é um procedimento para calcular uma função (com respeito a alguma notação escolhida para inteiros) ... esta limitação (para funções numéricas) resulta em nenhuma perda de generalidade", (Rogers 1987: 1).
  5. ^ "Um algoritmo tem zero ou mais entradas, ou seja, quantidades que são fornecidas a ele inicialmente antes de o algoritmo começar" (Knuth 1973: 5).
  6. ^ "Um procedimento que possui todas as características de um algoritmo, exceto que possivelmente carece de finitude, pode ser chamado de 'método computacional'" (Knuth 1973: 5).
  7. ^ "Um algoritmo tem uma ou mais saídas, ou seja, quantidades que têm uma relação específica com as entradas" (Knuth 1973: 5).
  8. ^ É discutível se um processo com processos internos aleatórios (sem incluir a entrada) é um algoritmo. Rogers opina que: "um cálculo é realizado de forma discreta em etapas, sem o uso de métodos contínuos ou dispositivos analógicos ... realizada deterministicamente, sem recorrer a métodos ou dispositivos aleatórios, por exemplo, dados" Rogers 1987: 2.
  9. ^ "Definição de trabalho do NIH de bioinformática e biologia computacional" (PDF) . Iniciativa de Ciência e Tecnologia da Informação Biomédica. 17 de julho de 2000. Arquivo do original (PDF) em 5 de setembro de 2012 . Retirado em 18 de agosto de 2012 .
  10. ^ "Sobre o CCMB" . Centro de Biologia Molecular Computacional . Retirado em 18 de agosto de 2012 .
  11. ^ Rivest, Ronald L. (1990). "Criptologia". Em J. Van Leeuwen (ed.). Manual de Ciência da Computação Teórica . 1 . Elsevier.
  12. ^ Bellare, Mihir; Rogaway, Phillip (21 de setembro de 2005). "Introdução". Introdução à Criptografia Moderna . p. 10
  13. ^ Menezes, AJ; van Oorschot, PC; Vanstone, SA (1997). Handbook of Applied Cryptography . ISBN 978-0-8493-8523-0.
  14. ^ Paul E. Black (ed.), Entrada para estrutura de dados no Dicionário de Algoritmos e Estruturas de Dados . Instituto Nacional de Padrões e Tecnologia dos EUA . 15 de dezembro de 2004. Versão online acessada em 21 de maio de 2009.
  15. ^ Estrutura de dados de entradana Encyclopædia Britannica (2009) Entrada online acessada em 21 de maio de 2009.
  16. ^ a b Coulouris, George; Jean Dollimore ; Tim Kindberg; Gordon Blair (2011). Sistemas Distribuídos: Conceitos e Design (5ª ed.). Boston: Addison-Wesley. ISBN 978-0-132-14301-1.
  17. ^ Andrews (2000) . Dolev (2000) . Ghosh (2007) , p. 10
  18. ^ RW Butler (2001-08-06). "O que são métodos formais?" . Página visitada em 2006-11-16 .
  19. ^ C. Michael Holloway. "Por que os engenheiros devem considerar métodos formais" (PDF) . 16ª Conferência Digital Avionics Systems (27-30 de outubro de 1997). Arquivado do original (PDF) em 16 de novembro de 2006 . Página visitada em 2006-11-16 . Citar diário requer |journal=( ajuda )
  20. ^ Monin, pp.3-4
  21. ^ F. Rieke; D. Warland; R Ruyter van Steveninck; W Bialek (1997). Picos: Explorando o Código Neural . A imprensa do MIT. ISBN 978-0262681087.
  22. ^ Huelsenbeck, JP; Ronquist, F .; Nielsen, R .; Bollback, JP (14/12/2001). "Inferência Bayesiana da Filogenia e seu Impacto na Biologia Evolutiva". Ciência . Associação Americana para o Avanço da Ciência (AAAS). 294 (5550): 2310–2314. Bibcode : 2001Sci ... 294.2310H . doi : 10.1126 / science.1065889 . ISSN  0036-8075 . PMID  11743192 . S2CID  2138288 .
  23. ^ Rando Allikmets, Wyeth W. Wasserman, Amy Hutchinson, Philip Smallwood, Jeremy Nathans, Peter K. Rogan, Thomas D. Schneider , Michael Dean (1998) Organização do gene ABCR: análise do promotor e sequências de junção de emenda, Gene 215 : 1, 111-122
  24. ^ Burnham, KP e Anderson DR (2002) Model Selection and Multimodel Inference: A Practical Information-Theoretic Approach, Second Edition (Springer Science, New York) ISBN  978-0-387-95364-9 .
  25. ^ Jaynes, ET (1957-05-15). "Teoria da informação e mecânica estatística". Revisão física . American Physical Society (APS). 106 (4): 620–630. Bibcode : 1957PhRv..106..620J . doi : 10.1103 / physrev.106.620 . ISSN  0031-899X .
  26. ^ Charles H. Bennett, Ming Li e Bin Ma (2003) Chain Letters and Evolutionary Histories , Scientific American 288 : 6, 76-81
  27. ^ David R. Anderson (1 de novembro de 2003). "Algumas informações sobre por que as pessoas nas ciências empíricas podem querer entender melhor os métodos teóricos da informação" (PDF) . Arquivado do original (PDF) em 23 de julho de 2011 . Página visitada em 2010-06-23 .
  28. ^ Ron Kovahi; Foster Provost (1998). “Glossário de termos” . Aprendizado de máquina . 30 : 271–274. doi : 10.1023 / A: 1007411609915 .
  29. ^ a b C. M. Bishop (2006). Reconhecimento de padrões e aprendizado de máquina . Springer. ISBN 978-0-387-31073-2.
  30. ^ Wernick, Yang, Brankov, Yourganov e Strother, Machine Learning in Medical Imaging, IEEE Signal Processing Magazine , vol. 27, no. 4 de julho de 2010, pp. 25-38
  31. ^ Mannila, Heikki (1996). Mineração de dados: aprendizado de máquina, estatísticas e bancos de dados . Int'l Conf. Gerenciamento de banco de dados científico e estatístico. IEEE Computer Society.
  32. ^ Friedman, Jerome H. (1998). "Mineração de dados e estatísticas: qual é a conexão?". Ciência da computação e estatística . 29 (1): 3–9.
  33. ^ Gottlieb, Allan; Almasi, George S. (1989). Computação altamente paralela . Redwood City, Califórnia: Benjamin / Cummings. ISBN 978-0-8053-0177-9.
  34. ^ SV Adve et al. (Novembro de 2008). "Parallel Computing Research at Illinois: The UPCRC Agenda" Archived 2008-12-09 na Wayback Machine (PDF). Parallel @ Illinois, Universidade de Illinois em Urbana-Champaign. "As principais técnicas para esses benefícios de desempenho - frequência de clock aumentada e arquiteturas mais inteligentes, porém cada vez mais complexas - estão agora atingindo a chamada barreira de energia. A indústria de computadores aceitou que aumentos de desempenho futuros devem vir em grande parte do aumento do número de processadores (ou núcleos ) em uma matriz, em vez de fazer um único núcleo ir mais rápido. "
  35. ^ Asanovic et al. Antiga [sabedoria convencional]: A energia é gratuita, mas os transistores são caros. A nova [sabedoria convencional] é [que] a energia é cara, mas os transistores são "gratuitos".
  36. ^ Asanovic, Krste e outros. (18 de dezembro de 2006). "The Landscape of Parallel Computing Research: A View from Berkeley" (PDF). Universidade da California, Berkeley. Relatório Técnico No. UCB / EECS-2006-183. "Antigo [conhecimento convencional]: Aumentar a frequência do clock é o principal método para melhorar o desempenho do processador. Novo [conhecimento convencional]: Aumentar o paralelismo é o principal método para melhorar o desempenho do processador ... Até mesmo representantes da Intel, uma empresa geralmente associada ao ' maior velocidade do clock é melhor posição, alertou que as abordagens tradicionais para maximizar o desempenho por meio da maximização da velocidade do clock foram levadas ao seu limite. "
  37. ^ Hennessy, John L .; Patterson, David A .; Larus, James R. (1999). Organização e design de computadores: a interface hardware / software (2. ed., 3ª impressão. Ed.). São Francisco: Kaufmann. ISBN 978-1-55860-428-5.
  38. ^ Artigo" Quantum Computing with Molecules " na Scientific American por Neil Gershenfeld e Isaac L. Chuang
  39. ^ Manin, Yu. I. (1980). Vychislimoe i nevychislimoe [ Computable and Noncomputable ] (em russo). Sov.Radio. pp. 13–15. Arquivado do original em 10 de maio de 2013 . Retirado em 4 de março de 2013 .
  40. ^ Feynman, RP (1982). "Simulando física com computadores". International Journal of Theoretical Physics . 21 (6): 467–488. Bibcode : 1982IJTP ... 21..467F . CiteSeerX  10.1.1.45.9310 . doi : 10.1007 / BF02650179 . S2CID  124545445 .
  41. ^ Deutsch, David (06-01-1992). "Computação quântica". Physics World . 5 (6): 57–61. doi : 10.1088 / 2058-7058 / 5/6/38 .
  42. ^ Finkelstein, David (1968). "Estrutura Espaço-Tempo em Interações de Alta Energia". Em Gudehus, T .; Kaiser, G. (eds.). Interações fundamentais em alta energia . Nova York: Gordon & Breach.
  43. ^ "Novo controle de qubit é um bom presságio para o futuro da computação quântica" . Retirado em 26 de outubro de 2014 .
  44. ^ Roteiro da ciência e tecnologia da informação quântica para ter uma ideia de para onde a pesquisa está se encaminhando.
  45. ^ a b c d e A classificação 2007 australiana de conferências TIC arquivadas 2009-10-02 na máquina de Wayback : nível A +.
  46. ^ MFCS 2017
  47. ^ CSR 2018
  48. ^ a b c d e f g h i j A classificação australiana de 2007 de conferências de TIC arquivada em 2009-10-02 na máquina de Wayback : camada A.
  49. ^ FCT 2011 (recuperado em 03/06/2013)

Leitura adicional

links externos