ARTIGOS
Resolução de equações booleanas: aplicação a um problema de decisão empresarial qualitativa
Walter Del Picchia
Professor-adjunto do Departamento de Engenharia de Eletricidade da Escola Politécnica da Universidade de São Paulo. Formado em engenharia eletrônica pela Escola Politécnica da USP. Livre-docente pelo Departamento de Engenharia de Eletricidade da EPUSP
Este artigo tem dupla finalidade: a) mostrar como problemas lógicos podem ser equacionados em termos das equações booleanas; b) apresentar um processo original de resolução dessas equações, o algoritmo resto-quociente, ou algoritmo RQ.
O método de resolução apresentado é resultado de trabalhos desenvolvidos no Departamento de Engenharia de Eletricidade da Escola Politécnica da USP, trabalhos que deram origem a artigos enviados para publicação no exterior.1 1 Del Picchia, W. & Martins, W. W. The numerical transform. Part I: Basis, the numerical transform. Part II: Simplification of boolean functions, the numerical transform. Part in: Resolution of boolean equations, repository system. IEEE transactions on computers. Números R72-78, R72-176, R72-177, submetidos aos IEEE Transactions on Computers; e Del Picchia, W. A numerical algorithm for the resolution of boolean equations. IEEE transaction on computers. 1974.
Sendo este um trabalho de divulgação, o método será descrito sem excessiva preocupação de rigor; contentar-nos-emos em mostrar como as equações podem ser formuladas e resolvidas.
1. PROBLEMA LÓGICO
Nosso problema-exemplo é o seguinte:2 2 Ledley, R. S. Digital computer and control engineering. New York, McGraw-Hill, 1960
A junta de diretores de certa firma manufatureira reuniu-se para decidir sobre a política de seus futuros negócios à luz de seus objetivos. Eles discutiram as relações entre dinheiro gasto em propaganda, o preço das mercadorias manufaturadas, a percentagem das comissões dos vendedores e as possíveis mudanças para um tipo mais aperfeiçoado de seus produtos, e também os vários efeitos que suas atitudes teriam no lucro total da firma e na quantidade do produto vendido. Os objetivos da firma foram claramente definidos: a) obter grande lucro (responsabilidade assumida pelos diretores); b) vender grandes quantidades de artigos manufaturados, para levar a operação da fábrica à sua máxima capacidade possível. Todos eles concordaram nos cinco pontos seguintes:
a) se a política da empresa for ou aperfeiçoar o produto, ou cortar anúncios onerosos, ou pagar aos vendedores uma comissão mais elevada ou elevar o preço das mercadorias vendidas a varejo, com a venda de um pequeno número de artigos, em qualquer desses casos, então o lucro será pequeno;
b) se grandes somas forem gastas em propaganda, sem alteração no tipo do produto , ou se houver mudança para um tipo mais aperfeiçoado e redução na dotação para propaganda, então não haverá simultaneamente um grande volume de vendas e grandes lucros;
c) se a firma tiver grande lucro ou se seu volume de vendas for elevado, então o preço dos artigos no varejo será baixo e o gasto em propaganda elevado; ou então o preço da venda a varejo será baixo com uma pequena dotação para propaganda, e haverá uma mudança para um.melhor tipo de produto sem uma baixa comissão para os vendedores;
d) se o preço da venda a varejo for baixo, se não houver corte na despesa para propaganda, e se houver comissões elevadas para os vendedores, ou se o preço de venda e as comissões forem baixos com uma mudança para aperfeiçoar o produto, então uma grande quantidade de artigos será vendida;
e) se houver um grande gasto em propaganda, com uma mudança para um produto aperfeiçoado, mas com o preço de venda conservado baixo e com muitos artigos vendidos, então haverá um lucro elevado.
Pede-se, com essas regras gerais como guia, qual deverá ser a política de tomadas de decisões da diretoria para se atingir os seguintes objetivos:
a) obter grande margem de lucro;
b) obter grande volume de vendas;
c) obter simultaneamente grande lucro e grande volume de vendas?
2. CÁLCULO DAS PROPOSIÇÕES E ÁLGEBRA BOOLEANA
Para equacionar nosso problema necessitamos introduzir alguns conceitos.
O exposto é um problema de cálculo das proposições e pode ser equacionado com auxílio da álgebra booleana de dois valores.
A álgebra booleana de dois valores é definida sobre um conjunto A de dois elementos e apresenta três operações (+, · ,' ) adiante definidas. Essas operações devem obedecer certas propriedades para obtermos uma álgebra booleana de dois valores definida sobre o conjunto A. 3 3 Eldon, J. Whitesitt. Boolean algebra and its applications. Addison-Wesley, Publ., 1961.
Notaremos os dois elementos do conjunto A com os símbolos 1 e 0. Portanto, A = (1,0) = conjunto formado pelos elementos 1 e 0.
As operações + , · , ' sobre (1,0) obedecem às seguintes tabelas (a e b representam elementos de A, e podem tomar os valores 1 ou 0) :
Todas as possíveis combinações de 0 e 1 (valores de a e b) estão nas tabelas citadas.
No caso do cálculo das proposições, obtemos uma álgebra booleana de dois valores definindo:
A = (V, F) = conjunto formado pelos elementos "proposição verdadeira" e "proposição falsa"
V = proposição verdadeira
F = proposição falsa.
Temos:
A operação + sobre 1,0 é a operação ou sobre V, F
A operação sobre 1,0 é a operação e sobre V, F
A operação sobre 1,0 é a operação não sobre V, F
Desse modo, associando V com 1, F com 0, ou com + , e com ·, não com ', obtemos as seguintes versões das tabelas de +, · , ' vistas:
Por exemplo, nestas tabelas se lê:
Se X for uma proposição falsa e Y verdadeira (X = F e Y = V), temos:
- a proposição composta X ou Y é verdadeira
- a proposição composta X e Y é falsa
- a proposição composta não X é verdadeira.
Este último caso traduz-se por: "a negação do falso é a verdade".
Utilizando os conectivos ou, e, não repetidamente podemos formar proposições compostas bem mais complexas, e por meio das tabelas citadas, usadas sucessivamente, podemos obter o valor (V ou F) das proposições compostas construídas.
Por conveniência de notação, em lugar de V, F, ou, e, não, vamos usar de agora em diante os símbolos 1,0 , + , · ,' , respectivamente (as duas notações são equivalentes).
Desse modo, a proposição composta "o sol é redondo, e a lua não é azul ou é amarela" se escreve: x · (y' + z)
com: x = o sol é redondo
y = a lua é azul
z = a lua é amarela.
Igualmente a frase "ter lucro alto ou diminuir o número de vendedores é equivalente a diminuir a produção e não gastar mais em propaganda com um aumento no número de vendedores" se escreve:
a + b' = C · d' · b
com: a = ter lucro alto
b = aumentar o número de vendedores
c = aumentar a produção
d = gastar mais em propaganda.
Nesses exemplos, os valores possíveis para cada variável são só dois; supusemos, por exemplo, que só é possível aumentar ou diminuir a produção e, desse modo, "aumentar a produção" é a negação de "diminuir a produção", e vice-versa.
Apresentamos, a seguir, uma tabela de "traduções" de expressões da língua portuguesa, nas expressões correspondentes, escritas na notação vista anteriormente (x, y são proposições).
Nesta tabela há duas novidades que necessitam de explicação:
I) x ou y (exclusivo): em nossa linguagem temos dois tipos de ou, o ou inclusivo (ou a, ou b, ou ambos) e o ou exclusivo (ou a ou b, mas não ambos). Numa frase, às vezes, é difícil determinar qual dos ou's estamos usando; outras vezes, a determinação é feita pelo sentido. Por exemplo, na frase "o professor entrou na classe pela porta da direita ou pela porta da esquerda", o ou é exclusivo, pois o professor pode ter entrado pela porta da direita ou (exclusivamente) pela porta da esquerda. Prova-se que "x ou (exclusivo) y" é equivalente a "x e não y, ou (inclusivo) não x e y" (ou seja, x · y' + x' · y).
II) x implica y: identicamente, prova-se que "x implica y" é equivalente a "não x ou y" (ou seja x y é equivalente a x' + y).
3. FUNÇÕES BOOLEANAS
Antes de resolver o problema apresentado no item 1, necessitamos de mais alguns conceitos.
Função booleana de N variáveis é uma correspondência entre cada uma das 2N possíveis combinações de valores 0,1 das variáveis a, b, c, . . . n, com um só dos valores 0 ou 1. Essa correspondência é apresentada por meio da "tabela das combinações", vista adiante.
Para N = 3 variáveis uma possível função de a, b, c é a função z, especificada pela tabela seguinte (as combinações abe são dispostas em ordem de 000 a 111).
A seqüência 1 1 0 0 0 1 1 0 (que é a coluna da direita lida de baixo para cima), desde que se especifique a ordem das variáveis, define completamente a função z. Essa seqüência, junto com N (número de variáveis), e as variáveis abe, na ordem utilizada na tabela, recebe o nome de tramformada numérica4 4 Del Picchia, W. & Martins, W. W. op. cit. e foi a criação desse conceito5 5 Martins, W. W. 1967. Escola Politécnica da USP. que possibilitou a dedução do algoritmo resto-quociente que veremos adiante. Por simplicidade, toda vez que nos quisermos referir àquela seqüência proveniente da tabela da função z, notaremos "Jz". Portanto, no exemplo, Jz = 1 1 0 0 0 1 1 0.
Um modo usual de representar uma função booleana é a notação de Caldwell, que especifica as posições dos 1's na seqüência Jz.
No exemplo dado, temos 1's nas posições 7, 6, 2, 1. Na notação de Caldwell escreveríamos:
z = Σ (7, 6, 2, 1)
Observe-se que da notação de Caldwell podemos facilmente determinar Jz e tendo-se Jz podemos determinar facilmente a notação de Caldwell da função.
Outro modo usual de representar uma função é a forma algébrica; nesse caso, a função se escreve:
z = a' · b' · c + a' · b · c' + a · b · c' + a · b · c =
= b · c' + a · b + a' · b' · c
A primeira expressão é obtida diretamente da tabela, e a segunda é deduzida da primeira por manuseio algébrico.6 6 Eldon, J. Whitesitt. op. cit.
Dando a a, b, c os valores da tabela de combinações, linha por linha, e efetuando as operações de acordo com as tabelas de +, · , ' , obtemos a coluna z.
Passar da notação algébrica de z para Jzchama-se "transformar z", e passar de Jz para a notação algébrica chama-se "antitransformar Jz" e há métodos próprios para as duas operações.
4. RESOLUÇÃO DO PROBLEMA
Em primeiro lugar, vamos escrever o sistema de equações que traduz o problema proposto e transformá-lo numa só equação equivalente ao sistema.
Sejam as proposições:
A - gastar muito em propaganda
B - melhorar o tipo de produto
C - ter alto preço de venda a varejo
D - pagar altas comissões de vendas
X - ter alto lucro
Y - ter alto volume de vendas.
O leitor poderá verificar, consultando o item 2, que as cinco afirmações ("verdades") do problema se escrevem:
I) (B + A' + D + C) · y x '
II) A · B' + A' · B (X · Y)'
III) X + Y - AC' + A' · B · C · D'
IV) A · C' · D + B · C · D' -- Y
V) A · B · C · Y -X
Como sabemos, "x y" (implicação) é equivalente a "x' + y". Como as afirmações do problema são admitidas verdadeiras (base do problema), escreveremos x' + y = 1. Aplicando essa igualdade às implicações citadas, por manuseio das expressões, vem:
I) Y + A · B' · C · D' + X' = 1
II) A' · B' + A · B + X' + Y' = 1
III) X' · Y' + A · C' + A' · B · C' · D' = 1
IV) C + A' · D + B' · D' + Y = 1
V) A' + B' + C + Y' + X = 1
Se temos várias expressões iguais a 1, a expressão obtida pelo produto (operação ) de todas expressões entre si, igualado a 1, é equivalente às expressões originais dadas.
Assim, chamando de P, Q, R, S, T às expressões à esquerda nas igualdades I, II, III, IV, V, respectivamente, obtemos:
P · Q · R · S · T = 1
Efetuando o produto obtemos uma função de X, Y, A, B, C. D que chamaremos de w (X, Y, A, B, C, D).
Portanto: w (X, Y, A, B, C, D) = P · Q · R · S · T = 1
A função w é chamada função equivalente ao sistema e pode ser expressa na notação de Caldwell. Em geral, o produto pode ser mais facilmente efetuado com auxílio da transformada numérica (TN) : obtém-se a TN de w, e a partir da mesma obtém-se a notação de Caldwell de w.
No exemplo dado, efetuando o produto obtemos, para a equação equivalente:
w (X, Y, A, B, C, D) = Σ (61, 60, 40, 20, 24, 20, 15, 14, 11, 10, 8, 7, 6, 5, 3, 2, 1, 0)
Os detalhes dessa multiplicação serão omitidos aqui, por não serem essenciais à continuação do artigo.
Ainda, o problema pede (ver o item 1) :
a) X em função de A, B, C, D
b) Y em função de A, B, C, D
c) X · Y em função de A, B, C, D
Em seguida veremos como se determinam os itens a), b) e c).
5. ALGORITMO RQ
Apresentaremos o algoritmo à medida que o aplicarmos na resolução do problema proposto.
No exemplo proposto, temos N = 6 variáveis e desejamos duas dessas variáveis (X e Y) em função das outras 4 (2 variáveis dependentes e 4 independentes). Chamando de j o número de variáveis dependentes, vem:
I) Dividem-se os números da notação de Caldwell de w por 2N-1 = 26-2= 16, obtendo-se quocientes q e restos r:
Por exemplo, 61 ÷ 16 = 3, com resto 13.
II) Ordenam-se os quocientes q de acordo com os restos r correspondentes (r vai de 0 a 2n-j-1, que é igual a 15).
III) Determinam-se todas as combinações de q's, tomando um só q para cada r, na ordem r = 2n-j-1 a r = 0 (são as várias seqüências de números que se obtêm, lendo-se a coluna da direita da tabela anterior de baixo para cima).
a) (0 0 3 3 0 0 1 2 0 0 0 1 0 0 0 0)
b) (0 0 3 3 0 0 1 1 0 0 0 1 0 0 0 0)
c) (0 0 3 3 0 0 1 0 0 0 0 1 0 0 0 0)
IV) Cada solução para X, Y (variáveis dependentes) é obtida construindo, para cada combinação citada, uma matriz cujas colunas são os números da combinação dada expressos em base 2, de cima para baixo:
Por exemplo, na solução do item a), o terceiro número é 3, o qual em base 2 é 11.
Seja a primeira solução:
X = 0 01 1 0 0 0 1 0 0 0 0 0 0 0 0
7 = 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0
Tais seqüências são o Jx de X e o JY de Y (ver .item 3). Antitransformando obtemos:7 7 Del Picchia, W. & Martins, W. W. op. cit.
Do mesmo modo obtemos para as outras soluções
Como o problema pede também X · Y = f (A, B, C, D), efetuando o produto obtemos:
Neste exemplo, as três soluções a, b, c de X · Y coincidem entre si.
6. INTERPRETAÇÃO DOS RESULTADOS
Em cada solução encontrada, atribuindo às variáveis independentes A, B, C, D valores desejados e efetuando as operações + , · , ' indicadas, obtemos os correspondentes valores de X e Y, variáveis dependentes. Por exemplo, na solução a), do item 5 para A = 1, B = 0, C = = 0 e D = 1 obtemos:
X = 1·0·(0)' + 1·(0)' · (1)' = 1·0·1 + 1·1·0 = 0+0=0
Y = 0·(0)'·(1)' + 1·(0)'·1 + 1·0·(0)' = 0·1·0 + 1·1·1 + 1·0·1 = 0 + 1 + 0=1
Portanto, se fizermos
A = 1, ou seja, gastarmos muito em propaganda
B = 0, ou seja, não melhorarmos o tipo do produto
C = 0, ou seja, não termos alto preço de venda a varejo
D = 1, ou seja, pagarmos altas comissões de vendas
então teremos:
X = 0, ou seja, não teremos alto lucro
Y = 1, ou seja, teremos alto volume de vendas.
Do exame das expressões áe X e Y podemos deduzir os valores que devem ser atribuídos a A, B, C e D para acarretar X = 1, Y = 1, ou X · Y = 1 (X= 1 e Y= 1 simultaneamente).
Temos:
De (1), X = A · B · C' + A · C · D', vemos que A=1, B=1 e C= 0 (com D qualquer) acarretam X=1, ou que A=1, C=0, D=0 (com B qualquer), também acarretam X=1.
Portanto "teremos alto lucro" se "gastarmos muito em propaganda", "melhorarmos o tipo do produto" e "não tivermos alto preço de venda a varejo", ou se "gastarmos muito em propaganda", "não tivermos alto preço de venda a varejo" e "não pagarmos altas comissões de vendas".
Desse modo vemos que cada termo de X = A · B · C' + A · C · D' nos fornece uma alternativa para obter X=1, ou seja, para "ter alto lucro".
Aplicando essas conclusões a (2), Y = B · C · D' + A · C' · D + A · B · C', concluímos que a solução a) nos fornece três alternativas para obter Y=1, ou seja, "termos alto volume de vendas":
1ª alternativa: B = 1, C= 0 e D = 0 (com A qualquer)
2ª alternativa: A = 1, C = 0 e D = 1 (com B qualquer)
3ª alternativa: A = 1, B = 1 e C = 0 (com D qualquer).
Note-se que valores de A, B, C e D, que acarretam X = 1 na solução a) podem não acarretar Y = 1 na mesma solução, e vice-versa.
Se desejarmos obter X · Y = 1 (X=1 e Y=1 simultaneamente), devemos examinar a expressão (4), X · Y = A · B · C', da qual se conclui que: "teremos alto lucro" e "alto volume de vendas" simultaneamente se "gastarmos muito em propaganda", "melhorarmos o tipo do produto" e "não tivermos alto preço de venda a varejo"; D pode ser qualquer, ou seja, podemos pagar ou não altas comissões de vendas, que o resultado será o mesmo.
A análise que fizemos para a solução a) pode ser repetida para as outras soluções b) e c), levando a outros valores de A, B, C e D que acarretam X=1, Y=1 ou X · Y = 1.
Note-se que cada solução, a), b) ou c), deve ser estudada isoladamente, como fizemos com a solução a). Não é permitido, por exemplo, utilizar a expressão (1) para obter X, juntamente com a expressão (3) para obter Y.
Por exemplo, A=1, C=0 e D=0 (com B qualquer) acarretam X=1 se usarmos a expressão (1). Esses mesmos valores acarretam Y=1, se utilizarmos a expressão (3), porém a conclusão que A=1, C=0 e D=0 (com B qualquer) acarretam X=1 e Y=1 é incorreta.
O algoritmo RQ aqui apresentado é facilmente programável em computadores, permitindo o manuseio de expressões com grande número de variáveis. Esse algoritmo já foi implementado em computador, com sucesso, fornecendo as soluções algébricas, a partir do sistema inicial fornecido também em forma algébrica.
- 2 Ledley, R. S. Digital computer and control engineering. New York, McGraw-Hill, 1960
- 3 Eldon, J. Whitesitt. Boolean algebra and its applications. Addison-Wesley, Publ., 1961.
Datas de Publicação
-
Publicação nesta coleção
13 Ago 2013 -
Data do Fascículo
Ago 1974