Você está na página 1de 8

1

Das aplicaes da lgica na Computao


Bruno Silva Guedes 1 Leonardo Roveda Faganello 2 Matheus de Carvalho Proena3 Thiago Caberlon Santini 4 (artigo escrito para trabalho da disciplina INF05508 Lgica para Computao)

Resumo A lgica possui aplicaes inesperadas em diversas reas da Cincia da Computao. So sobre essas aplicaes que o artigo On the Unusual Effectiveness of Logic in Computer Science versa. A lgica, que teoricamente considerada derivada da Matemtica, encontra muito mais aplicaes prticas na Cincia da Computao, e baseado nos exemplos citados pelo artigo em ingls, resumimos aqui a idia bsica destas aplicaes.

Graduando em Engenharia de Computao Universidade Federal do Rio Grande do Sul E-mail: bsguedes@inf.ufrgs.br
2

Graduando em Engenharia de Computao Universidade Federal do Rio Grande do Sul E-mail: lrfaganello@inf.ufrgs.br

Graduando em Engenharia de Computao Universidade Federal do Rio Grande do Sul E-mail: mcproenca@inf.ufrgs.br
4

Graduando em Engenharia de Computao Universidade Federal do Rio Grande do Sul E-mail: tcsantini@inf.ufrgs.br

Abril de 2008

INF05508 Lgica para Computao

INTRODUO Considerada o Clculo da Cincia da Computao, a lgica desempenhou um papel fundamental no desenvolvimento dessa rea do conhecimento. Desenvolvida fortemente no incio do sculo XX, com o objetivo de formalizar e reunir todo o conhecimento matemtico at ento desenvolvido, a lgica acabou perdendo espao entre os matemticos, aps Gdel demonstrar que a lgica de primeira ordem no era suficiente para demonstrar a completude da Matemtica. Aps a metade do sculo XX, a lgica se desvinculou da matemtica tradicional e seu desenvolvimento est concentrado na sua potencialidade de aplicaes. Do mesmo modo que a matemtica encontrou aplicaes em reas inesperadas nas Cincias Naturais, como Fsica, Biologia, Qumica, a Lgica encontrou amparo na Cincia da Computao, em aplicaes como Complexidade de Algoritmos e Banco de Dados, bases da Teoria da Computao, Teoria dos Tipos, Circuitos Digitais e Lgica Epistmica, outros tpicos fundamentais na Computao. Os tpicos a seguir so baseados no artigo On the Unusual Effectiveness of Logic in Computer Science, escrito por Joseph Halpern, Robert Harper, Neil Immerman, Phokion Kolaitis, Moshe Vardo e Victor Vianu. O artigo foi publicado no The Bulletin of Symbolic Logic, Volume sete, Nmero 2, em junho de 2001.

APLICAES NA TEORIA DE COMPLEXIDADE A computao nos auxilia na resoluo de milhares de tipos de problemas. A forma como um computador resolve problemas se baseia na execuo de um algoritmo previamente pensado por algum ser humano. Como o computador limitado fisicamente, faz sentido prever que um computador leva mais tempo para resolver problemas mais difceis. A medida de dificuldade de um problema est diretamente relacionada com a complexidade do algoritmo que o resolve. Encontrar melhores algoritmos para resoluo de certos problemas sempre foi uma tarefa primordial para o desenvolvimento da Teoria da Computao. A lgica est intimamente ligada criao e desenvolvimento destes algoritmos mais robustos. A aplicao que o artigo cita so os problemas P e NP. Em complexidade, problemas do tipo P so aqueles que podem ser resolvidos em tempo polinomial O(f(n)), onde f(n) uma funo do tipo anxn + an-1xn-1 + ... + a0 (polinmio). J os problemas NP so problemas cujos algoritmos trabalham em tempo superior ao polinomial, geralmente exponencial (algo como O(an), a > 0 por exemplo). Dentro da classe de problemas NP, temos os chamados problemas NPCompletos, que no podem ser reduzidos a problemas do tipo P. Porm, existem certos problemas em NP que podem ser reduzidos a P com alguma manipulao lgica-algbrica. Com o uso da Complexidade descritiva e as Lgicas de Primeira e Segunda Ordem, chega-se ao seguinte corolrio: Corolrio. (P = NP) FO(LFP) = SO, onde LFP um operador de mnimo ponto fixo e FO e SO se referem s lgicas de primeira e segunda ordem, respectivamente. Os problemas que podem ser manipulados dessa maneira podem ser transformados em tempo polinomial em problemas NP-completos. Caso se descubra uma maneira de resolver problemas NP completo em tempo polinomial, ento finalmente teramos uma maneira de resolver todos os problemas em NP em tempo polinomial. Esta questo ainda continua em aberto, e um dos maiores problemas no resolvidos da Cincia da Computao. LGICA EM BANCO DE DADOS O impacto da lgica nos bancos de dados um dos melhores exemplos da efetividade da mesma sobre a cincia da computao. A lgica de primeira ordem

reside no ncleo dos bancos de dados atuais, sendo utilizada desde as linguagens mais bsicas como SQL at algumas mais complexas onde so utilizadas extenses da lgica de primeira ordem junto com a recurso. H trs motivos principais para sua utilizao: 1) - A lgica de primeira ordem possui variveis sintticas de fcil utilizao. 2) - Pode ser implementada usando relaes algbricas, o que representa uma vantagem crucial quando tratamos de uma grande quantidade de dados. 3) - Suas buscas podem demorar tempos constantes para qualquer tamanho do banco de dados se houver paralelismo suficiente. Uma busca que pode ser expressa em uma lgica de primeira ordem pode ser aberta em uma srie de buscas menores, formando assim blocos fundamentais que podem ser usados na busca. Porm est abordagem no satisfatria, pois pode ser muito lenta com o aumento do banco de dados. A abordagem utilizada na prtica envolve relaes algbricas. Em resumo, a lgica de primeira ordem e a relao algbrica expressam a mesma busca. O uso da lgebra de relaes para realizar buscas pode ser implementada usando estruturas de dados chamadas de indexes que permitem acesso rpido aos dados, somando isso a algumas regras de reescrita, a mesma busca, aps reescrita, pode levar apenas n log(n) em vez de n. Como citado antes, buscas usando a lgica de primeira ordem podem ser realizadas com tempo constante independente do tamanho do banco de dados, isto s pode ser realizado graas ao processamento em paralelo, onde mais uma vez a lgebra de relaes nos permite tal feito. Porm necessrio o uso de muitos processadores tornando, por enquanto, invivel o uso de seu potencial mximo. Contudo h algoritmos que so capazes de tirar o mximo de proveito de um grupo de processadores e os processadores usados para realizar operaes algbricas no precisam ser poderosos. Finalizando, a lgica uma ferramenta muito efetiva na rea de banco de dados. A lgica de primeira ordem uma tima base para as linguagens de busca padro devido sua implementao eficiente e seu fcil uso.

TEORIA DOS TIPOS NAS LINGUAGENS DE PROGRAMAO Nas dcadas de 80 e 90, o estudo das linguagens de programao foi revolucionado por uma confluncia de idias da lgica matemtica e filosfica e da teoria da computao: a Teoria dos Tipos. A Teoria dos Tipos, aplicada a um sistema de tipos, impe restries aos programas, prevenindo que ocorram vrios erros, decorridos de falhas na interpretao dos valores, como, por exemplo, aplicar uma funo a um nmero inteiro utilizando valores lgicos. Um sistema de tipo definido da seguinte forma: e : , onde e uma expresso, seu tipo e representa tipos das variveis globais que podem ocorrer em e. Segundo o princpio das proposies como tipos h um isomorfismo entre proposies e tipos, com a propriedade que a deduo natural prova que uma proposio corresponde aos elementos de seu tipo associado. Esse princpio se estende aos conetivos lgicos e quantificadores, incluindo os de segunda ordem ou de ordem maior. Organizar linguagens de programao por estrutura de tipos possui vrios benefcios, como evitar confuses de conceitos distintos, ocorrncia de erros de interpretao, e aperfeioar a eficincia e a integridade do compilador. LGICA EPISTMICA Os estudos da lgica epistmica se iniciaram nos anos 50, mas seu interesse s floresceu mais recentemente, para a implementao em vrios campos da computao, como teoria dos jogos e IA. A chave dessa lgica a conexo entre conhecimento e ao. O que um agente precisa saber sobre a operao de outro agente para realizar sua prpria operao? Um modelo utilizado para isso o seguinte: - Possumos um conjunto de proposies primitivas, onde uma proposio p pertencente a , representa um fato bsico, como por exemplo Est chovendo na Espanha, e um conjunto {1. . . . n} de agentes. - Utilizamos apenas conjunes e negaes, como na lgica proposicional, e operadores modais K1,...Kn, E e C. Dessa forma, Ki lido como Agente i conhece

E lido como Todos conhecem , e C lido como de

conhecimento comum. A semntica dessa lgica, como a de outras lgicas modais, baseada em mundos possveis. VERIFICAO AUTOMATIZADA DE DESIGNS DE SEMICONDUTORES Os circuitos integrados construdos sobre semicondutores esto presentes praticamente na totalidade das interaes tomadas em nosso dia-a-dia. Alm disso, eles passaram a facilitar nossa vida cada vez mais, tornando-se capazes de executar tarefas cada vez mais complexas. Tal capacidade implica no aumento da complexidade do projeto de tais circuitos, que por sua vez acarreta numa cada vez maior dificuldade de desenh-los, fazendo com que os projetistas no sejam capazes de usufruir o total potencial que a tecnologia capaz de oferecer devido grande possibilidade de erro. Para contornar esses problemas, os profissionais da rea implementaram uma srie de mtodos de validao do circuito, que seriam capazes de verificar se o mesmo executa a funo para qual foi projetado, concluindo assim se h erros no projeto ou no. Infelizmente, esse tipo de processo se tornou tambm complexo demais, atingindo o ponto em que a indstria passou a se referir ao problema como crise da validao quando o processo de validao atingiu metade dos recursos para a produo do circuito. Verificao formal um processo matemtico utilizado para verificar o comportamento de um modelo, dado uma especificao inicial. Recentemente, tal tipo de ferramenta era de interesse somente acadmico, mas com a evoluo do problema, passou a ser amplamente utilizado industrialmente. Um dos mtodos mais utilizados a fim de tal prtica a lgica temporal linear (LTL Linear Temporal Logic, em ingls), onde os momentos no tempo so tratados como se houvesse um nico futuro possvel. Em LTL as frmulas so construdas com proposies atmicas, os operadores booleanos usuais e os operadores temporais unrios X (prximo), F (eventualmente) e G (sempre), e o operador temporal binrio U (enquanto). Esses operadores so capazes de modelar uma computao sobre a especificao dada, sendo possvel verificar seu comportamento.

Ferramentas para modelagem e verificao do comportamento dos semicondutores no param em LTL. H muitas outras abordagens lgicas possveis para a resoluo do problema, tendo, todas juntas, mostrado sua capacidade para auxiliar na continuidade da evoluo da rea, resolvendo problemas fundamentais para a computao.

CONCLUSO Os efeitos e aplicaes da lgica sobre a computao se estendem sobre as mais diversas reas da mesma, dos mais altos nveis, como inteligncia artificial, aos mais baixos, como na produo dos circuitos integrados. Assim, fornece no somente uma base slida para a fundamentao do ramo, mas tambm uma poderosa ferramenta para o desenvolvimento do mesmo.