210 likes | 303 Views
Notes on temperature programming: unique assembly verification. Days 30 and 31 of Comp Sci 480. The problem. Input: A tile set T, an assembly A and a temperature sequence τ = ‹ τ 0 , τ 1 ›
E N D
Notes on temperature programming: unique assembly verification Days 30 and 31 of Comp Sci 480
The problem • Input: A tile set T, an assembly A and a temperature sequence τ = ‹ τ0, τ1 › • Output: Yes if A is uniquely produced in the temperature sequence τ = ‹ τ0, τ1 › and No otherwise • Restricted to two temperature phases • Just to keep things simple for now • Call this problem: “temperature programming UAV”
Temperature programming UAV • Is this problem easy or difficult? • Easy ≈ there is an efficient (“n-squared time”) algorithm that solves it • Difficult ≈ ONLY exponential time algorithms can solve it • Verifying unique assembly in the aTAM is easy
A difficult problem • The temperature programming UAV is difficult • That is, it’s probably the case that any algorithm that solves it will take exponential time • Let’s prove that it’s (probably) difficult…
Our strategy • Basic idea: Let’s solve 3SAT in the temperature programming model • Then assume there is an efficient algorithm Temperature-Programming-Unique-Assembly that computes the temperature programming UAV problem • We will use this algorithm to design an efficient algorithm for solving 3SAT • Since 3SAT is probably a difficult problem, an efficient Temperature-Programming-Unique-Assembly probably doesn’t exist
Recall 3SAT • Input: • n boolean variables x0, …, xn-1, • m clauses Cj • Each clause is three boolean values OR’d together • A formula φ = C0Λ C1Λ ∙∙∙ Λ Cm-1 • Output: Yes if there is a way to assign boolean values to the variables x0, … xn-1 to solve φ (make it true) and No otherwise • 3SAT is probably a difficult problem • I.e., any algorithm that solves it will probably have exponential running time
The goal • We need a way to take a 3SAT formula φ and turn it into a tile set Tφ such that… • If φ CAN be solved, then we want Tφ to NOT uniquely produce an assembly A in the temperature sequence τ = ‹ τ0, τ1 › • If φ CANNOT be solved, then we want Tφ to uniquely produce A in τ = ‹ τ0, τ1 ›
BEFORE: solve 3SAT * * T F F F SAT TL TL T T T T F F F F F T TL * OK Cj Cj OK xn-1 TL * xn-1 1 * OK OK Cj Cj OK OK 1xi xi 1xi 1xi 1xi 1xi 1xi 1xi 1xi Xn-1 * Cj Cj OK If xi = 1 Cj true Otherwise 0 * OK OK Cj Cj OK OK xi 0xi 0xi 0xi 0xi 0xi 0xi 0xi x0 x1 * * Cj Cj OK x0 0xi x0 If xi = 0 Cj true Otherwise * x0 * * C0 C0 Cm-1 Cm-1 * BL BL C0 C0 C1 Cm-1 BR BR
Modified 3SAT solving tile set * * T F F F SAT TL TL T T T T F F F F F T TL * OK Cj Cj OK xn-1 TL * * xn-1 1 * OK OK Cj Cj OK OK 0xn-1 1xn-1 xi 1xi 1xi 1xi 1xi 1xi 1xi 1xi Xn-1 * Cj Cj OK If xi = 1 Cj true Otherwise 0 * OK OK Cj Cj OK OK xi 0xi 0xi 0xi 0xi 0xi 0xi 0xi x0 x1 * * * Cj Cj OK x0 0xi 1xi x0 If xi = 0 Cj true Otherwise * x0 * * C0 C0 Cm-1 Cm-1 * BL BL C0 C0 C1 Cm-1 BR BR
Tile complexity • The previous tile set is called Tφ • |Tφ | = O(m + n) • It can be created in time O(m + n)
* * * * * * * * T T T T T T T T T T T T T T T F T T T T T F F T T T T T T T T T SAT SAT SAT SAT SAT SAT * * * * * * * * * * * * * * * * * * * * * * * * 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK C1 C2 C1 C1 C1 C1 C2 C1 C2 C2 C2 C2 C1 C2 x2 x1 x0 x1 x1 x0 x1 x2 x0 x0 x2 x2 x2 x1 x0 x2 x2 x0 x0 x1 x1 x1 x0 x2 C0 C0 C0 C0 C0 C0 C0 * * * * * * * * * * * * * * * * C0 C0 C0 C1 C0 C2 C0 C2 C1 C0 C1 C2 C0 C2 C1 C2 C1 C0 C1 C2 C1 C2 C1 C2 * * * * * * * * φ = (x0 V x1 V ¬x2) Λ (x0 V ¬x1 V x2) Λ (¬x0 V x1 V ¬x2) ‹ 4 ›
* * * * * * * * T F T T T T T T T T T T T T T F T T T T T T T T T T T T F T T T SAT SAT SAT SAT SAT SAT * * * * * * * * * * * * * * * * * * * * * * * * 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK C1 C1 C2 C2 C2 C1 C2 C1 C2 C1 C1 C2 C2 C1 x0 x0 x1 x1 x1 x2 x2 x2 x2 x0 x0 x0 x1 x2 x1 x0 x0 x2 x1 x1 x2 x2 x1 x0 C0 C0 C0 C0 C0 C0 C0 * * * * * * * * * * * * * * * * C0 C0 C2 C1 C0 C0 C0 C2 C1 C1 C0 C2 C1 C1 C2 C2 C1 C2 C1 C1 C2 C2 C0 C0 * * * * * * * * φ solvable Tφ does NOT produce a unique assembly φ = (x0 V x1 V ¬x2) Λ (x0 V ¬x1 V x2) Λ (¬x0 V x1 V ¬x2) ‹ 4, 6 ›
What if φ is solvable? • Then some assemblies will be rectangles and maybe some won’t be • Maybe every assembly true/false assignment works, so every assembly is a rectangle • No matter what… a unique assembly will NOT be produced
What if φ is not solvable? • Every true/false assignment does not work • Then all the produced assemblies are missing the upper right corner tile • When the temperature is raised to 6, what happens? • Is a unique assembly produced? • Yes! • The assembly consisting of JUST the seed tile, i.e., A0
Pretend • Pretend there is an algorithm called Temperature-Programming-Unique-Assembly that solves the temperature programming UAV with running time complexity “O(|T|2*|A|2)” • We will build an algorithm to solve 3SAT with running time complexity “O(n2)”
Solve 3SAT Algorithm Solve-3SAT(φ) // φ is a 3SAT formula with n variables // and m clauses • Create a tile set Tφ as previously discussed. • If Temperature-Programming-Unique-Assembly(Tφ, A0, ‹4, 6›) outputs No then output Yes. • If Temperature-Programming-Unique-Assembly(Tφ, A0, ‹4, 6›) outputs Yes then output No. Running time (dominated by): “O(|Tφ|2*|A|2)” = “O(|Tφ|2*|A0|2)” = “O(|Tφ|2*|1|2)” = “O(|Tφ|2) ” = “O((m + n)2)” = “O(n2)”
Contrast • The UAV problem in the two temperature model is difficult • The UAV problem in the single temperature (abstract Tile Assembly) model is easy • Being able to remove tiles during the assembly process is a “powerful” assumption
Another problem • Input: A tile set T, a shape X and a temperature sequence τ = ‹ τ0, τ1 › • Output: Yes if the shape X is uniquely produced in the temperature sequence τ = ‹ τ0, τ1 › and No otherwise • Easy or difficult?
And another problem • Input: A tile set T, an assembly A and a temperature sequence τ = ‹ τ0, τ1 › • Output: Yes if the assembly A is produced in the temperature sequence τ = ‹ τ0, τ1 › and No otherwise • No “uniqueness” • Easy or difficult?
Summary • Multiple temperature model reduces tile complexities • Thin rectangles: • O(N1/k + k) in aTAM to O(log N / log log N) with 1 temperature change in multiple temperature model • Squares: • O(log N / log log N) in aTAM to O(1) tile complexity with O(log N) temperature complexity in multiple temperature model • Bit-flip gadget • No universal shape-builder tile set • E.g., 1xN lines still have tile complexity N in the multiple temperature model – for any temperature sequence • Can build arbitrary shapes with O(1) tile complexity and O(|X|) temperature complexity • Constant scale factor for each shape (scale factor does not depend on the shape) • Bit-flip squares (along with rotated versions thereof) • Difficult to verify whether or not a tile set in the temperature programming model uniquely produces an assembly • Easy in the aTAM