Additional implications? #20
Replies: 3 comments 1 reply
-
The hope was that such inferences would be able to identify some variables that were not inferred from the current method, enabling the identification and separation of additional connected components. However, I implemented the above checks and was unable to find any additional variable assignments beyond those that were already inferred, for any of the crease patterns in my test set. :( That said, there are still cases where independent components are not separated by the current algorithm. Consider the following crease pattern. There are three sets of variables, each with two valid assignments, whose choice of assignment are independent from one another, resulting in The current algorithm removes variables from the graph after they have been assigned, but my guess is that it is possible to identify and remove some constraints from the graph, even if they are still connected to some unassigned variables, as long as they no longer constrain those variables. |
Beta Was this translation helpful? Give feedback.
-
I have finally figured out how to remove redundant constraints to make the above example separable! First, I note that transitivity constraints are very weak, only limiting triplets of faces from having a cyclic order, which does not occur very often. However, there can be That said, many transitivity constraints may be implied by other constraints and can be removed. For example, currently, flat-folder removes transitivity constraints that are directly implied by taco-tortilla or taco-taco constraints. Specifically:
Interestingly, there are even more transitivity constraints that can be implied by groups of taco-tortilla constraints, which, when removed, may disconnect the constraint graph even further (as is the case in the above example).
In particular, if you apply this transitivity removal rule repeatedly to the constraint graph for the example above, the unassigned part of the constraint graph is no longer fully connected, and decomposes into 3 independently assignable components, each admitting 2 valid states as desired. This filter should hopefully significantly reduce the number of transitivity constraints that need to be considered, and hopefully speed up state solving for many examples. Currently, the easiest place to add this filter is at the same place we are currently filtering transitivity constraints (at the end of
I'm not sure by how much this will decrease the size of the constraint graph, but because this filter could in theory remove |
Beta Was this translation helpful? Give feedback.
-
Implemented in commit d7d1cf2. |
Beta Was this translation helpful? Give feedback.
-
After initial crease assignment and implications, there may be a way to infer more variables:
v
v'
is implied with:v
, it is a contradiction the opposite assignment ofv
can be inferredv
,v'
can be inferred as that valuev
,v
andv'
are linked (i.e., if one is assigned, the assignment of the other is also known)Perhaps can use these links to order which variables to guess first, guessing variables in larger linked components first.
Beta Was this translation helpful? Give feedback.
All reactions