An Efficient Method For Solving Highly Anisotropic Elliptic Equations Solving elliptic PDEs in more than one dimension can be a computationally expensive task. For some applications characterised by a high degree of anisotropy in the coefficients of the elliptic operator, such that the term with the highest derivative in one direction is much larger than the terms in the remaining directions, the discretized elliptic operator often has a very large condition number -taking the solution even further out of reach using traditional methods. This paper will demonstrate a solution method for such ill-behaved problems. The high condition number of the D-dimensional discretized elliptic operator will be exploited to split the problem into a series of well-behaved one and (D − 1)-dimensional elliptic problems. This solution technique can be used alone on sufficiently coarse grids, or in conjunction with standard iterative methods, such as Conjugate Gradient, to substantially reduce the number of iterations needed to solve the problem to a specified accuracy. The solution is formulated analytically for a generic anisotropic problem using arbitrary coordinates, hopefully bringing this method into the scope of a wide variety of applications. The solution of Poisson problems is often the single most expensive step in the numerical solution of partial differential equations (PDEs). For example, when solving the Navier-Stokes or Euler equations, the Poisson problem arises from the incompressibility condition [1, 2] . The particular solution strategy depends of course on a combination of factors, including the specific choice of the discretization and the type of boundary conditions. In simple geometries, very efficient schemes can be devised to reduce the effective dimensionality of the problem, such as using FFTs or cyclic reduction to partially or completely diagonalize the operator [2] . For more complex geometries or boundary conditions, the available choices to solve the discretized problem usually involves direct inversion for small size problems, while Krylov based iterative methods such as Conjugate Gradient or multigrid methods are used when the matrix problem is too large to be inverted exactly [2, 3, 4] .. In this paper, we are interested in Poisson problems characterized by a high level of anisotropy (to be precisely defined later). The source of anisotropy can be due to the highly flattened domains over which the solution is sought, as is the case for atmospheric, oceanic [2] and some astrophysical problems [5, p. 77 ].. However, the source of anisotropy could have a physical base, e.g. Non-Fickian diffusion problems where the flux is related to the gradient by an anisotropic tensor [6] . Recently, research has been conducted to develop compound materials that could serve as a cloaking device. [7, 8] These metamaterials are designed to have specific anisotropic acoustic and electromagnetic properties that divert pressure and light waves around a region of space unscathed.. Anisotropy results in a spreading of the spectrum of the discretized operator, with severe consequences on the convergence rate. We illustrate this point with a simple Poisson problem. The r.h.s. and boundary conditions are chosen randomly (but compatible, see below). The Laplacian operator is discretized with a standard 7-point, second-order stencil, the domain is rectangular with dimensions L×L×H, the domain's aspect ratio is measured by R = L/H, and the discretization is chosen as (∆x, ∆y, ∆z) = (H/2, H/2, H/16). For illustration purposes, the problem is solved using a 4-level multigrid scheme which employs line relaxation in the vertical (stiff) direction, as used by Armenio and Roman [9] to do a LES of a shallow coastal area. Figure 1 shows the attenuation factor A = E n+1 / E n as a function of the aspect ratio, where E n is the residual error after n iterations.. For moderate aspect-ratio domains, the convergence is satisfactory, but as R increases, we rapidly approach a point where the method becomes, for practical purposes, useless. Similar results (see below) hold for Krylov based methods. In this paper, we describe how a formal series solution of a Poisson problem derived by Scotti and Mitran [10] , herein referred to as SM, can be used to significantly speed up the convergence of traditional iterative schemes. SM in-troduced the concept of grid lepticity, λ, to describe the degree of anisotropy of a discretized domain and then sought a solution to the Poisson problem written as a power series in λ −1 -the leptic expansion. An apparent limitation of the leptic expansion is that it is very efficient only for lepticity larger than a critical value of order 1. SM were led to introduce the leptic expansion in order to provide the right amount of dispersion needed to balance nonlinear steepening of internal waves propagating in a shallow stratified ocean. For this limited purpose, SM. showed that at most only three terms in the expansion are needed, and thus the lack of overall convergence was not a serious limitation. Here, we develop the method for the purpose of efficiently calculating solutions of a discretized Poisson problem. In our approach, the lepticity, which in SM's original formulation was related to the aspect ratio of the domain, becomes now a generic measure of anisotropy. The main result of this paper is that for subcritical values of the lepticity, the leptic expansion can still be extremely valuable to dramatically increase the convergence rate of standard iterative schemes, as the numerical demonstrations of the method will show. The examples are coded using Matlab and Chombo's BoxTools 1 library with standard second order discretization techniques.. What makes the leptic expansion particularly attractive is that it can be parallelized in a very straightforward way, as long as the decomposition of the domain does not split along the stiff (vertical, in our examples) direction. For comparison, the parallel implementation of the Incomplete Cholesky Decomposition of a sparse matrix, which is used as a preconditioner for Conjugate Gradient schemes and yields very good convergence rates even at high levels of anisotropy [11] , is a highly non-trivial task [12] .. Finally, it must be noted that the idea behind the leptic expansion can be traced as far back as the work of Bousinnesq on waves [13] . What we have done here is to formulate it in a way suitable for numerical calculations.. 1 Chombo has been developed and is being distributed by the Applied Numerical Algorithms. Group of Lawrence Berkeley National Lab. Website: https://seesar.lbl.gov/ANAG/chombo/ The rest of the paper is organized as follows: a discretization-and coordinateindependent version of the leptic expansion is introduced in Section 2. The reader who is not interested in the details may skip directly to Section 2.2, where a summary of the scheme is provided. Section 3 presents convergence estimates of the leptic expansion using Fourier analysis techniques [14] . This is where the leptic method's potential to generate initial guesses for conventional iterative schemes emerges. In Section 4, we consider some examples to illustrate how the leptic expansion can be used with conventional iterative schemes to create very efficient solvers. A final section summarizes the main results. The leptic method was originally devised as a method to add a physically appropriate amount of dispersion when numerically modeling the propagation of nonlinear waves in a dispersive medium. In this paper, we generalized the method so it could be used to actually speed up the numerical solution of Poisson problems characterised by a high level of anisotropy. The key idea is that instead of (or in addition to) preconditioning the operator to achieve overall better spectral properties, we precondition the initial guess (or the restarts) to achieve better spectral support of the residual by coupling the leptic expansion to Krylov methods. However, since the former converges on its own if the lepticity of the grid is sufficiently large, it is easy to see that it could be used within multigrid methods as well. Namely, when the coarsening reaches a point that the lepticity of the grid is below critical, the leptic expansion can be used in lieu of the relaxing stage to generate an exact solution at the coarse level.. This would likely cut down the layers of coarsening.. In its full generality, this method can be used to solve anisotropic Poisson equations in arbitrary, D-dimensional coordinate systems. In many cases, however, numerical analysis is performed using simple, rectangular coordinates without an anisotropic tensor, σ ij . This simplification reduces much of the computation. For these common purposes, we included a summary of the Cartesian version of the expansion. Both the general and Cartesian expansions are summarized in section 2.2.. When implementing the leptic method for numerical work, the computational domain should be split in all but the vertical (stiff) dimension. The vertical ordinary differential equations require a set of integrations -one for each point in the horizontal plane. With this domain decomposition, these integrations are independent of one another and the solutions to the vertical problems can be found via embarassingly parallel methods. On the other hand, the solutions to the horizontal equations cannot be parallelized as trivially, making their solutions more costly to arrive at. In light of this, section 2.3 was provided to discuss when it is appropriate to eliminate these expensive stages.. The computational cost of a single iteration is of the same order as a preconditioned step of a Krylov method. The savings are obtained in the faster rate of convergence, shown in the examples above over a wide range of anisotropic conditions, as well as the relative ease with which the leptic expansion can be parallelized. The best rate of convergence is achieved by using the leptic expansion at the beginning and every time the convergence rate of the Krylov method slows down. We did not attempt to predict a priori after how many steps the switch is necessary. If the Poisson problem, as it often happens, is part of a larger problem that is solved many times, a mockup problem should be solved at the beginning to determine empirically the best switch pattern.. Adapting the expansion to accept Dirichlet boundary conditions would require a new derivation similar to that of section 2, but the job would be much simpler since Dirichlet elliptic operators have a trivial null space, thereby eliminating the need to consider compatibility conditions among the second-order operators and their boundary conditions.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Formal DEVS modelling and simulation of a flow-shop relocation method without interrupting the production Abstract This paper presents an organizational method of transfer of a flow-shop to a new site without interrupting the production. This method, which can be used even in case of requirements during the removal period, consists in segmenting the flow-shop removal into successive removals of groups of machines. This method can be successfully applied provided a prime condition is met: there must be sufficient stock upstream of the different groups of machines. The role of these stocks is to ensure continuity of production operations between the old and the new site, while a non-operational group of machines is being removed. The removal of groups of machines goes on until the whole production line is transferred to the new site and operational on this site. To validate this approach, we used a simulation and developed a flow-shop model according to the DEVS formalism. Our model makes it possible to segment a production line. We can therefore simulate a sequential transfer of groups of machines to the new site. The most effective solutions among those proposed suggest starting with the final group of machines (finished products) to finish with the first group. In this paper, we present and discuss some simulation results for an industrial case study. These results demonstrate the compared effectiveness of different removal strategies, and help decide for the appropriate estimated project management. The relocation of a production site is a difficult industrial project and many firms hesitate to get into this kind of trouble, especially small or medium sized companies that have to go on operating with the same machines. A simple solution consists in removal during paid holidays: it is then possible to close the firm for the duration of the removal process. When a firm works on orders, without any annual closing, it needs to be continuously present on the market. It also needs a great ability to react making such strategies not conceivable. Although similar situations are commonplace, this problem has not been dealt with yet. We can consider the case of relocating the current facilities of a company to a nearby site. Two companies that were faced with the problem of removing a line of machines from one site to another without interrupting the production twice approached us. The constraints of the removal project were the same for both companies:  The production could not be stopped completely during the removal of the machines,  The removal process was of flow-shop type,  The budget of the removal operation was limited, which forbade any solution of flash removal type (removal the totality of the production system overnight or during a weekend),  The global production process remained identical, i.e. logical chain of the operations remained the same (the same machines would continue to be used one after the other). This unusual problem is not dealt with in reference books about production organization [2, 9] or facilities planning [26] . Even the fundamental book on methods of facilities layout [17] does not deal with the organization of removal faced with such constraints. Recent papers have focused on facilities relocation. In fact, these articles deal with location or layout strategies, by considering mathematical approaches [3, 12, 15, 5] or by proposing oriented management methods [24, 19, 20, 16] .. However, the removal organization problem is not dealt with in these papers.. In this context, and as a consequence, we have elaborated an organizational method to keep production going during the removal of a flow-shop. We propose here a solution of progressive removal of the resources to the new site by segmenting the whole production line in sub-sets and building up a buffer stock for each elementary removal of a sub-set. The true problem lies in the choice of the good parameters to balance the relocation organisation. A great number of solutions can be planned to segment the totality of the production line. The use of simulation in the field of manufacturing systems for simplifying the complexity and reducing the problem dimension is recognised by scientists and industrial managers. In our case, simulation aims at determining the best values combination of input parameters, given an output criterion [21] .. In this paper, attention is focused on DEVS modelling for the relocation problem. The paper is structured as follows. Section 2 describes the relevance of the DEVS formalism for manufacturing systems' simulation. Section 3 presents theoretical considerations for an elementary removal of a production workstation. Section 4 is devoted to the description of the relocation organisation of the complete production line. We use a case study and different simulations to test various strategies about the removal organization of the complete line. Section 5 describes an industrial case of printed-circuit boards' production line, working on orders. The DEVS models are provided. Section 6 analyses simulation experiments' results that the company can use to choose the best relocation strategy. In this paper, we have approached a method dealing with unusual problem thanks to discrete events simulation. We dealt with the relocation of a production site from an old site to a new one. Relocation implies that the pre-existing production line, consisting of several machines, has to be totally dismounted from the old site and rebuilt later in the new one. Thus, we propose a method for relocation when the production cannot be completely stopped during the removal of the machines. We have wanted that this method is described in a complete and formal way, in order to be easily reproducible. For that, we have chosen the DEVS formalism. The problem is tackled by partial removals at a time of either a single machine or a group of sequential machines. The choice between the two options is not trivial and must only be done after a careful analysis of the production line. We first analysed the relocation problem. Then we have suggested a relocation methodology that takes into account different constraints. Our methodology is based on balancing buffer stocks. After a study of the useful stocks' movements, we have given all the necessary DEVS models for the simulation. Finally, we have wanted to show how we can arrive to practises implementation on a real industrial case from a theoretical study on a canonical situation. So, our approach was validated using an industrial case study based on DEVS formalism to model the real production system. Three types of models were developed for this purpose. The first type corresponds to production equipments models. The second model type enables controlling logical conditions. The last one enables to follow a projected planning and to organize the relocation scheduling simulation. Using the three model types, we have simulated several strategies of the production line segmentation. The simulation allowed determining the best configuration of the flow-shop relocation parameters.. Appendix A DEVS (Discret EVent system Specification) Formalism: Atomic DEVS model [27, 28] Formally, an atomic model M (cf. figure A1

O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Efficient steady-state analysis of Second-Order Fluid Stochastic Petri Nets This paper presents an efficient solution technique for the steady-state analysis of the second-order Stochastic Fluid Model underlying a second-order Fluid Stochastic Petri Net (FSPN) with constant flow and transition rates, and a single fluid place. The new solution technique is an extension of existing solution techniques developed for (first-order) Fluid Models; the solution algorithm uses upwind semidiscretization and Matrix Geometric techniques to efficiently compute the steadystate joint probability of the discrete states and the fluid level. The effectiveness of our technique is proven first on a simple producer-consumer second-order FSPN model and then on a complex example taken from the literature where the analysis of the completion time distribution and the packet loss probability of short-lived TCP connections is investigated through the decomposition of a model for the whole system into several (simpler) sub-models; the interaction among the different sub-models is handled by iterating their solution until the complete model solution converges according to a fixed point algorithm. The introduction of a second-order FSPN in a fixed point iteration scheme has been made possible thanks to the efficiency of the proposed solution technique. Stochastic fluid models are a class of analytic models that have recently drawn the attention of many researchers for the performance evaluation of complex computer and communication systems.. In the simplest first-order fluid models the fluid flow rate is constant with a given mean value. A first example of first-order fluid based approaches is the one in which queues and buffers are approximated by fluid. In the work done by D. Mitra in [4] , a producer-consumer model, with a fixed number of producers and a single consumer, with an intermediate fluid buffer is presented. In the proposed model, a Markov chain describes the state of the sources (i.e. it counts how many producers are active). In each state an input rate is computed based on the number of active producers. The difference between this value and the output rate of the consumer gives an instantaneous rate of change of the fluid buffer. A system of first-order differential equation is then written to completely characterize the model. Efficient transient analysis of first-order fluid models with constant rates is proposed in [21] .. The simple first-order model of [4] is extended to consider fluid-dependent flow rates in [9] where different classes of sources, finite buffer, and production rates dependent on buffer occupancy are considered. This class of models is used to describe a rate-based congestion control of a high speed network with loss priorities.. Second-order fluid models, on the other hand, are models where the fluid flow is not considered constant in a given state, but it is defined by a mean flow rate and a variance. These models are referred to as second-order models, since they require the solution of a system of second-order differential equations. Usually these models describe the whole system using only continuous quantities. Discrete states are not considered and discrete quantities are approximated by continuous ones. The theory behind these approaches is based on the central limit theorem: a sum of a large number of random variables can be approximated by a Normal distribution characterized by a mean that corresponds to the sum of the means of the various random variables, and by a variance that corresponds to the sum of the various variances. The normal distribution can then be approximated by the solution of a diffusion process that is expressed through a second-order differential equation. Models are expressed as standard queuing networks with general service time distributions. Only the first two moments of these distributions (i.e. their mean and their variance) are required to find the parameters for the diffusion equation. This approach has been extended in order to consider finite capacity queues and complex server policies. It has been used to study several applicative problems, such as cellular telephone cells or ABR traffic sources. A good reference to these kinds of models can be found in [8] . Further references to works using second-order stochastic fluid models are [17, 3] .. In [6] a general solution technique for the transient analysis of second-order stochastic fluid models with fluid-dependent flow rates is presented.. Stochastic fluid models are useful analytic tools for the performance analysis of complex systems but despite their mathematical elegance they can be hard to solve, since they require the direct manipulation of Markov chains and (sometimes complex) differential equations. For this reason, higher level mathematical formalisms have been introduced in the literature for the specification of such models. For first-order fluid models, an example of such higher-level formalisms is first-order Fluid Stochastic Petri Nets (FSPN) [22, 15, 7, 2, 14] ; FSPN models are analyzed by writing the equations of the underlying stochastic process (a first-order fluid model) and then by solving them numerically. The equations are written by decoupling the discrete part of the model from the continuous one. First, the set of possible discrete states (the discrete state space) is generated using conventional Petri net techniques; then a system of partial differential equations is generated. This system includes one equation for each discrete state that the system may reach, and a partial derivative for each fluid place, plus a partial derivative for the time. Even though equations can be written for every FSPN, these equations are so hard to solve that, except for special classes of FSPN models [13, 12] , only models with one or two fluid places may be analyzed.. For second-order fluid models, second-order FSPN have been introduced in [23] . The most interesting feature of second-order FSPN (and all their extensions [24, 25] ) is that equations can be written, and thus analytical and numerical solution techniques can be applied. The only difference with respect to the FSPN solution techniques is that second-order partial differential equations must be solved in this framework. Numerical solution techniques for second-order PDEs have almost the same complexity as the first-order solution techniques.. The contribution of this paper is two-fold:. • we present an efficient solution technique for the steady-state analysis of the second-order stochastic fluid model underlying a second-order FSPN with constant flow and transition rates and variance, and a single fluid place. The new solution technique is an extension of existing solution techniques developed for first-order fluid models; the effectiveness of our technique is proven first on a simple producer-consumer second-order FSPN model. In the current work we restrict our attention to second-order stochastic fluid models with constant rates that represent a sub-class of the general second-order stochastic fluid models considered in [6] . Furthermore, we develop a solution technique for the steady-state analysis of this model subclass while the work in [6] focuses on the transient analysis.. • not many applications of second-order FSPN can be found in the literature [26] . We develop a second-order FSPN model for a complex example taken from the literature where the analysis of the completion time distribution and the packet loss probability of short-lived TCP connections is investigated through the decomposition of a model for the whole system into several (simpler) sub-models; the interaction among the different sub-models is handled by iterating their solution until the complete model solution converges according a fixed point algorithm. The introduction of a second-order FSPN in a fixed point iteration scheme has been made feasible thanks to the efficiency of the proposed solution technique.. The outline of the paper is as follows: Sections 2 and 3 contain brief introductions to second-order fluid models and second-order FSPNs, respectively. Section 4 describes the solution technique for second-order fluid models we developed, Section 5 describes the second-order FSPN model we developed to analyze the performance of short-lived TCP connections, and Section 6 draws some conclusions and outlines future extensions of this work. The paper presented an efficient solution technique for the steady-state analysis of the second-order stochastic fluid model underlying a second-order FSPN with constant flow and transition rates and variance, and a single fluid place. The new solution technique is an extension of existing solution techniques developed for first-order fluid models and uses upwind semi-discretization and Matrix Geometric techniques to efficiently compute the steady-state joint probability of the discrete states and the fluid level.. We proved the effectiveness of our technique on a simple producer-consumer second-order FSPN model; furthermore, we developed a second-order FSPN model for a complex example taken from the literature where the analysis of the completion time distribution and the packet loss probability of short-lived TCP connections. The investigation is carried out through the decomposition of a SPN model for the whole system into several (simpler) sub-models; the interaction among the different sub-models is handled by iterating their solution until the complete model solution converges according a fixed point algorithm. The introduction of a second-order FSPN in a fixed point iteration scheme, has been made feasible thanks to the efficiency of the proposed solution technique.. Future development of this work can be sought: first of all, generalization of our solution technique for second-order FSPN with fluid-dependent flow rates is currently under investigation.. As for the application of second-order FSPN models to the analysis of shortlived TCP connections, we are currently working to the characterization of the output process of the second-order FSPN model of the IP network link; the goal is to decompose a multi-link scenario (a network of multiple routers) loaded with short-lived TCP traffic into separate second-order FSPN models of each node traversed by TCP traffic.

O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O


AIOLOS: Middleware for improving mobile application performance through cyber foraging As the popularity of smartphones and tablets increases, the mobile platform is becoming a very important target for application developers. Despite recent advances in mobile hardware, most mobile devices fail to execute complex multimedia applications (such as image processing) with an acceptable level of user experience. Cyber foraging is a well-known computing technique to enhance the capabilities of mobile devices, where the mobile device offloads parts of the application to a nearby discovered server in the network.Although first introduced in 2001, cyber foraging is still not widely adopted in current smartphone platforms or applications. In this respect, two major challenges are to be tackled. First, a suitable adaptive decision engine is needed to determine the optimal offloading decision, that takes into account the potentially high and variable latency between the device and the server. Second, an integrated cyber foraging platform with sufficient support for application developers is not publicly available on popular mobile platforms such as Android.In this paper, we present AIOLOS, a mobile middleware framework for cyber foraging on the Android platform. AIOLOS uses an estimation model that takes into account server resources and network state to decide at runtime whether or not a method call should be offloaded. We also introduce developer tools to integrate the AIOLOS framework in the Android platform, enabling easy development of cyber foraging enabled applications. A prototype implementation is presented and evaluated in detail by means of both a chess application and a newly developed photo editor application. In the past decade, one has witnessed an increasing popularity of smartphones. According to Gartner this trend will continue, estimating an increase of 57.7% on smartphone sales in 2011 [1] . Due to advances in mobile hardware (e.g. display resolution and CPU power) and improved mobile network connectivity, new and more advanced services can be offered on mobile devices. The introduction of application markets on various mobile platforms has eased the publishing of applications, resulting in a myriad of mobile applications such as social and messaging clients, location-based services, games and many more. As applications and services become increasingly important, one can also witness a shift from mobile devices to ecosystems, such as Google's Android [2] , with people no longer only buying a device, but an integrated combination of a device, a platform, applications and services.. Although the capabilities of mobile devices are increasing, they still cannot match their desktop counterparts, especially for complex multimedia applications such as image and video processing, object or face recognition and augmented reality applications. This encourages the use of cyber foraging to augment the capabilities of the mobile device by outsourcing CPU intensive parts of the application to remote servers [3] . These remote servers can be personal machines residing in the LAN network, as well as virtual machines in the cloud, where computing power is offered on demand [4] , as shown in Figure 1 . Although considerate research effort has been spent on designing and developing cyber foraging systems [5] [6] [7] [8] , this paradigm is still not widely adopted in current smartphone application development. Two issues still need to be addressed. First, an adaptive offloading strategy is needed that copes with the limited bandwidth in wireless networks as well as with high and variable network latencies in a WAN environment [9] . Second, none of these cyber foraging systems are integrated in a mobile ecosystem, with sufficient developer support to ease the development of cyber foraging enabled applications. Only Cuckoo [10] does an effort offloading Android services and provides tools to assist in the build process, but the developer still has to define interfaces for computationally intensive parts and write both a local and a remote service implementation.. To address those two issues, we present AIOLOS 1 : a cyber foraging framework for Android. AIOLOS is built on OSGi [11] , a module system and service platform in Java, which enables transparent monitoring and mobile code. For each method call the framework estimates the execution time for both local and remote execution based on the argument size, and then chooses the appropriate execution location. Afterwards, the estimation parameters are updated, taking into account the new profiling data and changing network parameters. In this way the system will optimize the application execution, taking into account the device capabilities and the network connectivity, without putting an additional burden on the application developer.. The second issue is addressed by integrating AIOLOS in the Android platform and providing the developer support for creating cyber foraging enabled applications. We present a plugin for the Eclipse IDE, the most popular Android development environment, that allows the developer to annotate possible offloadable classes. At build time the plugin generates OSGi bundles that publish the annotated classes as OSGi services, and an OSGi runtime with the AIOLOS framework is embedded in the application.. To evaluate the AIOLOS framework we used the Eclipse plugin to enable cyber foraging for an existing chess application on Android. We also developed a photo editing application to show the effectiveness of the estimation model.. The remainder of this paper is structured as follows. Section 2 gives an overview of related work on code migration and cyber foraging. Section 3 describes the algorithm for deciding when to offload and Section 4 shows how we estimate performance from a history based profile. Section 5 describes the architecture of our offloading middleware. In Section 6, we discuss implementation details of how AIOLOS is integrated in Android, and in Section 7 we present the programming model and developer tools to ease application development. In Section 8 we evaluate the framework using relevant use case scenarios. We conclude this paper in Section 9 and discuss the limitations and open problems of our approach. In this paper we presented AIOLOS, a cyber foraging framework for Android, built on the OSGi module system and service platform. Given a number of candidate methods for offloading provided by the application developer, AIOLOS decides which of these methods should be executed remotely in view of the current context, and migrates the code at runtime to a discovered server. For each method call, AIOLOS decides whether the call is better executed remotely or locally, using a history based estimation model of the network and the processing speed of the remote server.. In order to transparently develop cyber foraging enabled applications, we provide the necessary tools that allow application developers to benefit from the AIOLOS framework only by annotating their existing Android applications.. To show the effectiveness of our approach, we annotated two Android applications for AIOLOS: Honza's Chess, an existing open source chess game, and an in-house developed photo editor application. Using these applications we show the benefits from cyber foraging by offloading to a server in the LAN network, as well as to a server deployed in the Amazon EC2 Cloud. For the specified use cases offloading offers gains of 20 to 90% in execution time depending on the mobile device capabilities, the network connectivity and the input parameters of the method calls. AIOLOS is able to estimate the remote execution time upfront with a relative precision of 10% for 80% of the method calls, using a random sample consensus algorithm. It was shown that this algorithm outperforms methods based on moving averages and least linear square fits.. As future work we plan to support stateful offloading, which introduces the need for correct data synchronization. In this aspect we can also investigate operations on data shared between multiple users in collaborative scenarios. Another research direction is to apply cyber foraging for energy saving. Here we can reuse our approach, but an accurate energy model of the mobile device is needed. The idea of using remote servers, also called surrogates, to augment the processing capabilities of mobile devices was first proposed by Satyanarayanan [3] as cyber foraging. Early cyber foraging systems such as Spectra [5] and Chroma [12] use a tactics based scheduler to pick methods to outsource taking into account history-based resource predictions [13] . The most important drawback of these first systems is that they rely on pre-installed remote procedure calls, implying that all remoting has to be programmed by the application developer. To facilitate application development the Vivendi tactics description language and stub generator were proposed [14] , where the application developer declares a tactics file declaring remote operations, their parameters and fidelities from which stubs are generated. With AIOLOS, the developer marks offloadable methods using source code annotations, which avoids the need for a complex language and syntax.. Later systems make use of mobile code, where the system partitions the software at runtime and migrates code to the server, with minimal interference from the developer. Several systems exist, offloading either at a class, method or software component level.. Gu et al. [15] present an adaptive offloading framework for offloading Java classes, using a fuzzy control model. Ou et al. [16] also use class outsourcing, in combination with a (k+1) partitioning algorithm. Because applications typically consist of hundreds to thousands of classes, extensive monitoring and computation is needed to identify classes to offload, making this approach less suited to adopt at runtime.. MAUI [7] uses extensive profiling to decide to offload method calls on the Microsoft .Net runtime environment. The goal is to optimize the energy usage, and an Integer Linear Programming (ILP) approach is used to optimize the deployment. The goal of our approach is to optimize the execution time, and ILP is not used as it is too time consuming to solve for each method call.. The Scavenger cyber foraging system [6] outsources Python methods with a scheduler using history-based profiling. Similar to AIOLOS, Scavenger requires the application developer to annotate methods that are candidates for remote execution. Based on these annotations, the system takes into account the size or the value of the input parameters of the method call to estimate the execution time at runtime (e.g. an image processing filter will take longer on a larger image). Scavenger however does not support callbacks and assumes a constant network latency which is statically defined per device, whereas in AIOLOS, the network latency is estimated from previous remote method calls.. Zhang et al. [17] propose a mobile code framework where platform independent software components -called weblets -can be outsourced to the cloud based on a Bayesian learning scheduler. Giurgiu et al. [18] and Verbelen et al. [19] use OSGi components to build a graph model of the software and use graph cutting algorithms to distribute these components. Han et al. [20] present a flow-based algorithm to partition software components, which is evaluated by simulation. The drawback of these component based approaches is that a software component will not continuously generate the same load, potentially leading to instable partitionings.. Kemp et al. [10] present Cuckoo, an offloading framework for Android that is able to offload Android services. An extra build step is introduced to make an existing Android application capable of offloading its service components. However, it is still up to the developer to choose what to execute remotely. The approach also does not support callbacks from the offloaded code.. As surrogates for remote execution, Goyal et al. [21] propose the usage of virtual machine technology. Because the deployment of virtual machines in a cloud can lead to high WAN latencies, Su et al. present Slingshot [22] , where the VMs are co-located with the wireless access point. Satyanarayanan et al. [9] also place the surrogates, called "cloudlets", in the physical proximity of the mobile user. Chun et al. [23] use virtualization to create a clone of the mobile device platform to be able to migrate parts of mobile applications without modification.. In this paper we describe AIOLOS, a cyber foraging framework that combines the approaches at both component and method level. On the one hand software components are used as unit of deployment to offload, which keeps the overhead to monitor at runtime low as applications only consist of tens of components. On the other hand, offloading decisions are made for each method offered by the components and the framework will select methods to offload. The execution time of method calls is estimated based on the size of their arguments, also taking callbacks into account. The network characteristics are estimated from the duration of previously monitored remote method calls, using a random sample consensus algorithm.. To facilitate the development of cyber foraging enabled applications, we provide developer tools that integrate the AIOLOS framework in Android applications. The developer only has to annotate offloadable classes, and an extra build step will refactor the source code and incorporate AIOLOS in the application, which makes it easy to use AIOLOS in new as well as in existing Android applications.

O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Bisimplicial Edges in Bipartite Graphs Bisimplicial edges in bipartite graphs are closely related to pivots in Gaussian elimination that avoid turning zeroes into non-zeroes. We present a new deterministic algorithm to find such edges in bipartite graphs. The expected time complexity of our new algorithm is O n 2 log n on random bipartite graphs in which each edge is present with a fixed probability p, a polynomial improvement over the fastest algorithm found in the existing literature. When applying Gaussian elimination to a square n × n matrix M containing some elements with value zero, the choice of pivots can often determine the amount of zeroes turned into non-zeroes during the process, the so called fill-in. Some matrices even allow Gaussian elimination without any fill-in. Avoiding fill-in has the nice property of bounding the required space for intermediate results of the Gaussian elimination to the space required for storing the input matrix M . This can be important for processing very large sparse matrices. Even when fill-in cannot be completely avoided, it may still be worthwhile to avoid it for several iterations, motivating the search for pivots that avoid fill-in.. If we assume subtracting a multiple of one row of M from another turns at most one non-zero into a zero, we may restrict ourselves to considering only {0, 1} matrices. Given such a square matrix M , we can construct the bipartite graph G[M ] with vertices corresponding to the rows and columns in M , where vertices i and j are adjacent iff M i,j is nonzero. The {0, 1} matrices that allow Gaussian elimination without fill-in correspond to the class of perfect elimination bipartite graphs [1] . Central to the recognition of this class of graphs is the notion of a bisimplicial edge that corresponds to an element of M that can be used as a pivot without causing fill-in. The fastest algorithm for finding bisimplicial edges in the existing literature has a time complexity equal to that of matrix multiplication [2, 3] , i.e., O (n 2.376 ) [4] . We present a new deterministic algorithm for finding a bisimplicial edge in a bipartite graph, if one exists, and show that its expected time complexity on random bipartite graphs where each edge is present with some fixed probability p is O (n 2 log n).

O O O B I O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O


Bounds on the capacity of constrained two-dimensional codes Bounds on the capacity of constrained two-dimensional (2-D) codes are presented. The bounds of Calkin and Wilf apply to first-order symmetric constraints. The bounds are generalized in a weaker form to higher order and nonsymmetric constraints. Results are given for constraints specified by run-length limits or a minimum distance between pixels of a given value. In this correspondence we consider the capacity of constrained twodimensional (2-D) codes which is equivalent to the maximum entropy of 2-D fields defined by the given set of constraints. We shall derive bounds on the capacity.. We consider shift-invariant constraints of finite extent (N; M ), in the sense that the constraints may be defined on an N row by M column rectangle. Each element is taken from an alphabet A of size jAj. The jAj N M possible configurations on the rectangle are divided into a set of admissible and a set of nonadmissible configurations. Manuscript Let F (n; m) be the number of distinct configurations (or codewords) on an n row by m column rectangle not violating the constraints. We refer to these configurations of size n by m as admissible configurations. Let E (n; m) be the set of admissible configurations of size n by m. The per-symbol capacity (or maximum entropy), H of the 2-D code defined by the constraints may be defined as follows. . A more formal treatment of the entropy definition and its existence is given in [1] - [3] .. In one dimension (1-D) , sequences satisfying a constraint on N consecutive symbols may be described by finite-state sources, where a state is characterized by N 0 1 symbols, e.g., run-length limited sequences.. The capacity in 1-D, defined as in Definition 1 but with m = M = 1 and n ! 1, may be calculated following Shannon's approach [4] .. The transfer (or adjacency) matrix T T T of the source indicates the possible transitions between two states. Each transition is derived from an admissible configuration of length N with the first N 0 1 symbols as the starting state and the last N 0 1 symbols as the ending state. Thus two states are combined with an overlap of N 0 2 symbols in a transition. Each sequence of states formed by consecutive transitions corresponds to an admissible configuration. The largest eigenvalue 3 of T T T determines the growth rate of the number of configurations. Taking the logarithm gives the maximum entropy [4] :. The one-dimensional approach is readily generalized to regions of finite width m. We refer to a rectangle of finite width m and arbitrary height n as a band. The admissible configurations of a band of width m may for all n be described by a finite-state source. For a constraint of extent (N; M ), the states of the source are given by the symbols on the m by N 01 segment which appear as the first or last N 01 rows of an admissible configuration on an N by m rectangle, i.e., a configuration of E (N; m). A transition from state i to state j is admissible if there is a configuration in E (N; m), for which state i is identical to the top N 01 rows and state j to the bottom N 01 rows. States i and j have an overlap of N 0 2 rows. The last row of j is generated by the transition from i to j and appended to the previous rows of the output. Any admissible configuration of E (n; m) with fixed m and n (>N01) rows may be generated as an output by starting the source in the state specified by the first N 0 1 rows and making n 0 N + 1 transitions appending one row to the output in each transition. The states and transitions above are derived from the set of configurations S(T m ) = E (N; m) on the N by m segment of one transition of the finite-state source Tm . An output of the source is defined by the initial state and the output rows of a sequence of transitions. We are mainly interested in the set of possible outputs of the source. The transfer matrix T T T m indicates transitions which satisfy the constraint by defining the elements t ij = 1 if the transition from state i to j is admissible and t ij = 0 if it is not admissible.. The capacity of the source on a band of width m (n ! 1) is given by. where 3m is the largest eigenvalue of T T T m . Equation (3) is an upper bound on the capacity H defined by (1) [3] . For constraints where any two configurations on bands of width m may be admissibly concatenated by padding c columns between the two bands, the capacity is Calkin and Wilf [5] presented a method giving tight bounds on capacity for a particular constraint, which we briefly describe in the following example.. Example 1: A well-known example is a binary field for which the maximum run-length of one of the symbols is one in both the n-and m-direction. This has been called, among other names, the hard square problem [6] . Formulated in terms of nonadmissible configurations, the constraint is that for any two 4-neighbors, i.e., horizontal and vertical neighbors, both of them cannot be "1." Therefore, by checking every N = 2 by M = 2 square we may check whether the constraint is satisfied.. The bounds for the constraint in Example 1 [5] are expressed by capacities which may be determined by the use of (3).. The method of [5] may be applied to other constraints, but it is restricted to constraints for which the transfer matrices are symmetric for all n or m. This is satisfied for first-order constraints which are symmetric in the n-or m-direction. We address the problem of bounding capacity for higher order and nonsymmetric constraints. We shall specify ways to describe supersets and subsets for which the transfer matrices are symmetric.. Run length constraints derive from digital storage applications [7] . For nonnegative integers d and k, a binary sequence is said to satisfy a one-dimensional (d; k)-constraint if every run of zeros has length at least d and at most k (if two ones are adjacent in the sequence we say that a run of zeros of length zero is between them).. A two-dimensional binary pattern arranged in an m 2 n rectangle is said to be (d 1 ; k 1 ; d 2 ; k 2 )-constrained if it satisfies a one-dimensional (d 1 ; k 1 )-constraint horizontally and a one-dimensional (d 2 ; k 2 )-constraint vertically. The two-dimensional (d1; k1; d2; k2)-capacity is defined as denotes the number of m 2 n rectangles that are (d 1 ; k 1 ; d 2 ; k 2 )-constrained. If d = d 1 = d 2 and k = k 1 = k2 (this is called the symmetric constraint) then the two-dimensional (d 1 ; k 1 ; d 2 ; k 2 )-capacity is called the two-dimensional (d; k)-capacity, and is denoted by C d;k . Two-dimensional run length constraints have recently become a focus of increased study [1] , [2] , [4] - [7] , [9] , [15] , [16], [21] . A proof was given in [9] that shows the two-dimensional (d; k)-capacities exist, and essentially the same proof shows that the C d ;k ;d ;k exist.. The two-dimensional asymmetric positive capacity region is the set f(d1;k1;d2;k2) : C d ;k ;d ;k > 0g :. It is of interest to determine the exact values of the capacities of the various two-dimensional constraints in the positive capacity region, or at least to find good approximations or bounds. A more basic question, however, is to determine which constraints actually lie in the positive capacity region and which do not. We provide here a partial answer to this question. The exact value of the capacity C d ;k ;d ;k has been unknown for all but a few cases. In fact, in all cases when the capacity has been known exactly, its value has been zero and the constraints have been symmetric. The first exactly known two-dimensional capacity was shown in [1] to be C1;2 = 0 and a complete characterization of which (d; k) integer pairs yield positive capacities for symmetric constraints was given in [9] and is stated as the proposition below. Fairly tight upper and lower bounds on the value of C 0;1 were given in [2] , improved in [6] , [12] , and extended to three-dimensional run length constraints in [12] . In [15] , an encoding procedure for the symmetric two-dimensional (0; 1)-constrained channel was given whose coding rating comes incredibly close to the capacity C 0;1 . For other positive two-dimensional (d; k)-capacities various bounds were given in [9] , [16] , and approximations were given in [21] . Asymmetric two-dimensional (d 1 ; k 1 ; d 2 ; k 2 )-constraints were studied in [4] , which discussed mergings and the Hamming distances between (d 1 ; k 1 ; d 2 ; k 2 )-constrained rectangles. Codes for certain other types of constraints in two dimensions were studied in [3] , [6] , [10] , [11] , [13] , [14] , [17]-[21]. 0018-9448/00$10.00 © 2000 IEEE New bounds on the capacity of constrained 2-D codes were derived. The bounds are based on the transfer matrix of superset and subset sources, respectively. The bounds are expressed in terms of capacities of bands and cylinders, which may be determined using wellknown one-dimensional results. Two upper and a lower bound applicable to any finite-order constraint were presented. One of the upper bounds was applied to three second-order constraints, improving previous upper bounds. The lower bound was applied to one of these constraints, improving previous results based on transfer matrices.

O O O B O O O O O O O B O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O B I O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Roving Bugnet: Distributed Surveillance Threat and Mitigation Abstract Advanced mobile devices such as laptops and smartphones make convenient hiding places for surveillance spyware. They commonly have a microphone and camera built-in, are increasingly network accessible, frequently within close proximity of their users, and almost always lack mechanisms designed to prevent unauthorized microphone or camera access.In order to explore surveillance intrusion and detection methods, we present a modernized version of a microphone hijacker for Windows and Mac OS X. This attack can be executed as soon as the target connects to the Internet from anywhere in the world without requiring interaction from victimized users. As the attacker compromises additional machines they are organized into a botnet so the attacker can maintain stealthy control of the systems and launch later surveillance attacks.We then present a mechanism to detect the threat on Windows, as well as a novel method to deceive an attacker in order to permit traceback. As a result of the detection mechanism we address a missing segment of resource control, decreasing the complexity of privacy concerns as exploitable devices become more pervasive. The capabilities of spyware have expanded as always-on Internet connections have become increasingly frequent [11, 30] . It's not only data stored on the compromised machine that is at risk. Variants of spyware that provide audio and video surveillance Ryan Farley George Mason University, Department of Computer Science, Fairfax, Virginia, USA, e-mail: rfarley3@gmu.edu Remote surveillance is a significantly invasive threat, arguably even more so than identity theft. As it stands now, most vulnerable devices do not have the protection necessary to distinctly address microphone or camera hijacks. As a growing number of mobile devices with exploitable operation systems gain more reliable Internet access, this long standing problem is reaching a critical potential.. The risk of surveillance attacks is increased on systems shared with untrusted users. Since multiple users can open the microphone simultaneously, regardless of who is physically at the system, any user of a system can be compromised even if just one user of that system is not protected. Imagine a spouse that exploits this weakness on purpose to spy on his or her partner through a shared computer. This leads to questioning how to properly handle the lack of control over shared resources as more people adopt true multi-user environments.. To demonstrate the viability of a surveillance intrusion, we developed a modern interpretation of a stealthy microphone hijack threat. The features of the bugnet closely match in-the-wild exploits. It uses a botnet framework and is able to exploit a system as soon as the target connects to the Internet.. We then investigated ways to mitigate the threat. Physical protection is an option, such as a cover or on-off switch, but most devices do not have this built-in, leaving software as the only answer for a vast majority of the vulnerable systems. Given the infrequency of microphone access by the average user, adding a way to monitor and interactively control recording access should be unobtrusive. As a solution we developed a mitigation mechanism that can be broadly applied to detect and prevent surveillance exploits. This methodology employs API hooks to monitor processes and uses extensible permissions testing to provide an allow-or-deny behavior.. To facilitate forensic analysis, our bugbot mitigation technique additionally involves using a decoy audio loop that consists of well crafted believable noise, such as background keyboard clacking or indiscernible talking to retain the remote at-tacker's network connection while keeping the true audio recording confidential. The additional time created could then be used to trace the source of the attacker's connection, or at minimum, gathering as much audit information as possible.. Currently most devices with network access and microphones, such as laptops and smartphones, are vulnerable to this type of attack. Yet there is still no widely accepted way for users to protect themselves. As awareness of this problem increases, the potential threat to privacy may lead consumers and businesses to lessen their dependence on such devices. Malware detection has been an area of active research, and there are many methods proposed to detect or mitigate malware [7-9, 12, 13, 27, 32, 35] . StackGuard [6] , StackGhost [10] , RAD [4] and Windows vaccination [21] prevent stack based over-flow by protecting the return address from being modified by the malware. However, they are not effective against other attack vectors such as heap based overflow [5] .. Another method, packet vaccine [34] , seeks to detect malware exploit packets by randomizing address-like stings in the packet payloads. Similar to other randomization based approaches [1, 2, 17, 18, 24] , which protect applications and systems via randomizing the instruction set or address layout, packet vaccine will cause the vulnerable applications to crash when they are exploited by malware.. Taint analysis aims to detect illegal information flow by tracking the taint, and it has been widely used for analyzing malware [3, 22, 26, 28, 29, 31, 37] . As pointed out by Saxena et al. [26] , taint tracking usually incurs high performance overhead. This makes it difficult to be used for detecting malware in real-time.. To the best of our knowledge, no existing malware defense approach has been shown to be effective in detecting the bugbot we have presented.

O O O B O O O O O B I O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B I O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Structural methods for the synthesis of speed-independent circuits Most existing tools for the synthesis of asynchronouscircuitsffom Signal Transition Graphs (STGs) derive the reachability graph for the calcblation of logic equations. This paperpresents novel methods exclusively based on the structural analysis of the underlying Petri net. This methodology can be applied to any STG that can be covered by State Machines and, in particular, to all live and safe free-choice STGs. Signijicant improvements with regard to existing structural methods are provided. The new techniques have been implemented in an experimental tool that has been able to synthesize specijicationswith over 10" markings, some of them being non-free choice. Petri nets (PNs) are a powerful formalism to model concurrent systems. As a model, their most interesting feature is the capability of implicitly describing a vast state space by a succinct representation, which gracefully captures the notions of causality, concurrency and conflict between events. Petri nets have also been chosen by many authors as a formalism to describe the behavior of asynchronous circuits by interpreting the events as signal transitions coining the term Signal Transition Graph (STG) 114, 31.. Each reachable marking of an STG is assigned a binary code with the value of the circuit signals in that marking. Deriving logic equations from an STG requires the generation of the binary codes for all markings. Currently, most synthesis tools [15, 161 perform an exhaustive token flow analysis to obtain the complete reachability graph of the PN and all binary codes.. Even for small STGs, the reachability graph of highly concurrent systems can be extremely large and, in the worst case, exponential in the size of the STG. Some efforts have been devoted to propose structural methods for synthesis [IO, 171, but they have been usually devised for restricted classes of PNs that compromise the potential expressiveness of this formalism.. In this paper we present structural techniques to synthesize speed-independent (SI) circuits from STGs. In this framework, "structural" means "at Petri net level" without requiring the explicit generation of the reachability graph. The techniques have polynomial complexity if the underlying PN is free choice [6, 4] , and can be efficiently extended to the class of PNs that can be covered by State Machines (SM) [5] . We aim at complementing the existing tools by providing alternative and efficient synthesis methods for SM-coverable STGs, which account for a large fraction of the set of benchmarks we have used.. This work improves the techniques presented in [ 1 1,121 in two directions: (1) by providing new methods to calculate covers for the boolean functions needed for synthesis and (2) by extending these methods to the synthesis of SI-circuits. Let us assume that we want to derive a logic function for signal y in Fig.l(a) and, in particular, for the set of markings in which transition y+ is enabled--excitationregion of y+ (ER(y+)). This region corresponds to all the markings in which placepsis marked, Structural techniques for the analysis and synthesis of STGs are essential when the size of the state space becomes unmanageable by algorithms that work at state graph level. This paper has presented new methods to synthesize STGs with underlying free choice PN. The proposed algorithms have polynomial complexity in the size of the net and can be easily extended to the class of PNs that can be covered by SM-Components. Although the calculation of a SM-Cover cannot be calculated in polynomial time for non-free-choice nets, some recent symbolic techniques have been proved to be very efficient [5]. Future work will be devoted to fully characterize the class of Petri nets that can be handled by the presented techniques.. The experimental results show that the proposed methods obtain efficient implementations in short CPU times. Some of the existing tools have not been able to synthesize the largest circuits, whereas the presented method has managed to do it in few seconds.

O O O O B O O B O O B O O B O O O O O O O O B B O O O O B O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B B O O O O O O O B O O O O B B O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O B O O O O O O O O


Tugging Graphs Faster: Efficiently Modifying Path-Preserving Hierarchies for Browsing Paths Abstract-Many graph visualization systems use graph hierarchies to organize a large input graph into logical components. These approaches detect features globally in the data and place these features inside levels of a hierarchy. However, this feature detection is a global process and does not consider nodes of the graph near a feature of interest. TugGraph is a system for exploring paths and proximity around nodes and subgraphs in a graph. The approach modifies a pre-existing hierarchy in order to see how a node or subgraph of interest extends out into the larger graph. It is guaranteed to create path-preserving hierarchies, so that the abstraction shown is meaningful with respect to the underlying structure of the graph. The system works well on graphs of hundreds of thousands of nodes and millions of edges. TugGraph is able to present views of this proximal information in the context of the entire graph in seconds, and does not require a layout of the full graph as input. M ANY systems engineered to explore and create graph hierarchies search for subgraphs globally in the input graph as a basis for hierarchy construction. These approaches search for topological features [2] , [5] or features based on attribute data [23] , [6] associated with the nodes and edges. The graph hierarchy is recursively constructed by globally searching for subgraphs fitting the desired criteria and is thus suited for overviews of the graph structure. In a computer networking scenario, one could ask: What is the high-level, topological structure of the Internet? or How do servers known to be in France connect to the Internet?. However, these approaches do not have provisions for browsing parts of the graph topologically near a node or a subgraph. As an analogy, consider a library. Global approaches would be able to find all books on a given topic by keyword search, but frequently there are relevant books which are discovered by browsing the shelf near books on the topic. In our computer networking scenario, this activity corresponds to browsing nodes near a node or subgraph: What is the topological structure near servers known to be in France? We term this notion proximity in this paper, and in TugGraph, we exploit graph hierarchies to browse proximity to a node or subgraph of interest.. A graph hierarchy or hierarchy is defined as a recursive grouping placed on the nodes in the input graph. For example, in a computer networking scenario where nodes are servers and edges are connections between servers a hierarchy would recursively group servers into subnetworks, networks, and finally the Internet. Metanodes are the interior nodes of this hierarchy which contain a subgraph. In our networking example, metanodes are nodes representing the subnetworks and networks. The leaves in the hierarchy are the nodes of the input graph. In our computer networking example, these are the servers. TugGraph creates metanodes that contain elements of the underlying graph that are directly connected to the subgraph or node of interest by an edge. We will call these subgraphs proximal components.. Interactive systems use hierarchy cuts to present meaningful abstractions of the input graph. A hierarchy cut defines which metanodes and leaves will be shown in the drawing of the graph. In the graph drawing literature, a hierarchy cut is frequently called an antichain. Cut nodes are nodes that appear on the hierarchy cut. These nodes are drawn opaquely in the abstract view. Nodes above the hierarchy cut are transparent and display the structure of the hierarchy using containment while nodes below the hierarchy cut are hidden from view. By manipulating the hierarchy cut, users can control which parts of the graph are abstracted away. In TugGraph, we tug out nodes adjacent to a selection, as shown in Fig. 1a and place their connected components into metanodes as shown in Fig. 1b .. Usually, the subgraph of interest is small compared to the size of the entire graph. In our networking example, the network at UBC is contained in a small number of metanodes compared to the rest of the Internet. Drawing the large metanodes is difficult as they contain hundreds of thousands of nodes and edges. Many coarsening techniques exist to handle this case [2] , [6] , but these techniques do not consider elements near a node in the hierarchy. Our metaphor is to tug out nodes adjacent to UBC from the larger Internet components, and the process can be repeated to summarize paths. The challenge is the efficient computation of this summary in a way that if a path exists in the hierarchy cut, the path exists in the input graph. Not all graph hierarchies guarantee this property, and we define the space of these path-preserving hierarchies in the next section.. The TugGraph system, originally presented at IEEE PacificVis [7] , introduced the TugGraph technique, and algorithms implementing the technique, for exploring a region of the graph located near a feature. In this paper, we present TugGraph as described in the conference proceedings and extend the work in two ways. First of all, we present an improved algorithm and system implementation that speeds up the TugGraph approach by modifying, rather than completely deleting and reconstructing, the hierarchy each time a node or metanode is tugged. Secondly, we re-evaluate the system on the same three data sets, plus an additional data set, to show how these algorithm modifications improve the execution speed of TugGraph. The new algorithm performs two to four times faster than the previous approach on the same machine. In future work, we believe that TugGraph can be refined in many ways to improve its performance well beyond what we have seen here. Although we have made significant advances toward the goal of interactive performance over the version of the paper presented at IEEE PacificVis, on data set sizes with millions of nodes and edges, we have not achieved this goal. We believe that further optimization of the software and potential algorithmic improvements may make this technique competitive with the algorithms that require a pre-existing layout. However, further research and software improvements are required to confirm this conjecture.. Frequently, the edges in a graph have weights. These weights can be used in conjunction with the topological structure of the graph to determine proximity. We hope to extend TugGraph to handle weighted graphs. It may also be interesting to allow TugGraph to display nodes of the graph that are multiple hops from a source node in a single click. However, this functionality needs to be implemented and tested to determine if it can be done efficiently and in a useful way for exploring graphs.. A graph hierarchy is able to help summarize the structure of a graph, because it groups a large number of nodes together with a common meaning. A limitation of TugGraph exists when a tug produces a large number of proximal components that cannot be easily summarized in a pathpreserving way. Situations such as these can result in a visually cluttered drawing. In future work, we should investigate path-preserving coarsening techniques which can effectively summarize a large number of proximal components in a simple drawing. Additionally, more compact representations for a large number of disconnected components remains future work.. The TugGraph metaphor relies on a sequential series of tugs to produce a graph hierarchy emanating from a single node or metanode chosen by the user. TugGraph can tug at a graph from multiple nodes or metanodes, but an interesting direction for future work would be to investigate browsing methods that are more inherently multifocus in terms of computational efficiency and visual representation.. Finally, user experimentation and studies with domain experts would be essential to validate the usability of the technique. Currently, we are investigating the readability of path-preserving hierarchies when performing certain tasks, which would help validate this work. Direct comparisons of TugGraph with other techniques which use a pre-existing layout may also be beneficial. Also, we hope to work with users in the computer networking domain, where this problem originally arose, to determine if the technique helps experts better understand their data. We have presented an improved algorithm for our interaction metaphor where users can tease out nodes from a large graph by tugging on a feature in a pathpreserving way, and we have tested the system on input graphs with hundreds of thousands of nodes and millions of edges. The new algorithm performs two to four times faster than the previous version of TugGraph published at IEEE PacificVis. In the three example data sets, the dependence on the sizes of the source and proximal sets along with the sum of their degrees is apparent. The tests on Net05 and Actors provides evidence that increasing average node degree affects the running time significantly.. TugGraph can be used to explore structure near a feature in the graph or the paths between two features. Although in two of the three scenarios the destination was known, we do not view knowing the destination as a requirement of the system. One could envision a use case that consists of iteratively tugging out structure from the larger graph starting from only a source node.. Another important observation is that the TugGraph result images do not require zoomed-in insets to show details of the graph structure. Typically in large graph visualization systems, many scales are needed to understand features in the data in a global context. Hierarchybased visualization tools, including TugGraph, are able to represent the sought structure succinctly at a single scale.. Through algorithm execution time, we see that TugGraph is suitable for displaying the structure near a small set of nodes in a larger graph. TugGraph has a running time advantage over computing a hierarchy of topological features or computing a full layout with SPF or LGL. Also, the diagrams it produces are better suited for exploring connectivity near a feature, because elements proximal to the focus node are emphasized in the layout and less relevant portions of the graph are abstracted away. In this section, we present the performance of our implementations of TugGraph on several data sets. Section 6.1 presents the original TugGraph results as presented in the conference article. Section 6.2 presents the results of the previous implementation of TugGraph against the improved algorithm on the same machine. In this section, we present the original TugGraph algorithm [7] , and then the modified algorithm and system improvements that accelerate the execution of the algorithm by a factor of about two to four.. In both versions of the algorithm, TugGraph takes a graph and a hierarchy as input. If multiple connected components exist, each component is stored inside its own metanode at the root of the hierarchy drawn with component packing. The user then clicks on a node in the hierarchy cut to obtain proximity information about it. This source node is a node of the input graph or a metanode of the hierarchy that is tugged. A tug on this source node selects all adjacent leaf nodes and places them into metanodes directly below metanodes on the cut. The hierarchy is modified accordingly, ensuring that it is still path-preserving. The cut is then lowered, revealing the components adjacent to the source node.

O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O