Exploring the Complexity of Satisfiable Boolean Expressions

In summary, the conversation discusses the representation of Boolean expressions and the language consisting of satisfiable Boolean expressions. It is claimed that this language is in NP, and a nondeterministic algorithm is provided to accept it. This algorithm involves guessing a satisfying assignment of 0's and 1's for the variables, substituting them into the expression, and evaluating the result to verify if it has a value of 1. It is stated that this can be done in polynomial time, making it a nondeterministic Turing machine of polynomial time complexity. The details of the algorithm are not fully explained, but the main idea is to choose a sequence of 0's and 1's for the variables, substitute them into the expression, and evaluate the
  • #1
mathmari
Gold Member
MHB
5,049
7
Hey! :eek:

The Boolean expression $(p_1+p_2)*p_3$ can be represented by the string $(1+2)3$, where integer $i$ represents variable $p_i$.

Consider the language $L$ consisting of all strings representing satisiable Boolean expressions (those for which some assignment of $0$'s and $1$;1 to the variables gives the expression the value 1).

We claim that $L$ is in $\mathcal{NP}$.

A nondeterministic algorithm to accept $L$ begins by "guessing" a satisfying assignment of $0$'s and $1$'s to the propositional variables in an input string, if such an assignment exists.
Then, the value ($0$ or $1$) of each variable is substituted for the variable wherever it occurs in the input string.
Some shifting of the string will be needed to close up gaps when the single symbol $0$ or $1$ is substituted for a decimal representationm of a propositional variable.
Then the resulting expression is evaluated to verify that it has the value $1$.
The evaluation can be done in time proportional to its length by a number of parsing algorithms.
Even without using an efficient parsing algorithm, the reader should have a little trouble evaluating a proposition in $O(n^2)$ steps.
Hence there is a nondeterministic Turing machine of polynomial time complexity to accept satisfiable Boolean expressions, and thus the problem of determining whether a Boolean expression is satisfiable is in $\mathcal{NP}$.Could you explain me how we have shown that there is a nondeterministic Turing machine of polynomial time complexity to accept satisfiable Boolean expressions?? (Wondering)

I haven't understood it...
 
Technology news on Phys.org
  • #2
The details are a bit messy, but the idea is the following.

(1) Nondeterministically choose a sequence of $n$ zeros and ones where $n$ is the number of variables in the expression.

(2) Substitute chosen values for variables. The result is an expression containing 0, 1 and operations.

(3) Evaluate the resulting expression.

(4) Accept if the result is 1.

With some handwaving one can show that this requires polynomial time. I recommend understanding this first if you write this algorithm using not a Turing machine, but your favorite programming languages with all data structures (such as trees) and standard functions available.
 

FAQ: Exploring the Complexity of Satisfiable Boolean Expressions

What is a satisfiable boolean expression?

A satisfiable boolean expression is a logical statement that can be either true or false, depending on the values assigned to its variables. It is considered satisfiable if there exists at least one combination of variable values that makes the entire expression evaluate to true.

How is the complexity of satisfiable boolean expressions explored?

The complexity of satisfiable boolean expressions is explored through the use of algorithms and computational methods. These methods involve systematically evaluating different combinations of variable values to determine if the expression is satisfiable or not.

Why is exploring the complexity of satisfiable boolean expressions important?

Understanding the complexity of satisfiable boolean expressions is important because it allows us to analyze and solve problems in various fields such as mathematics, computer science, and artificial intelligence. It also helps us understand the limitations and capabilities of different algorithms and computational methods.

What are some applications of exploring the complexity of satisfiable boolean expressions?

Some applications of exploring the complexity of satisfiable boolean expressions include circuit design, optimization problems, and artificial intelligence. In circuit design, satisfiability testing is used to ensure that a circuit can function correctly under different input conditions. In optimization problems, satisfiability testing helps find the best solution among many possible combinations. In artificial intelligence, satisfiability testing is used to determine if a set of rules or constraints can be satisfied by a given knowledge base.

How does the complexity of satisfiable boolean expressions impact computing power?

The complexity of satisfiable boolean expressions can have a significant impact on computing power. As the number of variables and clauses in an expression increases, the time and resources required to find a satisfiable solution also increase. This can affect the efficiency and speed of algorithms and computational methods used for solving problems involving boolean expressions, ultimately impacting computing power.

Back
Top