A complexidade computacional inclui o estudo da complexidade do tempo ou espaço de problemas computacionais. Do ponto de vista da computação móvel, a energia é um recurso computacional muito valioso. Portanto, existe uma adaptação bem estudada das máquinas de Turing que respondem pela energia consumida durante a execução dos algoritmos. Além disso, existem classes de complexidade energética estabelecidas para problemas computacionais?
Referências são apreciadas.
cc.complexity-theory
physics
Mohammad Al-Turkistany
fonte
fonte
Respostas:
Existe uma adaptação bem estudada das máquinas de Turing que respondem pela energia consumida durante a execução de algoritmos? Não!
Mas talvez você possa inventar um. É possível que você possa dividir as etapas da máquina de Turing em reversíveis e não reversíveis (as não reversíveis são onde as informações são perdidas). Teoricamente, são apenas as etapas não reversíveis que custam energia. Um custo de uma unidade de energia para cada bit que é apagado seria teoricamente a medida certa.
Existe um teorema de Charles Bennett de que a complexidade do tempo aumenta no máximo uma constante quando um cálculo é tornado reversível (CH Bennett, Reversibilidade Lógica de Computação ), mas se houver também limites no espaço, a reversibilidade computacional pode resultar em aumento substancial no tempo (referência aqui) . O princípio de Landauer diz que apagar um pouco custa de energia, onde T é temperatura ek é constante de Boltzmann. Na vida real, você não pode chegar nem perto de atingir esse mínimo. No entanto, você pode criar chips que executam etapas reversíveis usando substancialmente menos energia do que eles usam para etapas irreversíveis. Se você der passos reversíveis, um custo de αkTln2 T k α e aos passos irreversíveis um custo de , parece que isso pode dar um modelo teórico razoável.β
Não sei como as máquinas de Turing com algumas etapas reversíveis se relacionam com os chips com alguns circuitos reversíveis, mas acho que vale a pena investigar os dois modelos.
fonte
Ainda não há classes de complexidade de energia, mas definitivamente há muito interesse em estudar como projetar algoritmos que são eficientes em termos de energia em algum modelo. Não estou familiarizado com todo o corpo do trabalho, mas um ponto de entrada é o trabalho que Kirk Pruhs está fazendo em computação sustentável. Kirk é um teórico com experiência em programação e aproximações e recentemente se tornou muito ativo nessa área, portanto sua perspectiva é boa para pessoas algorítmicas.
O argumento de ps gabgoh sobre o princípio de Landauer é bom. Se você quiser aprender mais sobre a relação entre energia e informação, não há fonte melhor do que o livro Demônio de Maxwell .
fonte
Esta não é uma resposta direta, mas existem algumas conexões potencialmente úteis para desenhar / pesquisar programas a serem conduzidos de acordo com o trabalho de Stay e Baez sobre termodinâmica algorítmica: http://johncarlosbaez.wordpress.com/2010/10 / 12 / termodinâmica algorítmica /
Observe, no entanto, que este trabalho não gera consequências físicas reais - mas ilustra uma conexão que é, até agora, puramente matemática.
fonte
Kei Uchizawa e seus co-autores estudam a complexidade energética dos circuitos de limiar. Eles o definem como o número máximo de portas de limiar que emitem 1 sobre todas as entradas possíveis.
Como não se trata de máquinas de Turing, isso não responde à pergunta. Mas espero que os documentos deles dêem algumas idéias. Sua página contém indicadores. http://www.nishizeki.ecei.tohoku.ac.jp/nszk/uchizawa/
fonte
Há alguma justificativa para usar o modelo de memória externa como um modelo de computação com reconhecimento de energia. Paolo Ferragina discutiu isso brevemente em sua palestra convidada na ESA 2010, mas não sei se existem resultados publicados. A idéia básica é que, se o número de E / S dominar o tempo de computação, a energia necessária para essas E / S provavelmente dominará o consumo total de energia.
O relatório do Primeiro Workshop sobre a Ciência do Gerenciamento de Energia continha principalmente perguntas e problemas em aberto. Não sei o que aconteceu no Segundo Workshop , mas as páginas da web informam que haverá uma edição especial de Computação Sustentável dedicada a abordagens teóricas, matemáticas e algorítmicas da computação sustentável.
fonte
Aqui estão algumas / outras referências / ângulos mais recentes sobre essa questão aparentemente profunda com pesquisas em andamento. como indicado por P.Shor, a área até agora parece aguardar uma pesquisa abrangente, padronização e / ou unificação. existem abordagens mais abstratas / teóricas listadas em 1º, seguidas por abordagens mais aplicadas: algoritmos de eficiência energética, medição do uso de energia em dispositivos móveis para classificação, estudo de fatores no VLSI que afetam a complexidade energia / tempo.
Um modelo de complexidade energética para algoritmos, Swapnoneel Roy Atri Rudra Akshat Verma ITCS 2013
Rumo a uma complexidade energética da computação Alain J. Martin, IPL 2001
Complexidade vs Energia: Teoria da Computação e Física Teórica Yuri I. Manin
Rumo a um modelo de complexidade energética para algoritmos Ravi Jain, David Molnar, Zulfikar Ramzan
Algoritmos de eficiência energética Susanne Albers
Yao, FF, Demers, AJ, Shenker, S. Um modelo de agendamento para reduzir a energia da CPU. Em Proceedings of the 36th IEEE Symposium on Foundations of Computer Science (1995), 374-382.
Explorando o consumo de energia de algoritmos de classificação de dados em ambientes embarcados e móveis Christian Bunse Hagen Hoeffner Essam Mansour Suman Roychoudhury
Complexidade de algoritmos no tempo de energia: modelando as compensações do CMOS VLSI (2007) por Brad D. Bingham
fonte
As complexidades de tempo e espaço são independentes do dispositivo. Não vejo uma maneira de tornar independente o dispositivo de complexidade energética.
fonte