160 likes | 237 Views
This work explores the computational complexity of autonomous methods for computer behavior. It discusses operational constraints, heuristics, and the challenges of configuration management. Presented by Cristian Stroparo and Aurélien Coget, it aims to inspire future research in autonomous computing.
E N D
CI365 On The Complexity of Determining Autonomic Policy Constrained BehaviourSobre a Complexidade de Determinação de Política Autônoma de Comportamento Restrito Apresentado por: Cristian Stroparo Aurélien Coget Bacharelado em Ciência da Computação 27/10/2008
Roteiro Introdução e Motivação Comportamento dos Computadores Configuração Complexidade Algorítmica Complexidade de Operações
Introdução: Objeto de estudo. Metas. • Motivação: Por quê? Incentivar trabalhos futuros.
Meta da Computação Autônoma:Permitir operação sem intervenção humana. Objeto de estudo: complexidade/custo computacional dos métodos autônomos. Referência: Modelo de operações convergentes cfengine. Muitas medidas podem ser feitas: Numero de linhas de código. Tempo projetando/planejando. Ciclos CPU (foco principal). Memória.
Motivação • Modelos existentes envolvem problemas NP-difíceis e PSPACE. • Soluções: • Restringir domínio do problema (autonomia) para alternativa com solução de custo polinomial. • Heurística e aproximações. • Existem poucos trabalhos recentes que associam teoria de complexidade com gerenciamento autônomo. • Portanto, o presente trabalho visa servir como motivação a trabalhos futuros.
Configuração Estado complexo, possivelmente distribuído. Σ= {0,1} Mas há diversos níveis de codificação. Mudança de estado – operadores: Criar... Apagar... Alterar... ... atributos de objetos gerenciados. Estes objetos podem ser entidades de sistemas de arquivos, bases de dados relacionais etc.
Configuração • As mudanças de estado têm de ser previsíveis e confiáveis, conforme as políticas estabelecidas. • Para tal, incluir certas propriedades aos operadores de mudança de estado: • Idempotência: Repetição não altera mais, após primeira aplicação - f(f(x)) = f(x) • Convergência a um ponto fixo: a primeira aplicação da operação leva ao resultado especificado na política, independente do estado inicial. • Injetividade: inverso é único (permite rollback’s).
ComplexidadeAlgorítmica • Qual o custo para uma mudança simples?Linear quanto aos valores na entrada, a substituir. • E se levar em conta valores corretos e a determinação da implementação?A complexidade cresce de uma mudança simples para uma busca em um conjunto potencialmente enorme de operações possíveis. • Classes de complexidade: • Tempo: P e NP • Espaço: LINSPACE e PSPACE (LIN contido em P).
ComplexidadeAlgorítmica • “Sabemos como implementar o software gerenciador de configuração?” é a questão relevante e não o custo temporal. • Dificuldade administrativa: Determinar a configuração correta, satisfazendo as restrições de política de maneira eficiente. • Em geral, problemas de configuração alfabética já são NP-hard. • B4: mais de 10^19 operadores. • B8: mais operadores que partículas elementares no universo.
ComplexidadeAlgorítmica • Necessidade: linguagem que expressa operadores em Bn de forma conveniente. • Expressão de operador e = <α1, α2, ..., αn>, αi é expr. booleana. Nas expr.’s booleanas da sequência são permitidas apenas as variáveis x1, x2, ..., xn. • Notação: [[e]] é o operador sobre Bn, definido por e. • [[e]](b), b em Bn, é um valor também em Bn. • Suponha b em B4 tal que b = 0111, então: b1 = 0, b2 = 1, b3 = 1, b4 = 1 (DEF bi) • [[e]](b), valor em Bn, é definido pela expr. “e” e em cada uma das exp. booleanas αi, xi=bi(DEF bi), i=[1..n].
ComplexidadeAlgorítmica • 4 problemas principais nas operações de gerenciamento: • IDM. Entrada: uma expr. de operador e.Questão: [[e]] é idempotente? [[e]]( [[e]](x) ) = [[e]](x) ? • INJ. Entrada: uma expr. de operador e.Questão: [[e]] é injetora? [[e]](x)≠[[e]](y) se x≠y? • CON. Entrada: uma expr. de operador e. Questão: [[e]] é convergente? Existe k natural tal que [[e]]^(k) (x) = [[e]]^(k+1) (x) ? • CONx. Entrada: par <e,b>, e exp. de op., e b em Bn.Questão: [[e]] é convergente em b? Existe k natural tal que [[e]]^(k) (b) = [[e]]^(k+1) (b) ?
ComplexidadeAlgorítmica • Foco: CON. Uma exp. de operador “e” é convergente? • [[e]](x) é meta de política para toda configuração inicial x?SE sim ENTÃO problema foi solucionado com [[e]]SENÃO problema não solucionado com [[e]]
Complexidadede Operações • SAT intratável. IDM e INJ redutíveis (polinomial) a SAT.Então IDM e INJ são, no mínimo, também intratáveis.Heurísticas ou limitação de escopo são necessárias. • Problemas PSPACE-hard (espaço) geralmente muito mais difíceis que problemas NP-hard (tempo) e fora do alcance de algoritmos de tempo polinomial. • CONx é PSPACE-hard. • CON parece ser mais difícil que CONx, mas pode não ser. • Não foi possível provar que CON é PSPACE-hardnem que NÃO é PSPACE-complete (se pertence a NP). • Problema em aberto – interessante para teóricos de complexidade.
Conclusões • Indicação do que pode ser conseguido através destas investigações apresentadas. • Ponto de partida para trabalhos inter-disciplinares futuros. • Quando usar heurísticas. Tais heurísticas são o caminho a ser tomado. • Computação autônoma: semelhança com autômatos e existência de operadores com propriedades especiais (IDM,INJ,CON) possibilitam a implementação automática das politicas
Conclusões • Problemas PSPACE e NP-Hard.Isso quer dizer: sem esperanças?Resposta: Não! O cfengine* mostra que não. Ele mostra que se deve limitar o escopo ou as pretenções a algo com solução barata/viável. • Em contra-posição, não é aconselhável busca com força-bruta em uma wish-list genérica, por exemplo. * - Um sistema de gerenciamento autônomo bastante utilizado