Week 10 Flashcards

1
Q

What is a hard computational problem?

A
  • a problem that we can’t solve in polynomial time complexity
  • we don’t have proof these problems can’t be solved polynomnially but no one has been able to solve this yet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How do we formally represent a computationally hard problem?

A

NP = P or NP != P

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are decision problems?

A
  • a problem that given it’s input, the output that is the answer to this problem is not a solution but an answer of yes or not
  • for example, does this property hold?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a Hamiltonian Cycle problem?

A

we check if a graph has a cycle, where that cycle goes through every vertex in the graph but only once

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the two types of problems?

A
  • Decision problems: where the output is yes or no to some property
  • Optimisation problems: where the answer is the optimal to some property, so either the maximum or minimum of something
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the complexity class P?

A

The set of decision problems that can be solved at worse case in polynomial time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is efficient certification?

A
  • say we have an answer of yes for solving the NP-hard problem in polynomial time then we can check that this answer is optimal/correct against the problem criteria and if it is we say that this subset/answer is a certificate for the decision problem
  • an efficient certification is used to define the class of problems called NP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a boolean circuit?

A

A directed graph where each node is called a logic gate and corresponds to a simple boolean function either AND, OR, NOT
- the incoming edges for a logic gate correspond to inputs for its boolean function and the outgoing edge corresponds to inputs for its boolean function and the outgoing edge corresponds to its output

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Circuit-SAT?

A
  • Given a boolean circuit with a single output node, is there an assignment of values to the inputs so that the output value is 1
  • this problem in the NP class
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the class co-NP?

A

The set of problems NP consists of those that have efficient verification methods for when the answer to a decision problem is yes
- the set co-NP is the set of decision problems where we have a certification of polynomial time but the answer is no

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What does P ⊆ NP ∩ co-NP mean?

A

It defines polynomials as belonging to the intersection of NP and co-NP problems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How do we define a problem as NP-Hard?

A

We say a decision problem is NP-hard if every other problem L in NP is polynomial time reducible to M
- the problem M is so hard that if I can solve problem M efficiently in polynomial time then I can solve every problem from the NP class in polynomial time due to polynomial time reduction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is NP-completeness?

A
  • if a problem M is NP-hard and it belongs to the NP class iteself then M is also NP-complete
  • NP-complete problems are some of the hardest problems in the NP class
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Give an example of an NP-hard and NP-complete problem?

A

Circuit-SAT problem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is true if L1 -> poly L2 and L2 -> poly L3?

A
  • Transitivity is allowed meaning
  • L1 -> poly L3
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How do we show if a problem is NP-complete?

A
  • we show it belongs to the class NP by finding an efficient certifier for it
  • we take another known NP-complete problem and demonstrate a polynomial time reduction from it to our problem and if that problem reduces to our problem then by transitivity, all other NP problems are polynomial time reducible to our problem
17
Q

What is Conjunctive Normal Form (CNF)?

A
  • formed of a collection of clauses combined using the operator AND ∧ combined with using the operator OR ∨
  • the line above means NOT
18
Q

What is CNF-SAT?

A

is there an assignment of boolean values to its variables so that formula evaluates to 1

19
Q

What is 3-SAT?

A

where in each clause of the statement there are 3 literals

20
Q

What is integer programming?

A
  • a collection of inequalities with an objective function
21
Q

What is subset sum?

A
  • Is there a non-empty subset T belongs to S such that the sum of elements in T = 0
22
Q

What is the partition problem?

A
  • related to the subset sum problem. This problem is where given a set of positive integers, does there exist a partition of this set into two sets, such that the sum elements in s1 = sum of elements in two
23
Q

what are all examples of NP-complete problems?

A
  • Circuit-SAT
  • Subset Sum
  • Partition problem
  • Integer programming
  • CNF-SAT
  • 3-SAT
  • 3-COL
  • K-COL (if k >=3)
24
Q

What is the 3-COL graph problem?

A
  • is G 3-colourable? is there an assignment of labels 1-3 of the vertices in G, so that any two vertices that are adjacent are assigned different labels?