• Nenhum resultado encontrado

An´alise da T´ecnica de Pr´e-Processamento Proposta

4.4

An´alise da T´ecnica de Pr´e-Processamento Pro-

posta

4.4.1

Introdu¸c˜ao

Como detalhado anteriormente, a Vimplic ´e uma ferramenta de pr´e-processamento que deriva informa¸c˜oes redundantes por meio de implica¸c˜oes simples, diretas e indire- tas utilizando a descri¸c˜ao do circuito miter. Para se elaborar uma ferramenta como essa, diversas implementa¸c˜oes diferentes podem ser feitas. Nessa se¸c˜ao s˜ao apresen- tadas observa¸c˜oes experimentais e te´oricas a respeito da ferramenta, que auxiliam o entendimento da heur´ıstica implementada na mesma.

4.4.2

Determina¸c˜ao de Quais Cl´ausulas Derivar e Armazenar

Embora a deriva¸c˜ao de implica¸c˜oes simples, diretas, indiretas e estendidas seja sim- ples, o n´umero total de implica¸c˜oes a serem derivadas em um circuito ´e exponencial em rela¸c˜ao ao n´umero de vari´aveis. Por isso, heur´ısticas devem ser encontradas para determinar o melhor conjunto de cl´ausulas para se derivar e armazenar.

Implica¸c˜oes simples e implica¸c˜oes diretas derivadas da descri¸c˜ao de um circuito por meio de uma ferramenta como a Vimplic tamb´em podem ser diretamente derivadas atrav´es de simples aplica¸c˜oes de Propaga¸c˜ao de Restri¸c˜ao Booleana (BCP, do Inglˆes, Boolean Constraint Propagation), ap´os a convers˜ao do circuito para CNF. Embora es- sas implica¸c˜oes evitem que o BCP fa¸ca alguns assinalamentos durante a resolu¸c˜ao da instˆancia do problema de CEC resultando em uma economia de tempo, o n´umero de implica¸c˜oes (cl´ausulas) derivadas pela ferramenta pode se tornar extremamente ele- vado, deteriorando o desempenho do resolvedor de SAT. Al´em do mais, os resolvedores de SAT atuais geralmente implementam mecanismos de deriva¸c˜ao de implica¸c˜oes muito r´apidos e eficientes. Por esses motivos, a adi¸c˜ao de cl´ausulas geradas por implica¸c˜oes simples e diretas `a f´ormula original de um problema de CEC dificilmente resulta em uma redu¸c˜ao no tempo de resolu¸c˜ao do resolvedor de SAT. ´E bem mais prov´avel que o excesso de tais cl´ausulas reduza o desempenho do resolvedor.

Implica¸c˜oes indiretas, no entanto, tˆem um papel fundamental no aumento de de- sempenho do resolvedor de SAT, j´a que essas implica¸c˜oes n˜ao podem ser encontradas utilizando-se apenas por BCP. Para encontrar tais implica¸c˜oes, o resolvedor de SAT tem que fazer decis˜oes e ainda aplicar o BCP. Dessa forma, quando implica¸c˜oes indire- tas s˜ao adicionadas `as cl´ausulas do circuito original descrito por uma f´ormula em CNF, tais implica¸c˜oes podam o espa¸co de solu¸c˜oes evitando muitas decis˜oes e opera¸c˜oes de BCP; o que reduz significativamente o tempo de resolu¸c˜ao do resolvedor de SAT.

4.4 An´alise da T´ecnica de Pr´e-Processamento Proposta 45

diretas. Arora e Hsiao [AH04] argumentam sobre a grande importˆancia dessas im- plica¸c˜oes para reduzir o tempo de verifica¸c˜ao em problemas de CEC. No entanto, os resultados obtidos no presente trabalho n˜ao est˜ao em total acordo com esse argu- mento. Primeiramente porque, utilizando uma boa parte dos circuitos apresentados no Cap´ıtulo 6, duas vers˜oes de ferramentas foram testadas. A primeira implementava apenas implica¸c˜oes indiretas e a segunda implementava implica¸c˜oes indiretas e esten- didas. Os resultados mostraram que ambas as abordagens s˜ao equivalentes em rela¸c˜ao ao tempo de verifica¸c˜ao.

Al´em desse resultado experimental, uma observa¸c˜ao te´orica auxilia a an´alise de tal argumento. As implica¸c˜oes estendidas podem ser divididas em duas opera¸c˜oes: a deriva¸c˜ao de uma implica¸c˜ao direta de um n´o seguida da deriva¸c˜ao de uma implica¸c˜ao indireta, como descrito na Defini¸c˜ao 12. Portanto, as implica¸c˜oes estendidas tamb´em podem ser derivadas por BCP seguido da deriva¸c˜ao de uma implica¸c˜ao indireta. Por esse motivo, como o BCP j´a ´e implementado no resolvedor de SAT de forma bas- tante eficiente, apenas as implica¸c˜oes indiretas s˜ao respons´aveis por podar o espa¸co de solu¸c˜oes.

4.4.3

M´etodos de Deriva¸c˜ao de Implica¸c˜oes Simples, Diretas

e Indiretas

A ferramenta Vimplic utiliza uma estrutura de dados simples para a deriva¸c˜ao de implica¸c˜oes: o grafo de implica¸c˜oes. Utilizando-se essa estrutura de dados, as im- plica¸c˜oes simples e diretas podem ser derivadas bastando-se apenas percorrer o grafo de implica¸c˜oes e armazenar cada par de v´ertices fonte-destino do caminho encontrado, como definido na Se¸c˜ao 2.4. No entanto, implica¸c˜oes indiretas podem ser derivadas utilizando-se no m´ınimo duas abordagens principais.

A primeira abordagem utiliza um grafo de implica¸c˜oes completo e a lei contra- positiva. Larrabee [Lar92] provou que, se existe um assinalamento em um n´o de um circuito descrito por cl´ausulas em CNF e esse assinalamento satisfaz uma cl´ausula de 3 literais, ent˜ao existem implica¸c˜oes que em sua forma contra-positiva resultam em im- plica¸c˜oes indiretas. Em um grafo de implica¸c˜oes completo, essa situa¸c˜ao ´e representada pela ativa¸c˜ao de um v´ertice AND.

Essa abordagem necessita da aplica¸c˜ao tanto do valor 0 quanto do valor 1 em cada um dos n´os do circuito e, cada vez que um v´ertice AND ´e ativado no grafo de implica¸c˜oes, a implica¸c˜ao contra-positiva de a → b (i.e. ¯b → ¯a) gerada por meio desse v´ertice AND ´e armazenada; onde a ´e o v´ertice inicial e b ´e o v´ertice adjacente ao v´ertice AND.

A segunda abordagem segue exatamente a defini¸c˜ao de implica¸c˜oes indiretas ap- resentada na Se¸c˜ao 2.3 que ´e baseada no procedimento de justifica¸c˜ao. Enquanto a

4.4 An´alise da T´ecnica de Pr´e-Processamento Proposta 46

descri¸c˜ao do circuito ´e percorrida para a gera¸c˜ao do grafo de implica¸c˜oes, os assi- nalamento e as suas respectivas sa´ıdas, que tornam a porta l´ogica n˜ao-justificada, s˜ao armazenados juntamente com o conjunto completo de justifica¸c˜oes, assim como detal- hado na Se¸c˜ao 4.3. Por exemplo, utilizando a Figura 2.3 como referˆencia, pode-se ver que um dos assinalamentos poss´ıveis com o seu conjunto completo de implica¸c˜oes ´e f = 0 juntamente com J = {J1, J2} onde J1 = {d = 1} e J2 = {e = 1} j´a que f = 0 ´e

o assinalamento que torna a porta l´ogica NOR n˜ao justificada. O par (assinalamento)- (conjunto completo de justifica¸c˜oes) ´e armazenado em uma entrada da tabela, assim como explicado na Se¸c˜ao 4.3.

Ap´os criar essa tabela, cada porta l´ogica ´e justificada derivando-se, assim, novas implica¸c˜oes indiretas que s˜ao convertidas em cl´ausulas bin´arias em CNF.

4.4.4

Grafo de Implica¸c˜oes Completo ou Parcial

Para derivar as implica¸c˜oes simples e diretas tanto o grafo de implica¸c˜oes completo quanto o parcial podem ser utilizados, embora seja evidente que o conjunto de im- plica¸c˜oes derivado utilizando cada um deles ´e bem distinto. A partir da Figura 2.6, pode-se observar que metade das arestas e v´ertices est˜ao relacionados com os v´ertices AND; os quais s´o existem em um grafo de implica¸c˜oes completo. Conseq¨uentemente, removendo-se esses v´ertices e arestas o n´umero de implica¸c˜oes que pode ser derivado tamb´em reduzir´a.

A segunda abordagem para derivar implica¸c˜oes explicada na se¸c˜ao anterior ´e direta- mente afetada por essa observa¸c˜ao. Como o conjunto de implica¸c˜oes simples e diretas ´e reduzido, menor ´e o n´umero de interse¸c˜oes entre o conjunto de assinalamentos das justi- fica¸c˜oes, o que resulta em um decr´escimo do n´umero de implica¸c˜oes indiretas poss´ıveis.

4.4.5

Considera¸c˜oes Sobre a Forma de Deriva¸c˜ao de Implica¸c˜oes

Implementada

Como discutido anteriormente, a deriva¸c˜ao de implica¸c˜oes simples e diretas n˜ao ´e com- plexa e nem exige nenhuma considera¸c˜ao especial. Implica¸c˜oes estendidas n˜ao foram implementadas, pois as mesmas n˜ao indicaram nenhum ganho em desempenho em rela¸c˜ao `a utiliza¸c˜ao de somente implica¸c˜oes indiretas. Por isso, as principais con- sidera¸c˜oes sobre a forma de deriva¸c˜ao implementada recaem sobre como derivar im- plica¸c˜oes indiretas.

A vers˜ao inicial da ferramenta Vimplic possu´ıa trˆes m´etodos para a deriva¸c˜ao de implica¸c˜oes indiretas: a deriva¸c˜ao de implica¸c˜oes indiretas atrav´es da lei contra-positiva (ICP), a deriva¸c˜ao atrav´es de justifica¸c˜ao utilizando o grafo de implica¸c˜oes completo (IJC) e a deriva¸c˜ao atrav´es de justifica¸c˜ao utilizando o grafo de implica¸c˜oes parcial (IJP).