5 research outputs found
Speeding up SOR Solvers for Constraint-based GUIs with a Warm-Start Strategy
Many computer programs have graphical user interfaces (GUIs), which need good
layout to make efficient use of the available screen real estate. Most GUIs do
not have a fixed layout, but are resizable and able to adapt themselves.
Constraints are a powerful tool for specifying adaptable GUI layouts: they are
used to specify a layout in a general form, and a constraint solver is used to
find a satisfying concrete layout, e.g.\ for a specific GUI size. The
constraint solver has to calculate a new layout every time a GUI is resized or
changed, so it needs to be efficient to ensure a good user experience. One
approach for constraint solvers is based on the Gauss-Seidel algorithm and
successive over-relaxation (SOR).
Our observation is that a solution after resizing or changing is similar in
structure to a previous solution. Thus, our hypothesis is that we can increase
the computational performance of an SOR-based constraint solver if we reuse the
solution of a previous layout to warm-start the solving of a new layout. In
this paper we report on experiments to test this hypothesis experimentally for
three common use cases: big-step resizing, small-step resizing and constraint
change. In our experiments, we measured the solving time for randomly generated
GUI layout specifications of various sizes. For all three cases we found that
the performance is improved if an existing solution is used as a starting
solution for a new layout
Kaczmarz Algorithm with Soft Constraints for User Interface Layout
The Kaczmarz method is an iterative method for solving large systems of equations that projects iterates orthogonally onto the solution space of each equation. In contrast to direct methods such as Gaussian elimination or QR-factorization, this algorithm is efficient for problems with sparse matrices, as they appear in constraint-based user interface (UI) layout specifications. However, the Kaczmarz method as described in the literature has its limitations: it considers only equality constraints and does not support soft constraints, which makes it inapplicable to the UI layout problem.
In this paper we extend the Kaczmarz method for solving specifications containing soft constraints, using the prioritized IIS detection algorithm. Furthermore, the performance and convergence of the proposed algorithms are evaluated empirically using randomly generated UI layout specifications of various sizes. The results show that these methods offer improvements in performance over standard methods like Matlab\u27s LINPROG, a well-known efficient linear programming solver
Tiling Algebra for Constraint-based Layout Editing
The constraint-based layout model is a very powerful model to describe a wide range of graphical user interface (GUI) layouts, based on linear constraints. However, the advantages of the constraint-based layout model come at a price: layout designers have to ensure layouts are sound, i.e., they are solvable and items in the layout do not overlap each other. Keeping a layout sound is non-trivial since editing one constraint may have undesirable effects on other constraints.In this article, we propose a new formalism for constraint-basedlayouts which we call a tiling algebra. Editing operations on layouts are specified algebraically, which guarantees that these operations keep a layout sound. We propose to model tiling operations with two operators that are isomorphic cancellative semigroup operators with involution if seen as binary operators. While these semigroup operators alone already cover an interesting subset of layouts, called fragments, we show that there are more involved layouts, such as the pinwheel layout, which cannot be modelled with these operators alone. For this reason we introduce a third operator which is isomorphic to a Boolean conjunction.Our approach helps to describe constraint-based layoutscorrectly and to make layout editing robust. We apply the proposed algebra to two real constraint-basedsystems, which illustrate how it can be used to support sound layout creation and modification