Open-source MATLAB implementation of consistent discretisations on complex grids Abstract Accurate geological modelling of features such as faults, fractures or erosion requires grids that are flexible with respect to geometry. Such grids generally contain polyhedral cells and complex grid-cell connectivities. The grid representation for polyhedral grids in turn affects the efficient implementation of numerical methods for subsurface flow simulations. It is well known that conventional two-point flux-approximation methods are only consistent for K-orthogonal grids and will, therefore, not converge in the general case. In recent years, there has been significant research into consistent and convergent methods, including mixed, multipoint and mimetic discretisation methods. Likewise, the so-called multiscale methods based upon hierarchically coarsened grids have received a lot of attention. The paper does not propose novel mathematical methods but instead presents an open-source Matlab® toolkit that can be used as an efficient test platform for (new) discretisation and solution methods in reservoir simulation. The aim of the toolkit is to support reproducible research and simplify the development, verification and validation and testing and comparison of new discretisation and solution methods on general unstructured grids, including in particular corner point and 2.5D PEBI grids. The toolkit consists of a set of data structures and routines for creating, manipulating and visualising petrophysical data, fluid models and (unstructured) grids, including support for industry standard input formats, as well as routines for computing single and multiphase (incompressible) flow. We review key features of the toolkit and discuss a generic mimetic formulation that includes many known discretisation methods, including both the standard two-point method as well as consistent and convergent multipoint and mimetic methods. Apart from the core routines and data structures, the toolkit contains addon modules that implement more advanced solvers and functionality. Herein, we show examples of multiscale methods and adjoint methods for use in optimisation of rates and placement of wells. Reliable computer modelling of subsurface flow is much needed to overcome important challenges such as sustainable use and management of the earth's groundwater systems, geological storage of CO 2 to mitigate the anthropological increases in the carbon content of the atmosphere and optimal utilisation of hydrocarbon reservoirs. Indeed, the need for tools that help us understand flow processes in the subsurface is probably greater than ever, and increasing. More than 50 years of prior research in this area has led to some degree of agreement in terms of how subsurface flow processes can be modelled adequately with numerical simulation technology.. To describe the subsurface flow processes mathematically, two types of models are needed. First, one needs a mathematical model that describes how fluids flow in a porous medium. These models are typically given as a set of partial differential equations describing the mass conservation of fluid phases, accompanied by a suitable set of constitutive relations. Second, one needs a geological model that describes the given porous rock formation (the reservoir). The geological model is realised as a grid populated with petrophysical or hydrological properties that are used as input to the flow model and together they make up the reservoir simulation model. The geological model must also describe the geometry of the reservoir rock and in particular model geological horizons and major faults. This requires grids that are flexible with respect to geometry (and topology). Stratigraphic grids have been popular for many years and are the current industry standard. These grids are formed by extruding areal grids defined along geological surfaces to form volumetric descriptions. However, more complex methods based on unstructured grids are gaining in popularity as a means to modelling complex fault systems, horizontal and multilateral wells etc. In either case, grids representing realistic reservoirs generally contain polyhedral cells and complex grid-cell connectivities. The grid representation for polyhedral grids in turn affects the efficient implementation of numerical methods for subsurface flow simulations.. The industry standard for discretising flow equations is the two-point flux-approximation method, which for a 2D Cartesian grid corresponds to a standard fivepoint scheme for the elliptic Poisson equation. Although widely used, this method is convergent only if each grid cell K-orthogonal. For hexahedral grids, this means that each cell is a parallelepiped and n ij K i n ik = 0 in all grid cells i (here, K is the permeability tensor in cell i and n ij and n ik denote normal vectors into two neighbouring cells). Ensuring K-orthogonality is difficult when representing particular geological features like sloping faults, horizontal wells etc. Hence, there has in recent years been significant research into mixed [8] , multipoint [5] and mimetic [9] discretisation methods that are all consistent and convergent on rougher grids. Herein, we will focus on low-order, cellcentred methods that do not require specific reference elements and, thus, can be applied to grids with general polygonal and polyhedral cells.. Another major research challenge is the gap between simulation capabilities and the level of detail available in current geological models. Despite an astonishing increase in computer power, and intensive research on computation techniques, commercial reservoir simulators can seldom run simulations directly on highly resolved geological grid models that may contain from one to a hundred million cells. Instead, coarse-grid models with grid-blocks that are typically ten to a thousand times larger are built using some kind of upscaling of the geophysical parameters [13, 16] . How one should perform this upscaling is not trivial. In fact, upscaling has been, and probably still is, one of the most active research areas in the oil industry. Lately, however, so-called multiscale methods [15, 17, 18] have received a lot of attention. In these methods, coarsening and upscaling needed to reduce the number of degrees of freedom to a level that is sufficient to resolve flow physics and satisfy requirements on computational costs is done implicitly by the simulation method.. A major goal of the activities in our research group is to develop efficient simulation methodologies based on accurate and robust discretisation methods; in particular, we have focused on developing multiscale methods. To this end, we need a toolbox for rapid prototyping of new ideas that enables us to easily test the new implementations on a wide range of models, from small and highly idealised grid models to large models with industry standard complexity. When developing new computational methodologies, flexibility and low development time is more important than high code efficiency, which will typically only be fully achieved after the experimental programming is completed and ideas have been thoroughly tested. For a number of years, we have therefore divided our code development in two parts: For prototyping and testing of new ideas, we have used Matlab, whereas solvers aimed at high computational performance have been developed in a compiled language (i.e. using FORTRAN, C or generic programming in C++).. This has resulted in a comprehensive set of routines and data structures for reading, representing, processing and visualising unstructured grids, with particular emphasis on the corner-point format used within the petroleum industry and hierarchical grids used in multiscale methods. To enable other researchers to benefit from our efforts, these routines have been gathered in the Matlab Reservoir Simulation Toolbox (MRST), which is released under the GNU General Public License (GPL). The first releases are geared towards single-and two-phase flow and contain a set of mimetic and multiscale flow solvers and a few simple transport solvers capable of handling general unstructured, polyhedral grids.. The main purpose of this paper is to present MRST and demonstrate its flexibility and efficiency with re-spect to different grid formats, and in particular hierarchical grids used in multiscale methods. Secondly, we present a class of mimetic methods that incorporates several well-known discretisation methods as special cases on simple grids while at the same time providing consistent discretisation on grids that are not Korthogonal. Finally, we discuss how generic implementations of various popular methods for pressure and transport ease the study and development of advanced techniques such as multiscale methods, flow-based gridding and applications such as optimal control or well placement.

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 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I O O O O O O O O O O O


Comprehensively and efficiently protecting the heap The goal of this paper is to propose a scheme that provides comprehensive security protection for the heap. Heap vulnerabilities are increasingly being exploited for attacks on computer programs. In most implementations, the heap management library keeps the heap meta-data (heap structure information) and the application's heap data in an interleaved fashion and does not protect them against each other. Such implementations are inherently unsafe: vulnerabilities in the application can cause the heap library to perform unintended actions to achieve control-flow and non-control attacks.Unfortunately, current heap protection techniques are limited in that they use too many assumptions on how the attacks will be performed, require new hardware support, or require too many changes to the software developers' toolchain. We propose Heap Server, a new solution that does not have such drawbacks. Through existing virtual memory and inter-process protection mechanisms, Heap Server prevents the heap meta-data from being illegally overwritten, and heap data from being meaningfully overwritten. We show that through aggressive optimizations and parallelism, Heap Server protects the heap with nearly-negligible performance overheads even on heap-intensive applications. We also verify the protection against several real-world exploits and attack kernels. Motivation. Computer systems have evolved significantly in the last few decades, with machines that are increasingly inter-connected and run increasingly complex software. Unfortunately, such systems are also more exposed to security attacks which have not only grown in quantity, but also in variety. As a result, users are very concerned about protecting their systems from viruses, worms, trojan horses, and spyware.. In order to attack a single application, attacks often rely on overwriting a set of locations M with a set of values V with the purpose * This research was supported by NSF Early Faculty Career Awards CCF-0347425 and CCF-0447783, NSF award CCF-0429802, IBM Faculty Partnership Award, North Carolina State University and Georgia Institute of Technology. Much of this work is based on Kharbutli's PhD thesis at NCSU.. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. of altering the program behavior when it uses V . Attackers may use a variety of well-known techniques to overwrite M with V , such as buffer overflows, integer overflows, and format strings, typically by supplying unexpected external input (e.g. network packets) to the application. The desired program behavior alteration may include direct control flow modifications in which M contains control flow information such as function pointers, return addresses, and conditional branch target addresses. Alternatively, attackers may choose to indirectly change program behavior by modifying critical data that determines program behavior.. Researchers have shown that the stack is vulnerable to overwrites, so many protection schemes have been proposed to protect it. However, the heap has received less attention. In this paper, we will concentrate on protecting the heap against heap attacks, which are growing in number. Examples include the slapper worm on the Apache web server [21] , GIF image processing library heap overflow attack on the Mozzila web browser [9] , and heap corruption attack on Null HTTPD [6] . Moreover, new vulnerabilities are continuously discovered for popular programs such as Microsoft Windows [26] , Microsoft Internet Explorer [30] , CVS [28] , and Check Point Firewall-1 [29] . Even the Execution Protection and Sandboxing heap protection schemes used by the recent Windows XP Service Pack 2 have been shown to be vulnerable [1] .. The growth in heap attacks is mostly due to several main weaknesses in the way a program's heap space is managed. First, in most current implementations, memory allocations and deallocations are performed by user-level library code which keeps the heap metadata (heap structure information) and the application's heap data stored in an interleaved fashion in contiguous locations in the main memory. Secondly, heap data and heap meta-data are not protected from each other. Such heap management implementations are inherently unsafe: they allow a vulnerability in how heap data is managed to be exploited to corrupt the heap meta-data. For example, the lack of bound checking on a heap buffer can be exploited to overflow the buffer and corrupt the heap meta-data. Heap metadata is used by the heap management library to perform various functions such as allocating/deallocating space for an object, consolidating free space, and reallocating a recently deallocated object. With corrupted meta-data, the heap-management library performs unintended actions such as overwriting an arbitrary memory location with an arbitrary value, where the attacker can choose both the target location and its new value. By overwriting a location that contains control flow information, the attacker can hijack control flow and execute malicious code. Even if control flow hijacking is prevented, attackers can still do considerable damage, e.g. by overwriting critical program data to alter the behavior of the program.. A third weakness of current heap management implementations is the predictability of the heap layout. This allows attackers to figure out the exact location of various heap meta-data structures and of critical heap data such as function pointers.. Current Techniques are Inadequate. Despite the growing threat of heap attacks, current heap protection schemes either make too many assumptions on how heap attacks will be carried out, or are difficult to implement due to high performance overheads and/or demanding too many changes (to user code, library, and compiler). It is hard for users to adopt solutions that require too many changes due to the need to retool their software development toolchain.. It is useful to note that heap attacks are carried out in three basic steps [2] :. 1. Bug/vulnerability exploitation stage: a bug or vulnerability in an application is exploited to corrupt certain structures, e.g. by corrupting heap meta-data through a buffer overflow, format string vulnerability, or other vulnerabilities.. 2. Activation stage: the corrupted location is transformed into a dormant attack, e.g. the corrupted meta-data causes the heap library to alter program control information or critical data. This stage is not necessary for some attacks.. 3. Seized stage: the attack leaves its dormant state and is fully executed, e.g. program behavior is altered or its control is redirected to malicious code.. Note that latter stages can be carried out with more variety than the earlier stages. Many of the current techniques make assumptions on what particular steps will be performed at the activation or seized stages and prevent the assumed steps from being successfully carried out. However, we argue that it is difficult to foresee all possible steps that attackers may perform in the latter stages, and hence it is safer to prevent the first stage (the corruption) from being carried out successfully. For example, non-executable heap [18] prevents the seized stage of an attack by not allowing injected malicious code in the heap to execute. However, the protection fails when the assumption breaks, such as when the malicious code is not in the heap area, or when the attack relies on executing existing code rather than injecting its own.. Design Criteria. The goal of this paper is to provide comprehensive protection for the heap. We list the following criteria that are required for a comprehensive and likely-implementable solution:. 1. Minimal assumptions about specific steps an attack will rely on. As discussed earlier, assuming that an attack will happen in a certain way can be dangerous and overlook future attack mechanisms. As a result, our solution must prevent the first stage of an attack (the bug/vulnerability exploitation stage) as a way to prevent the corruption from happening in the first place.. 2. Low overhead. For wide adoption, a security solution must have a low overhead even for heap-intensive applications, since applications are moving towards object-oriented design which tend to have a large and active working set in the heap.. 3. Existing hardware. To ensure wide adoption, our design should make use of existing hardware protection mechanisms, making it implementable in existing systems. We have proposed and evaluated a new scheme for comprehensively protecting the heap meta-data as well as heap data from security attacks. In its full implementation, our scheme protects against contiguous and non-contiguous overwrites on heap metadata, and makes overwrites of heap data more difficult. We show that our approach uses minimal assumptions on the mechanisms of the latter stages of an attack, utilizes existing hardware protection mechanisms, and requires modifications only to the allocation/deallocation routines. We demonstrate that an alternative heap meta-data protection through existing kernel-level page protection produces unacceptable performance overheads. In contrast, our schemes achieves nearly-negligible performance overheads for applications with a wide-range of heap behavior. We achieve such low performance overheads using aggressive optimizations and by exploiting parallelism between the application and its Heap Server. Since many techniques have been proposed for stack protection but few for heap protection, we believe that the heap protection offered by our scheme is a significant contribution towards the overall security of an application. Several approaches have been proposed in the past for preventing heap attacks, or security attacks in general. We examine them based on our design criteria described in Section 1. Unfortunately, none of these previously proposed solutions meets all our design criteria. Note however that some of them protect against security attacks in general, while the Heap Server focuses on protecting the heap.. Many current approaches make assumptions on the particular steps the heap attacks will perform and try to prevent the seized stage from being carried out. One proposed solution is to make the heap non-executable [18] . Non-executable pages are supported in virtual memory hardware and in recent versions of various Operating Systems (OSes), such as Microsoft Windows XP Service Pack 2 [23] , Linux and OpenBSD. Dynamic hardware tracking of external inputs and their use chains have been proposed by Suh et al. [12] . If tagged data is executed or used as a branch/jump target address, an attack is detected. A related hardware scheme is Minos [14] , which tags each data item with an integrity bit that is set to '1' if the data comes from reliable sources. An attack is detected when a data item with integrity bit of '0' is used for a change in control flow. Program shepherding [16] is a technique through which policies regarding control flow transfer can be specified and enforced. Non-executable heap, dynamic tracking, Minos, and program shepherding try to prevent the last stage of an attack (the seized stage), and assume that an attack relies on control flow hijack. They fail when the attack does not rely on control flow hijack. For example, non-control attacks do not rely on control flow modifications, yet have recently been demonstrated to be as powerful as control-flow attacks [6] . In addition, non-executable heap also fails for control-flow attacks that do not rely on code injection, such as ones that divert the control flow to library code [22] . Our solution differs from non-executable heap, dynamic tracking, and Minos in that we prevent the first stage of an attack, rather than latter stages, hence we use minimal assumptions on how latter stages will be carried out, regardless of whether an attack relies on code injection, control-flow or non-control modifications. In addition, compared to dynamic tracking and Minos, our solution does not require new hardware mechanisms.. Storing pointers encrypted in the main memory have been proposed as a software approach in PointGuard [7] and recently as a hardware approach for stack protection [19] . The compiler or binary rewriter is required to identify type information, and apply encryption/decryption on pointer accesses. However, without sacrificing language compatibility, accurately identifying pointer accesses is difficult in C programs due to lack of type information. For example, many C-language features depend on functions with untyped buffers (e.g., bzero or memcpy) or take untyped parameters (e.g., printf), making it difficult to get an accurate type information. Also, existing library code does not already contain type information. Furthermore, without extra hardware for encryption, encrypting/decrypting each pointer for every write/read incurs a high performance overhead. Finally, future heap attacks may not rely on corrupting pointers but other parts of meta-data. Our solution differs from pointer encryption in that our solution only needs modifications to the allocation/deallocation routines, is compatible with existing user code, and protects all heap meta-data structures (not just pointers) against corruption.. Obfuscation techniques for heap protection and beyond have also been proposed [5, 20, 31] with a goal of making the address space less predictable and increases the effort of the attackers to make a successful attack. Transparent Runtime Randomization (TRR) [31] and Address Space Layout Randomization (ASLR) [20] are software techniques that randomize the starting address of various segments (heap, stack, BSS, etc.) and dynamic library codes when a program is loaded [31] . Although TRR and ASLR increase the difficulty of attacks that involve more than one segment, they cannot protect against attacks that are solely carried out within the heap segment. Address obfuscation [5] is another technique that, in addition to randomizing the starting address of various segments, also introduces random padding between consecutive heap chunks to make the heap layout less predictable. However, recent work by Shacham et al. [13] shows that randomization implementations on 32-bit architectures suffer from low entropy of 16-20 bits, which does not give sufficient protection against determined attackers. Additionally, in realistic implementations, the amount of padding between chunks are limited to the minimum of 25% of the requested allocation size and a threshold value (e.g. 128 bytes), to avoid excessive fragmentation of the heap space. With a maximum of 128-byte padding, there is only 128 8 = 16 possible padding sizes between two consecutive 8-byte aligned heap objects, which is insufficient against determined attackers. As a result, we believe that address obfuscation can only be used for heap data, where attacks require detailed knowledge of the application. Heap meta-data, however, has the same structure in all applications that use the same library, so the incentive for devising meta-data attacks is higher. As a result, meta-data needs stronger protection.. Heap Server incorporates Bhatkar et al.'s address obfuscation technique and improves it by adding random recycling of heap objects. We note that due to temporal locality optimizations, the heap management library often immediately recycles the most-recently freed object for a subsequent allocation. This regularity means that once attackers figure out the layout of the heap, future allocations have predictable layout. Our random recycling introduces random selection among eligible free heap objects when allocation is requested. This protection makes it harder for an attacker to figure out the target location to overwrite throughout the program execution.. Concurrent to our work, Berger and Zorn proposed DieHard [3] . Like Heap Server, DieHard employs similar techniques to separate heap meta-data from heap data storage, and applies randomized padding between heap chunks. DieHard also examines using multiple redundant instances of an application to detect attacks. One major difference with Heap Server is that the Heap Server further protects heap meta-data by keeping it in a separate address space, completely avoiding application vulnerabilities from overwriting it.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 B I O O O B I O O O O O O O O O O O O O O O O O O O


Parallel

Frequent

Item

Set

Mining

with

Selective

Item

Replication

Abstract-We

introduce

a

transaction

database

distribution

scheme

that

divides

the

frequent

item

set

mining

task

in

a

top-down

fashion.

Our

method

operates

on

a

graph

where

vertices

correspond

to

frequent

items

and

edges

correspond

to

frequent

item

sets

of

size

two.

We

show

that

partitioning

this

graph

by

a

vertex

separator

is

sufficient

to

decide

a

distribution

of

the

items

such

that

the

subdatabases

determined

by

the

item

distribution

can

be

mined

independently.

This

distribution

entails

an

amount

of

data

replication,

which

may

be

reduced

by

setting

appropriate

weights

to

vertices.

The

data

distribution

scheme

is

used

in

the

design

of

two

new

parallel

frequent

item

set

mining

algorithms.

Both

algorithms

replicate

the

items

that

correspond

to

the

separator.

NoClique

replicates

the

work

induced

by

the

separator

and

computes

the

same

work

collectively.

Computational

load

balancing

and

minimization

of

redundant

or

collective

work

may

be

achieved

by

assigning

appropriate

load

estimates

to

vertices.

The

experiments

show

favorable

speedups

on

a

system

with

small-to-medium

number

of

processors

for

synthetic

and

real-world

databases.Index

Terms-Parallel

data

mining,

frequent

item

set

mining,

mining

methods

and

algorithms,

selective

data

replication,

graph

partitioning

by

vertex

separator.

Using

our

n-way

GPVS-based

item

distribution/replication

scheme,

we

decompose

the

mining

problem

into

a

collective

work

phase

(with

communication),

and

independent

work

phase

(with

no

communication)

following

the

observations

in

Corollary

The

algorithm

takes

as

input

at

each

processor

a

local

transaction

database

T

local

and

an

absolute

support

threshold

We

assume

that

T

has

been

partitioned

transactionwise

into

T

local

s

prior

to

the

execution

of

the

mining

algorithm.

We

also

supply

the

set

of

frequent

item

sets

up

to

and

including

level

l,

the

graph

G

F

l

corresponding

to

level

l,

and

a

heuristic

GPVS

solution

Å

V

S

ðG

Fl

Þ.

The

algorithm

is

comprised

of

four

phases:.

Redistribute

items

with

selective

replication.

We

have

proposed

an

item

distribution

method

that

depends

on

theoretical

observations

that

identify

lack

of

cliques

among

two

sets

of

items

in

G

The

mining

problem

is

decomposed

into

independent

subproblems

using

a

GPVS

model

which

encapsulates

the

minimization

of

task

or

data

redundancy

as

well

as

computational

load

or

storage

balance.

We

showed

that

this

model

can

be

extended

to

n-way

distribution

and

any

level

of

mining.

Based

on

our

distribution

model,

we

designed

and

implemented

two

parallel

FIM

algorithms

called

NoClique

and

Experiments

with

synthetic

and

real-world

databases

on

a

Beowulf

cluster

showed

considerable

speedups,

thus

affirming

the

validity

of

our

model.

Cevdet

Aykanat

received

the

BS

and

MS

degrees

in

electrical

engineering

from

Middle

East

Technical

University,

Ankara,

Turkey,

and

the

PhD

degree

in

electrical

and

computer

engineering

from

Ohio

State

University,

Columbus.

He

was

a

Fulbright

scholar

during

his

PhD

studies.

He

worked

at

the

Intel

Supercomputer

Systems

Division,

Beaverton,

Oregon,

as

a

research

associate.

Since

he

has

been

affiliated

with

the

Department

of

Computer

Engineering,

Bilkent

University,

Ankara,

Turkey,

where

he

is

currently

a

professor

and

the

associate

provost.

His

research

interests

mainly

include

parallel

computing,

parallel

scientific

computing

and

its

combinatorial

aspects,

parallel

computer

graphics

applications,

parallel

data

mining,

graph

and

hypergraph-theoretic

models

for

load

balancing,

highperformance

information

retrieval

systems,

parallel

and

distributed

databases,

and

grid

computing.

He

has

(co)authored

about

technical

papers

published

in

academic

journals

indexed

in

ISI

and

his

publications

For

more

information

on

this

or

any

other

computing

topic,

please

visit

our

Digital

Library

at

Our

implementations

of

Bitdrill,

Repl-Bitdrill,

NoClique,

and

are

written

in

C++

using

MPI.

The

computation

of

GPVS

in

is

relevant

to

the

experiments.

We

use

the

hypergraph

partitioning-based

formulation

for

computing

a

GPVS

of

G

F

l

To

that

end,

we

use

the

hypergraph

partitioner

PaToH

Here,

we

give

a

summary

of

our

experiments;

more

detailed

experimental

results

are

given

in

Appendix

C,

which

can

be

found

on

the

Computer

Society

Digital

Library

at

We

have

run

our

algorithms

and

Repl-Bitdrill

as

well

as

ParDCI

on

one

synthetic

and

three

realworld

databases

on

a

Beowulf

cluster.

In

Table

Repl-Bitdrill,

and

ParDCI

are

abbreviated

as

RBD,

and

PDCI,

respectively.

As

seen

in

Table

out

of

parallel

mining

cases,

achieves

considerably

higher

speedup

in

eight

cases,

whereas

and

Repl-Bitdrill

attain

close

speedups

in

eight

cases.

ParDCI

achieves

the

highest

speedup

in

two

cases.

For

the

trec

database,

ParDCI

unfortunately

crashed,

and

we

could

not

measure

its

running

time.

We

would

expect

it

to

have

good

performance

as

in

user-likesmovies

which

is

similarly

dense.

For

the

sparser

database

achieves

With

regards

to

partitioning

quality,

we

have

examined

expected

versus

actual

load

imbalance

and

data

replication

ratio.

We

have

seen

that

our

heuristic

load

estimates

work

but

could

be

much

improved.

Data

replication

is

controlled

well

enough

but

it

is

better

for

small

number

of

processors.

It

turns

out

that

in

the

sparse

database,

independent

mining

phase

dominates

and

in

the

dense

databases

(user-likesmovies

and

trec)

the

collective

work

phase

dominates.

For

these

databases,

the

replication

approach

of

Repl-Bitdrill

and

ParDCI

is

effective.

However,

in

an

important

other

case

which

represents

the

"long

tail"

in

a

real-world

data

set,

there

is

a

mixture

of

both

phases,

and

ultimately

NoClique

does

much

better

than

Repl-Bitdrill

and

ParDCI,

showing

the

true

potential

of

our

approach.

The

database

contains

items

in

the

trec

with

a

frequency

of

and

lower.

In

the

trec

database,

it

is

not

possible

to

mine

frequent

item

sets

beyond

a

narrow

set

of

items

due

to

the

power-law-like

distribution

of

items,

however

in

such

real-world

databases

we

are

interested

in

relationships

among

a

large

number

of

items.

O B I I I 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 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 B I I I B I I I B I I B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Is this brand ephemeral? A multivariate tree-based decision analysis of new product sustainability Decision tree methodology has become an increasingly important tool set in the field of decision science. We develop a multivariate, tree-based decision system for a new application: the determination of whether a newly launched consumer product should be allowed to continue in a highly competitive market. The system is designed to overcome a shortcoming-the inability to capture multivariate interactions-of traditional decision methods. We apply the proposed method to an instant noodle sales data set that contains 38 million transactions, and compare results across several methods. Globalization, technological innovation, advances in supply chain management, and perhaps most importantly the diversification of consumer needs have led to the proliferation of new brands of consumer goods and services. Every year in the U.S. market approximately 1,000 new types of ice cream and other diary products are launched (New Product News, 1999) . In the consumer service industry, one of the leading credit card issuers, Capital One, issues over 1,000 new types of credit cards every year to target specific segments of the consumer market (Fishman, 1999) . The proliferation of new consumer goods and services is not only restricted to developed countries. In China, for example, for categories such as packaged food (e.g., bottled water) and popular electronics equipment (e.g., mobile phones and Discmans) a substantial number of new brands appear in the market every month-while an equally large number of brands vanish every month. Because of the relatively low overhead for manufacturers to produce goods that are slightly differentiated from existing products, it is common practice for manufacturers to launch multiple items under one brand name, multiple lines of brands, or multiple lines of products under the same or different brand names. This is often used by companies as a defensive strategy in protecting existing market, or as a proactive approach in opening untapped market segments. While some of the 2 new launches will successfully meet the preference and taste of specific market segments and survive the initial launching phase, the reality is that others will fail and prove to be ephemeral. Indeed, for consumer packaged goods such as snacks and stationery, it is estimated that only one-quarter to one-third of new launches will survive more than two years (Kotler, 2000) .. The commoditization of consumer goods and the proliferation of new brands have increasingly shifted the focus of the decision concerning new product launches from the supply chain to the so-called "demand chain" (Kahn, McLister, 1997) . In order to quickly adjust to changing consumer tastes and preferences, information about consumer reception of a new launch has to be gathered quickly, and a timely assessment of the product must be made before further resources are committed. Because shelf space in retail outlets is limited, new launches generally do not enjoy an extended period of time to prove themselves. Managers are pressured to make a quick decision as to whether a product should be allowed to remain in the market. In many cases, these decisions are based on limited performance data from the initial period of product launching. Prolonged decisions to discontinue unsuccessful products may unnecessarily lead to increased losses and to the wasting of resources that otherwise could have been used for launching new brands or promoting more promising existing brands. On the other hand, prematurely terminating potentially successful products would mean lost opportunities and profits. 3 In this paper, we propose a method that aims to help managers determine whether a newly launched product should be allowed to remain in the market given only early performance data from the initial phase of the launch. The proposed method is based on a data-driven, multivariate decision-tree approach, and is tailored to the action requirements of decision science applications.. Organizations have now extensively used data-driven, learning-based systems to support their decision-making process, and many have reported significant financial gains as a result of such improvement (e.g., Goonatilake, 1995) . To illustrate the proposed method, we apply it to transaction data from a popular consumer packaged good-the instant noodle cup-which are gathered from its largest market, which is the Japanese market. Conventional wisdom suggests that the decision to continue or terminate a new product can be based on aggregated sales volume or profit data gathered during the launching period.. However, our experience with the packaged food industry in Japan was that such a method might fail. For example, our analysis indicated that in the instant noodle cup market a new launch typically can only achieve a small market share.. When a new product has high trial volume (the first purchase) but low repeat volume (the second and future purchases), the product is more likely to fail than one that has smaller trial volume but high repeat rates. A decision that solely relies on early sales volume may identify a potentially weak product that has 4 good initial volume (perhaps because of promotional cuts) as a success and a potentially strong product that does not have high initial volume as a failure.. As far as we know, the literature on decision analysis for continuing or terminating new products in a mature market is sparse. The most recent example that we found is Lin & Chen (2004) . The authors described a fuzzy-logic based decision system that was used to support a go/no go business decision for launching a new product. There are, however, several related literaturesmanaging new, innovative products and brands; demand forecasting; and new product adoption. The first literature mainly concerns the development and introduction of innovative and often radically designed new products into a market, either traditional or new (Cohen, Eliahberg & Ho, 1996; Crawford & Benedetto, 2003) . Thus, their focus is not on the point of decision after the initial launch of undifferentiated products in a mature market. On the other hand, demand forecast models tend to study demand under the framework of predictive models, and models for repeat purchase (Fourt et al., 1960; for Japanese market application, Nakanishi, 1984) . Some other recent examples include Cooper et. al. (1999) where a knowledge discovery system for tactical planning forecast was proposed. Although companies do require accurate forecast models to predict sales during and after the launching phase, this specific information is not particularly helpful for predicting the fate of a new launch. Finally, new product adoption literature aims at predicting the trajectory of sales of new products and 5 their diffusion after they are introduced in the market (Bass, 1969; Kalish, 1985; Mahajan, Muller, & Wind, 2000) . All three bodies of literature, while related to our current interest, are not immediately relevant to solving the problems we encountered.. There are several distinctive features about our approach. First, instead of requiring a forecast model for predicting sales volume for future periods, the approach provides an action-oriented decision tool to help managers arrive at and, perhaps to a lesser extent, justify a "go or not go'' decision. Second, it integrates information from several sources-product, customer, and market conditions. Furthermore, the tool allows distinct types of input. For example, it can simultaneously handle sequential pattern data such as sales volume as a function of time and other non-time-varying input. Accordingly, it generates a set of interpretable multivariate induction rules as output. Companies that provide consumer goods and services are facing tremendous challenges. The marketplace is becoming increasingly commoditized, with fast-changing market conditions as competitors continually enter and exit the market. Managers and marketers have to make decisions under time constraints and often without full information. To manage the risk that is associated with the uncertain outcomes, a disciplined approach to decision making, based on data and modern decision tools, can be more profitable than relying on ad hoc methods or experience alone. In this paper, we showed how detailed data that are routinely collected from business transactions, coupled with innovative technology, can be combined to help managers arrive at decisions concerning the sustainability of newly launched consumer products. An important feature of our approach is the use of string patterns for tree growing, which has demonstrated that it can lead to improvement over methods that are based on univariate splits.. Like other tree-based methods, our approach provides managers with a set of 26 interpretable induction rules. While our analyses are directed toward a specific industry-instant cup noodles-our methodology is rather general and can be easily adapted to other industries of consumer products.. A limitation of the study reported in this paper is that we have neither included new product development process variables nor marketing strategy variables. Both of these may provide insight into why a new product will succeed.. For example, how a company originates and manages the new product development process may create a strategic advantage in the product's long-term success (Ettlie & Subramaniam, 2004) . Further, competitive forces in the market will also shape the destiny of a new launch (Hultlink & Langerak, 2002) . In a future study, we plan to design methods to measure these attributes and incorporate them into the decision model. Figure 4a . The tree obtained from EBONSAI applied on the data set in Table 3 .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Dualities

and

positivity

in

the

study

of

quantum

entanglement

Abstract.

We

present

a

survey

on

mathematical

topics

relating

to

separable

states

and

entanglement

witnesses.

The

convex

cone

duality

between

separable

states

and

entanglement

witnesses

is

discussed

and

later

generalized

to

other

families

of

operators,

leading

to

their

characterization

via

multiplicative

properties.

The

condition

for

an

operator

to

be

an

entanglement

witness

is

rephrased

as

a

problem

of

positivity

of

a

family

of

real

polynomials.

By

solving

the

latter

in

a

specific

case

of

a

three-parameter

family

of

operators,

we

obtain

explicit

description

of

entanglement

witnesses

belonging

to

that

family.

A

related

problem

of

block

positivity

over

real

numbers

is

discussed.

We

also

consider

a

broad

family

of

block

positivity

tests

and

prove

that

they

can

never

be

sufficient,

which

should

be

useful

in

case

of

future

efforts

in

that

direction.

Finally,

we

introduce

the

concept

of

length

of

a

separable

state

and

present

new

results

concerning

relationships

between

the

length

and

Schmidt

rank.

In

particular,

we

prove

that

separable

states

of

length

lower

of

equal

have

Schmidt

ranks

equal

to

their

lengths.

We

also

give

an

example

of

a

state

which

has

length

and

Schmidt

rank

In

the

last

two

decades,

a

growing

interest

in

quantum

cryptography

and

quantum

computing

has

significantly

boosted

research

on

entanglement

in

quantum

systems.

Despite

the

long

lasting

efforts

to

completely

understand

the

mathematics

of

entanglement,

a

full

characterization

of

n

m

mixed

entangled

states

for

nm

is

still

missing.

In

particular,

physicists

do

not

know

in

general

how

to

check

whether

a

given

mixed

state

is

entangled

or

not.

This

is

a

renowned

question

in

quantum

information

theory

called

the

separability

problem

and

it

was

the

first

motivation

for

the

present

work.

The

entanglement

witness

approach

that

we

use

here

is

not

the

only

possible

one,

but

it

proved

to

be

quite

efficient

in

the

past

This

paper

is

a

shortened

and

amended

version

of

the

author's

Master's

Thesis

defended

at

the

Jagiellonian

University

in

Krakow

in

June

We

give

numerous

insights

into

the

separability

problem

in

quantum

mechanics,

ranging

from

basic

facts,

presented

in

the

Preliminaries

section,

to

entirely

new

results,

which

can

be

found

mostly

in

Section

A

lot

of

the

material

(Sections

and

has

already

been

published

elsewhere

in

a

more

elaborate

form,

but

here

we

take

the

opportunity

to

collect

the

results

in

a

single

paper,

together

with

unpublished

ones..

The

paper

is

organized

as

follows.

In

Section

we

give

a

quick

outline

of

all

the

basic

material

needed

to

understand

later

parts

of

the

work.

We

briefly

discuss

the

mathematical

structure

of

quantum

mechanics

in

density

matrix

approach

and

give

definitions

of

generalized

measurements

and

quantum

channels.

Things

like

complete

positivity,

Kraus

representation,

separability

of

quantum

states

and

the

locality

question

in

quantum

mechanics

have

been

included

for

the

convenience

the

original

version

is

available

online

at

and

has

the

title

"Quantum

entanglement

and

certain

problems

in

mathematics"

of

the

reader.

We

also

give

an

introduction

about

the

Jamio

lkowski

isomorphism,

which

plays

an

important

role

in

later

parts

of

the

paper.

In

Section

we

start

discussing

the

convex

cone

duality

relating

separable

states

to

entanglement

witnesses

and

later

we

generalize

it

to

k-entangled

states

and

k-block

positive

operators.

Thanks

to

a

recent

work

by

Erling

Størmer,

we

know

that

it

is

possible

to

go

even

further,

to

general

symmetric

mapping

cones

of

operators.

We

mention

these

results

shortly

in

the

end

of

Section

and

refer

an

interesed

reader

to

Størmer's

papers.

We

also

make

comments

concerning

an

appealing

but

false

conjecture

about

dual

convex

cones.

In

Section

we

show

how

the

condition

for

an

operator

to

be

an

entanglement

witness

is

related

to

a

positivity

question

for

a

family

of

real

polynomials.

We

demonstrate

that

this

correspondence

can

be

useful

by

explicitly

solving

for

entanglement

witnesses

belonging

to

a

three-parameter

family

of

operators

acting

on

a

pair

of

qubits.

We

also

introduce

a

broad

family

of

necessary

conditions

for

entanglement

witnesses

and

prove

that

they

can

never

be

sufficient.

This

is

important

to

know

because

of

possible

efforts

to

obtain

a

sufficient

condition

in

this

way

(cf.

Proposition

below,

We

also

touch

upon

the

subject

of

sums

of

squares

and

their

relation

to

entanglement

witnesses.

Finally,

in

Section

we

discuss

issues

related

to

the

length

of

separable

quantum

states,

which

is

the

minimal

number

l

of

products

ρ

i

σ

i

of

positive

operators

in

a

decomposition

l

ρ

i

σ

i

of

a

separable

state.

In

particular,

we

prove

that

separable

quantum

states

of

lengths

have

Schmidt

ranks

equal

to

their

lengths

(Proposition

By

showing

an

example

of

a

separable

state

with

Schmidt

rank

and

length

we

disprove

a

similar

relation

for

states

of

bigger

lengths..

Because

some

of

the

basic

notation

used

below

may

differ

significantly

from

other

papers,

we

should

mention

that

L

(V

(H

(V

P

(V

M

(V

denotes

the

set

of

linear

operators

(Hermitian

operators,

positive

operators,

quantum

states,

resp.)

over

an

arbitrary

(finite

dimensional)

linear

space

V

Other

symbols

will

be

introduced

succesively

as

they

appear

in

the

text.

O O O O O O O B I O O O O O O O O O O O O O B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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


Top-K structural diversity search in large networks Abstract Social contagion depicts a process of information (e.g., fads, opinions, news) diffusion in the online social networks. A recent study reports that in a social contagion process, the probability of contagion is tightly controlled by the number of connected components in an individual's neighborhood. Such a number is termed structural diversity of an individual, and it is shown to be a key predictor in the social contagion process. Based on this, a fundamental issue in a social network is to find top-k users with the highest structural diversities. In this paper, we, for the first time, study the top-k structural diversity search problem in a large network. Specifically, we study two types of structural diversity measures, namely, component-based structural diversity measure and core-based structural diversity measure. For componentbased structural diversity, we develop an effective upper bound of structural diversity for pruning the search space. The upper bound can be incrementally refined in the search process. Based on such upper bound, we propose an efficient framework for top-k structural diversity search. To further speed up the structural diversity evaluation in the search process, several carefully devised search strategies are proposed. We also design efficient techniques to handle frequent updates in dynamic networks and maintain the top-k results. We further show how the techniques proposed in componentbased structural diversity measure can be extended to handle the core-based structural diversity measure. Extensive experimental studies are conducted in real-world large networks and synthetic graphs, and the results demonstrate the efficiency and effectiveness of the proposed methods. Recently, online social networks such as Facebook, Twitter, and LinkedIn have attracted growing attention in both industry and research communities. Online social networks are becoming more and more important media for users to communicate with each other and to spread information in the real world [17] . In an online social network, the phenomenon of information diffusion, such as diffusion of fads, political opinions, and the adoption of new techniques, has been termed social contagion [25] , which is a similar process as epidemic diseases.. Traditionally, the models of social contagion are based on analogies with biological contagion, where the probability that a user is influenced by the contagion grows monotonically with the number of his or her friends who have been affected already [3, 10, 26] . However, such models have recently been challenged [22, 25] , as the social conta-gion process is typically more complex and the social decision can depend more subtly on the network structure. Ugander et al. [25] study two social contagion processes in Facebook: the process that a user joins Facebook in response to an invitation email from an existing Facebook user (recruitment) and the process that a user becomes an engaged user after joining (engagement). They find that the probability of contagion is tightly controlled by the number of connected components in a user's neighborhood, rather than by the number of friends in the neighborhood. A connected component represents a distinct social context of a user, and the multiplicity of social contexts is termed structural diversity. A user is much more likely to join Facebook if he or she has a larger structural diversity, i.e., a larger number of distinct social contexts. This finding reveals that the structural diversity of a user is an important factor in the social contagion process. As suggested in [25] , the analysis of structural diversity in a social network can be beneficial to a wide range of application domains. For example, in a political campaign, to convince individuals to change their attitude, it is obviously more important that they receive messages from multiple directions than that they receive many endorsements [25] . In the promotion of health practices, we can find such top users with the highest structural diversity and inject vaccine for them for reducing their influenced probability. In the marketing, to promote a new product, we can find such top customers as the first priority.. Among all of these applications, a fundamental problem is to find the individuals in a social network with high structural diversity [25] . Motivated by this, in this paper, we study a problem of finding top-k individuals with the highest structural diversity in a social network. Following the definition in [25] , the structural diversity of a node u is the number of connected components in a subgraph induced by u's immediate neighbors. Take the network in Fig. 1a as an example. The structural diversity of vertex f is 2, as the induced subgraph by f 's neighbors shown in Fig. 1b has two connected components. This structural diversity definition has been shown to be a good predictor for the recruitment study on Facebook in [25] . However, it may fall short in some other scenarios. For example, in the engagement study, the friendship neighborhoods on Facebook are significantly larger than the email contact neighborhoods from the recruitment study. In such a situation, a large number of one-node components, or "singletons," is not an accurate reflection of social context diversity.. To address this problem, [25] proposed two distinct parametric generalizations of the component count. First, it measures diversity simply by counting only components over a certain size t. This is called component-based structural diversity. Second, it measures diversity by the component count of the t-core of the neighborhood graph, where a tcore is the subgraph formed by repeatedly deleting all ver- tices of degree less than t. This measure is called core-based structural diversity. We have studied the problem of topk component-based structural diversity search in our previous work [14] . To have a comprehensive investigation of the structural diversity search problem, we further extend our study by adopting the core-based structural diversity in this work. The core-based structural diversity measure has been proven effective through case studies in [25] , as the t-core notion can exclude small and loose components more effectively.. To solve the top-k structural diversity search problem, a naive method is to compute the structural diversity for all the vertices and then return the top-k vertices. Clearly, such a naive method is too expensive. To efficiently find the top-k vertices, the idea of traditional top-k query processing techniques [15] can be used, which finds the top-k answers according to some search order, and prunes the search space based on some upper-bound score. Following this framework, in our problem, we have to address two key issues: (1) how to develop an effective upper bound for the structural diversity of a vertex and (2) how to devise a good search order in the computation.. In this paper, we propose several efficient and effective techniques to address these issues. For the component-based structural diversity measure, we find that for two vertices connected by an edge, some structural information of them can be shared. For example, in Fig. 1b , vertex e forms a component of size 1 in f 's neighborhood. From this fact, we can infer that vertex f also forms a component of size 1 in e's neighborhood. Based on this important observation, the structural diversity computation for different vertices can also be possibly shared. To achieve this, we design a Union-Find-Isolate data structure to keep track of the known structural information of a vertex so as to avoid the computation of structural diversity for every vertex. A novel upper bound of the structural diversity is developed for pruning unpromising vertices effectively. Interestingly, the upper bound can be incrementally refined in the search process to become increasingly tighter. Based on the upper bound and the Union-FindIsolate data structure, we propose a novel Top-k-search framework for top-k structural diversity search.. Beyond this, we explore how to apply our Top-k-search framework to support the core-based structural diversity measure. We find that this definition brings new structural properties, which are different from those of the componentbased definition. Thus, our proposed Union-Find-Isolate data structure and upper bound are not applicable to the core-based structural diversity measure. We study new properties of this measure and leverage it to design a new upper bound. We also propose an efficient algorithm for computing the core-based structural diversity score and finally integrate these new techniques into our Top-k-search framework. This study demonstrates that our Top-k-search framework can be generalized to handle different instantiations of the structural diversity measure.. The main contributions of our study are summarized as follows.. -We study top-k structural diversity search for the first time by adopting two measures, i.e., the component-based and core-based structural diversity. Structural diversity has been proven to be a positive predictor in social contagion [25] . We develop a novel Top-k-search framework to efficiently identify the individuals that play a key role in social contagion. -For the component-based structural diversity measure, we design a Union-Find-Isolate data structure to keep track of the known structural information during the computation and an effective upper bound for pruning. We devise a useful search order to traverse the components in a vertex's neighborhood. According to this search order, we propose a novel A * search-based algorithm to compute the structural diversity of a vertex. -We also design efficient techniques to handle frequent updates in dynamic networks and maintain the top-k results. We use the Union-Find-Isolate structure and a spanning tree structure to efficiently handle edge insertions and deletions, respectively. -For the core-based structural diversity measure, a new upper bound and an efficient search algorithm are designed. -We conduct extensive experimental studies on large real networks to show the efficiency of our proposed methods. We also conduct case studies on DBLP and a word association network, which show that structural diversity is useful for identifying ambiguous names in DBLP and finding words with diverse meanings in the word association network.. The rest of this paper is organized as follows. We formulate the top-k structural diversity search problem in Sect. 2 and then discuss and compare the component-based and core-based structural diversity measures in Sect. 3. For the component-based measure, we first present a simple degreebased algorithm in Sect. 4 and then design a novel and efficient Top-k-search framework in Sect. 5. We design two useful search strategies in Section 6 and discuss update in dynamic networks in Sect. 7. For the core-based measure, we design a new upper bound and an efficient search algorithm in Sect. 8. Extensive experimental results are reported in Sect. 9. We discuss related work in Sect. 10 and conclude this paper in Sect. 11. In this paper, we study the top-k structural diversity search problem motivated by a number of network analysis applications. We develop a novel Top-k-search framework to tackle this issue. Specifically, we design a Union-Find-Isolate data structure to keep track of the known structural information of each vertex, and an effective upper bound for pruning. For further speeding up the structural diversity evaluation, several well-designed search strategies are proposed. Our Top-k-search framework can be generalized to handle both the connected component-based measure and the core-based measure for structural diversity search. We evaluate the proposed algorithms on real-world large networks and synthetic graphs, and the results demonstrate the effectiveness and efficiency of the proposed algorithms. To the best of our knowledge, top-k structural diversity search has not been studied before. In the following, we briefly review the existing work that are related to ours.. First, our work is closely related to the work on topk query processing. The goal of top-k query processing is to find k objects with the highest rank based on some predefined ranking function. A commonly used framework for this problem is to examine the candidates in a heuristic order and prune the search space using an upper bound. After the seminal work by Fagin et al. [12, 13] , a large number of studies on top-k query processing have been done for different application scenarios, such as processing distributed preference queries [5] , keyword queries [20] , set similarity join queries [27] . Recently, many studies take the diversity into consideration in top-k query processing, in order to return diversified ranking results [1, 2, 19, 21, 28, 29] . A comprehensive survey of top-k query processing can be found in [15] .. Second, our proposed techniques are related to the algorithms for the triangle listing problem, which is to find all triangles in a graph. Itai and Rodeh [16] first proposed an O(m 1.5 ) algorithm for the triangle listing problem. Latapy [18] proved that the time complexity O(m 1.5 ) is optimal. Subsequently, Schank and Wagner [23, 24] proposed a simpler and particularly fast solution with the optimal complexity based on the vertex ordering and efficient lookup of the adjacency lists for neighborhood testing. Recently, Chu and Cheng [8] proposed an I/O-efficient algorithm for triangle listing in a massive graph, which cannot fit into the main memory. In this paper, we study the top-k structural diversity search problem. The complexity of our algorithm is proved to be O(m 1.5 ). We conduct extensive performance study to evaluate the algorithms proposed in this paper. All algorithms are implemented in C++, and all the experiments are conducted on the Linux operating system with 2.67 GHz six-core CPU and 50 GB main memory. Evaluation metrics We use the running time and the number of vertices whose structural diversity scores are computed in the search process as two metrics. The latter evaluates the number of vertices that are pruned by the algorithm. Datasets We use 13 real-world networks covering social, communication, collaboration, location-based networks, and webgraphs. The network statistics are shown in Table 1 . Except for Epinions, Digg and KDDTrack1 1 which are from their respective websites, the other 10 networks are downloaded from the Stanford Network Analysis Project (snap.stanford.edu). We treat all the networks as undirected.

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 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 I O O O B I O O O B I O O O B I 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 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 B I 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 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 B I 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 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 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 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 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 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 B I O O O O O O O O B I 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 B I 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 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 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 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 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 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 B I 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 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 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 B I 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 B I 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 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 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 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 O O O O O O O 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O


On the dynamics of Social Balance on general networks (with an application to XOR-SAT) We study nondeterministic and probabilistic versions of a discrete dynamical system (due to T. Antal, P. L. Krapivsky, and S. Redner [3]) inspired by Heider's social balance theory. We investigate the convergence time of this dynamics on several classes of graphs. Our contributions include:1. We point out the connection between the triad dynamics and a generalization of annihilating walks to hypergraphs. In particular, this connection allows us to completely characterize the recurrent states in graphs where each edge belongs to at most two triangles.2. We also solve the case of hypergraphs that do not contain edges consisting of one or two vertices. 3. We show that on the so-called "triadic cycle"graph, the convergence time is linear. 4. We obtain a cubic upper bound on the convergence time on 2-regular triadic simplexes G. This bound can be further improved to a quantity that depends on the Cheeger constant of G. In particular this provides some rigorous counterparts to experimental observations in [25] .We also point out an application to the analysis of the random walk algorithm on certain instances of the 3-XOR-SAT problem. Discrete Dynamical Systems, both synchronous (a.k.a. cellular automata [19] ) and asynchronous (e.g. sequential dynamical systems [22] ) provide a rich family of models, whose computational properties (e.g. computational universality, the complexity of prediction, or properties of the phase space, such as the existence of Garden of Eden states) have been actively investigated. Such models underline some of the most celebrated examples in the social sciences (e.g. the celebrated Schelling Segregation Model) and have, unsurprisingly, been proposed (see e.g. [16] , [4] ) as the basis for modeling social dynamics.. In this paper we are concerned with the properties of a particular dynamics, due to T. Antal, P. L. Krapivsky and S. Redner [3] . The dynamics (referred in the sequel as the triadic dynamics) is inspired by Heider's balance theory [17] , a well-established subject in social psychology, and one of the first theories in the social sciences to benefit from concepts and methods from graph theory [9] .. Heider's balance theory aimed to describe the "equilibrium" properties of the interpersonal relations, and did not include a dynamical component. Recently, however, dynamical models related to the one we study, have become popular in the statistical physics [21, 20] and social simulation literature [18, 29] .. The triadic dynamics (described precisely in Section 2 below) is parametrized by a constant p ∈ [0, 1]. In [3] the authors investigated the dynamics on the complete graph K n and displayed a double phase transition in the convergence time with respect to control parameter p. The triadic dynamics was further investigated by means of computer simulations in [25] . The graph topology in this paper is a finite section of the triangular lattice. A phase transition is also displayed around a critical value p C ∼ 0.4625. In this case the convergence time is polynomial for p < p C and logarithmic for p > p C .. We will be concerned with extending the study of the triadic dynamics to general graphs. To do so, we have to solve a problem that has appeared many times in the study of dynamical systems, that of state reachability: when is a given system configuration s 2 reachable from a given initial state s 1 by a finite sequence of moves ? In general (e.g. [6, 5] ) this type of problem is computationally intractable even for very simple dynamical systems. In contrast our main result shows that for a large class of graph topologies questions such as reachability are computationally tractable for our dynamics. We complement this result with a study of the convergence time of our dynamics in the probabilistic setting similar to that of [3] .. A completely different reason for our interest in the triadic dynamics is its somewhat unexpected relation [26] to 3-XOR-SAT, a combinatorial problem that was investigated in Theoretical Computer Science [11] and Statistical Physics [27] . In particular, using the methods we develop for the analysis of the dynamics we will upper bound the expected convergence time of a simple local search algorithm, called RandomWalk, previously analyzed for random 3-XOR-SAT in [28, 7] . Unlike these papers, we will analyze the convergence time of the algorithm on individual formulas, and bound the convergence time (Theorem 5 below) using quantities that depend on the structure of the input formula. Our paper raises the interesting prospect that the convergence time of local search algorithms, such as the RandomWalk algorithm might be analyzed with ideas from the interacting particle systems literature. We believe that this would be especially interesting for "message-passing" algorithms such as the belief and survey propagation algorithms [8] .. Clearly, we would like to see progress in analyzing the dynamics of the random hyperedge switching process on hypergraphs. In particular studying the mixing time of the random hypergraph switching process is a very interesting problem for further study. Another possible direction, motivated by the analogy with the dynamics studied in [12] , is to further study the time to social balance using ideas similar to those in [23] .. Finally, an interesting issue it to compute the Cheeger constant of the triangular lattice, as well as other planar regular lattices [15] , and comparing the results with those in [25] .

O O O O B I 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Embedded software development on top of transaction-level models Early embedded SW development with transaction-level models has been broadly promoted to improve SoC design productivity. But the proposed APIs only provide low-level read/write operations via a TLM interconnect. SW developers have to implement platform-specific communication procedures and handshake protocols to access HW functions, which requires a deep understanding of both the HW interfaces and the TLM fabric used. In this paper, we propose our concept of hardware procedure calls (HPC) with which HW services are provided to SW processes as remote methods on top of transaction-level communication. To this end, a lightweight HPC protocol is presented, and we propose a method to generate the infrastructure for HPC communication from a straightforward input description. Our experiments show that with HPC, embedded SW development is considerably made easier, and that also the effort to create the transaction-level model itself is reduced. Transaction-level modeling (TLM) has widely been adopted for system level design. One ultimate goal is to allow for early embedded SW development based on a virtual prototype of the HW platform. Much work has been done in embedded SW generation from a transaction-level description [1, 2, 5, 9, 12, 15] . Typical to these approaches is that the SW developers are obliged to use a dedicated TLM API in order to access the functionality of HW IP. Predominantly, a blocking message-passing API based on FIFO channels is proposed. During the software generation process, the communication channels are replaced by behaviorally equivalent channel implementations and device drivers from a target RTOS library. While from the HW developer's point of view TLM channels describe communication at a high level of abstraction, for SW developers the proposed TLM fabrics are rather inconvenient. Fig. 1 shows a typical transaction-level model of a simple system-on-chip (SoC) with a HW core and a SW subsystem. In such models, communication between concurrent SW processes is modeled by using an RTOS API [2, 5, 10, 15] . This is indicated by the dotted arrows between the SW processes P1 and P2.. In contrast, SW-to-HW communication takes place through the TLM interconnect. As a result, the code in the SW model written for SW-HW communication highly depends on the TLM API used and the HW handshake protocol. If during subsequent model refinement a HW core is replaced by another version, or a HW service is moved into the SW part of the system, tedious and error-prone code refactoring will be required. Switching to another TLM fabric (e.g., to explore different communication architectures) also might result in a lot of effort. In this paper we discussed a high-level middleware approach for transaction-level MPSoC models that makes onchip HW functions available to SW processes by simple method calls in a service oriented manner. The proposed methodology introduces almost no communication overhead (see section 3.1.5) and the experiments show that it considerably eases SW development, assembly of heterogeneous systems and design space exploration by insulating SW code and HW service access from the used TLM framework. The feasibility of automatic HPC proxy and transactor generation was shown for the TLM framework GreenBus, but can be put into practice for every TLM framework that supports fixed length, adressable read/write transactions (see section 3.1.2). Our ongoing work focusses on defining a set of generic pinlevel service access interfaces for IP cores and based on this we examine how HPC-enabled communication co-processors and appropriate RTOS drivers can automatically be generated to allow for full HPC model synthesis. TLM-based HW-SW co-design with a general-purpose system level design language (SLDL) such as SystemC or SpecC is generally seen as the state-of-the-art in embedded system design. By raising the level of abstraction, design productivity can be considerably increased [4] .. Several approaches to synthesize embedded SW from transaction-level models have been proposed. [1, 5, 9, 12] consider C++ code generation for a target RTOS from the SystemC language. In [15] , ANSI C code generation from SpecC models is discussed. TLM channel synthesis is focused in [1, 5, 15] . In [5] and [15] , the authors propose to map the TLM API onto an RTOS API. In [1] , the use of configurable communication coprocessors and a hardware abstraction layer (HAL) is proposed. The flurry of publications on this topic shows that SW generation from transactionlevel models is a promising solution to system level HW-SW codesign. But all these proposals have in common that the SW developer must adhere to a specific shared-memory or message-passing TLM API to establish SW-HW communication, with the above mentioned disadvantages.. To overcome this issue, in [3] , a service-oriented architecture based on hybrid elements is proposed. These elements provide a high level SW interface on the one side and a low level HW port on the other side. Thus, they act as a transactor between different levels of TLM abstraction. This concept is close to our HPC approach, but the examples in [3] are limited to low-level FIFO communication and the authors do not present a solution to automated transactor generation. An approach for the automatic generation of transactors from an abstract input description is presented in [14] . In contrast to our approach, here communication must be modeled using a predefined semantic based on message passing, shared memory accesses and events. We propose to raise the level of abstraction for SW-HW communication modeling even further. Our objective is to provide the same ease of use for HW services in a MPSoC model as Sun-RPC and Java-RMI do for remote services in distributed systems. To this end, we developed a high level HW service access protocol to be used on top of virtually any TLM fabric and also in the final SoC. For the experiments we considered the open-source TLM framework GreenBus [8] for SystemC, which supports different TLM APIs in one TLM fabric, including OCP [11] , OSCI-TLM [13] , and ST's TAC package [4] . Also, different levels of TLM abstraction are supported. Thus, our results can be applied to a broad range of TLM components.

B I 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 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 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 B 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 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 B 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 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 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 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 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 B 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 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 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 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 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 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 B 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 B O O O O O O B O O O O O O O B O O O O B O O O B 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 B O


Design and implementation of the glue-nail database system We describe the design and implementation of the Glue-Nail