Speeding Up SOR and Kaczmarz for Constraint-based GUIs with a Warm-Start Strategy
Noreen Jamil, M. Asif Naeem
Journal of Multimedia Processing and Technologies, Vol. 4, No. 3, 2013.
DOI: 
Link: http://www.dline.info/jmpt/fulltext/v4n3/3.pdf
Abstract:
Many computer programs have graphical user interfaces (GUIs). UI layout supports efficient use of screen real estate. Most GUIs do not have a fixed layout, but are resizable and able to adapt sizes of window, screen and widgets. 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). Another frequently used approach is based on Kaczmarz. Our observation is that a solution after resizing or changing is similar in structure to a previous solution. Thus, we hypothesize that we can increase the computational performance of Kaczmarz and SOR-based constraint solvers if we reuse the solution of a previous layout to warm-start the solving of a new layout. In this article 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.