Notes on temperature programming: unique assembly
verificationDays 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 ›
x0
x0
x0
*
x0
BL
x1
xn-1
Xn-1
xn-1
TL
*
TL
TL
*
* C0BL C0 C1C0
C0
Cm-1 BRCm-1
Cm-1
*BR
*
SATT*
*
TL T T
OK
T T FT F FF F F
OK
F F
0
*
*
xi
*
0xi
1
*
*
xi 1xi
OK
Cj
0xi 0xi
If xi = 0 Cj true
OK
OK
Cj
1xi 1xi
If xi = 1 Cj true
OK
Cj
Cj
1xi 1xi
Otherwise
Cj
Cj
Cj
0xi 0xi
Otherwise
Cj
OK
OK
0xi 0xi
OK
OK
OK
1xi 1xi
OK
Cj Cj
1xi
0xi
BEFORE: solve 3SAT
x0
x0
x0
*
x0
BL
x1
xn-1
Xn-1
xn-1
TL
*
TL
TL
*
* C0BL C0 C1C0
C0
Cm-1 BRCm-1
Cm-1
*BR
*
SATT*
*
TL T T
OK
T T FT F FF F F
OK
F F
0
*
*
xi
*
0xi
1
*
*
xi 1xi
OK
Cj
0xi 0xi
If xi = 0 Cj true
OK
OK
Cj
1xi 1xi
If xi = 1 Cj true
OK
Cj
Cj
1xi 1xi
Otherwise
Cj
Cj
Cj
0xi 0xi
Otherwise
Cj
OK
OK
0xi 0xi
OK
OK
OK
1xi 1xi
OK
Cj Cj
0xn-1
Modified 3SAT solving tile set
*
*1xn-1
0xi 1xi
Tile complexity• The previous tile set is called Tφ
• |Tφ | = O(m + n)• It can be created in time O(m + n)
An example…
T SAT
φ = (x0 V x1 V ¬x2) Λ (x0 V ¬x1 V x2) Λ (¬x0 V x1 V ¬x2)
1
C1
*
C0 OK
*
x0
*
* C0 *
‹ 4 ›
x1
x2
C1 C2
*
*
0
T T T
OK
OK
OK
OK
C1
1 OK
T SAT
0
C1
*
C0 OK
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T T T
OK
OKOK0 OK
C0 OK
T SAT
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T T T
OKOK0 OK
OKOK
OK OK C2
C2
T
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T F F
OKOK0
C0
C0
C1
C1
C1
OK
OK
T
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OKOK0
OKOK
OK OK
OK
OK
C2
T T SAT T
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T
OKOK1
OKOK
OK
T T SAT
C0 C1 OK
C0
T
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OK1
OK
OK
T
OK
OK
C2
C2
C2
FT
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OK1
OK
OK
T
OK
OK
C2OK OK
OK
OK
T SAT
T SAT
φ = (x0 V x1 V ¬x2) Λ (x0 V ¬x1 V x2) Λ (¬x0 V x1 V ¬x2)
1
C1
*
C0 OK
*
x0
*
* C0 *
‹ 4, 6 ›
x1
x2
C1 C2
*
*
0
T T T
OK
OK
OK
OK
C1
1 OK
T SAT
0
C1
*
C0 OK
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T T T
OK
OKOK0 OK
C0 OK
T SAT
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T T T
OKOK0 OK
OKOK
OK OK C2
C2
T
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T F F
OKOK0
C0
C0
C1
C1
C1
OK
OK
T
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OKOK0
OKOK
OK OK
OK
OK
C2
T T SAT T
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
0
T
OKOK1
OKOK
OK
T T SAT
C0 C1 OK
C0
T
0
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OK1
OK
OK
T
OK
OK
C2
C2
C2
FT
1
*
*
x0
*
* C0 *
x1
x2
C1 C2
*
*
1
T
OK1
OK
OK
T
OK
OK
C2OK OK
OK
OK
T SAT
φ solvable Tφ does NOT produce a unique assembly
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 3SATAlgorithm Solve-3SAT(φ) // φ is a 3SAT formula with n variables
// and m clauses1. Create a tile set Tφ as previously discussed.2. If Temperature-Programming-Unique-Assembly(Tφ, A0, ‹4, 6›) outputs No then
output Yes.3. 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