An approach for the integration of swarm intelligence in MAS: an engineering perspective For more than 20 years, researchers have designed models in order to describe swarm intelligence and apply the resulting techniques to complex problems. However, there is still a gap between these models and current MAS methodologies. The goal of this paper is to propose a principled and methodological approach for the engineering of systems based upon swarm intelligence. The constraints are, on the one hand, to enable the analysis, design and implementation of such systems; and, on the other hand, to formally analyze and verify properties of resulting systems. The principles of the approach are based, on the one hand, on requirement driven activities that produce goals to be fulfilled by the system of interest and, on the other, hand on an ontological modeling of the problem domain. This ontological modeling conceptualizes the phenomenon one seek to imitate and thus allows it understanding. The produced ontology is refined through the methodology activities down to organizational models. For more than 20 years, researchers have designed models in order to describe swarm intelligence and apply the resulting techniques to complex problems. However, there is still a gap between these models and current MAS methodologies such as ASPECS [1] , TROPOS [3] or GAIA [38] .. The goal of this paper is to propose a principled and methodological approach for the engineering of systems based upon swarm intelligence. The constraints are, on the one hand, to enable the analysis, design and implementation of such systems; and, on the other hand, to formally analyze and verify properties of resulting systems. Some works have contributed to this issue [6, 7, 8] . In [7] the authors build a library of patterns of self-organizing behaviors. However, even if it is an interdisciplinary and interesting attempt to define a framework for engineering systems based upon swarm intelligence a lot of work has still to be done in order to define principled and methodological approaches relying on swarm intelligence.. The author of [6] proposes general rules in order to engineer swarming systems and a formal framework for analysis and validation. These rules are not related to current methodologies or development platforms. In [8] the authors design a complete methodology based upon the theory of Adaptive Multi-Agent Systems. This methodology allows the analysis and design of swarming systems but impose a cooperative internal medium which maybe a strong constraint for some cases. Swarming approaches are usually inspired by biology [9] or physics [10, 11] . These systems usually exhibit features such as self-organization, emerging phenomena, robustness and adaptability. One of the main problems with this kind of approaches is the small number of methodologies and guidelines which help the engineering of such systems. Indeed, to be fully adopted, methodologies must be able to decompose the underlying principles of these systems with abstractions in a principled way. Some experiments were done in the domain of swarming MAS architecture reverse-engineering [12] but they usually lack a systematic support. For instance, in [5] the authors give general principles in an informal way. However, it is a real problem and despite the interest risen by these architectures the claims that stripping away centralized control is enough to allow the emergence of interesting properties has never been proved [13] . In order to engineer such kind of MAS we propose to use a combined approach based, on the one hand, on requirement driven activities that produce goals to be fulfilled by the system of interest and, on the other, hand on an ontological modeling of the problem domain. The principle is to produce an ontology which conceptualizes the phenomenon one seek to imitate and thus allows it understanding. Indeed, swarming approaches [4] are based on the replication of existing behaviors, that have produced in certain experimental conditions the desired emerging properties. This statement was already observed in [5] :. Swarming is a discovery, not an invention. It is a naturally occurring phenomenon that we seek to imitate in engineered systems. Design principles for effective artificial swarming systems must be developed from an understanding of why swarming works in natural systems.. The produced ontology is then refined down to organizational models. The analyst can then choose from a library of organizational models the ones that will satisfy the goals issued from the requirements analysis. This combined approach is associated with formal proofs techniques in order to formally verify properties of organizational models and fulfillment of goals.. It seems a sound principle as the ontology is an understanding of the modeled system and so describes at least partially how it works. The interacting entities the designer wants to replicate and their possible actions are part of this ontology. In order to introduce a systematic activity, some guidelines are provided in order to identify organizations and roles from this ontology. This activity is integrated in an existing methodology, namely ASPECS. The modified methodology is then able to decompose such systems in roles, interactions and organizations which are the key concepts of the ASPECS analysis phase and which are identified, in the original methodology, by means of use cases. This kind of approach is advocated by the authors of [5] who state "we ought to be able to reverse-engineer the underlying mechanisms of swarming systems for use in synthetic systems". The paper is organized as follows: section 2 presents the background related to the ASPECS methodology and the specific architecture that illustrates the presented approach. Section 3 presents the ontological identification approach. Section 4 is dedicated to related works and section 5 concludes. This paper presents an approach for the engineering of swarming MAS. This approach is based simultaneously on the analysis of the Problem Ontology Description and the Goal-Requirements analysis of the problem. The result of the Problem Ontology analysis is the decomposition in terms of organizations composed of interacting roles. The construction of these organizations is described by an heuristic which exhibits interesting properties and the approach generates proof obligations from the ontology that should be proven by the concrete behaviors when defined. These properties once proven can be used to determine which organization is able to fulfill the identified goals from the goal-requirement analysis. Moreover, the heuristic that produces organizations only produces organizations that are syntactically correct since each role interacts with at least another role and the produced set of organizations is the smallest possible. The described activity of Organization, Role and Interaction identification is integrated in an existing MAS methodology, named aspecs. The aspecs initial flow of activities is modified in order to take into account the engineering of swarming MAS. It is a minor modification and the two subsequent phases, agency domain (a sort of design) and implementation remains unchanged. The result is then an entire methodology from analysis to implementation dedicated to swarming MAS. The interest of the presented approach is that it introduces a systematic way to engineer swarming systems that relies on the description of the system by an ontology. This description is not complex to obtain as it is the conceptualization underlying the chosen swarming system. Future works will be concerned by the analysis of well known swarming MAS in order to constitute a library of Organizational Design Patterns library. A first interesting property of the presented heuristic is that generated organizations are correct in the sense that it is impossible to produce an organization with a role that has no interactions with other roles. This can be easily proven by induction. The initial state produced from the ontology defines one organization, composed of two or more interacting roles, for each action. In this state the roles interact as each one participates in an action. Subsequently, the transformations that are applied to organizations are of the merge type. Each merge of organization is based upon union of roles and interactions. There are no suppressions of interactions. It is so impossible to create an isolated role. The second interesting property is that the set of generated organizations is the smallest possible respectively to the consistency test. It means that for a given problem ontology there are no smaller set of consistent organizations than the one produced by the heuristic. It can be proven by contradiction. If it were not true then among the generated organizations there would be at least two duplicates that could be merged. This is in contradiction with the loop (line 3 of Algorithm 2) that tests whether there are unchecked duplicates. The generated set of organizations is then the smallest possible. For many methodologies, such as [37, 38, 39] , the identification of roles and organizations is left to the designer choices or to an external requirements process. However, it is recognized that requirement elicitation is not an easy task and the assignment of such requirements to organizational structures is not a trivial task, any guidelines maybe helpful. For goal-oriented methodologies, like TROPOS [3] or MOISE [33] , there is a strong relationship between the organizational structure and the goals since each goal is associated to an organization (for MOISE) or actor (for TROPOS). The problem lies in the fact that goal-oriented approaches are not well fitted for swarming MAS as it is difficult to define goals and decompose them for this kind of system. Indeed, the principle is to replicate existing behaviors. Other methodologies do not take into account organizational concepts, as for example Prometheus [40] and Adelfe [8] . In [5] the authors propose definitions for swarming and self-organized MAS and give general principles on how to engineer swarming MAS. These principles are illustrated through several case studies. Even if it is a very important work both on theoretical and practical aspects, the given principles are not well formalized and may sometimes be ambiguous. Their application may lead to several different results. Moreover, the approach presented in this paper is based on organizational concepts which enable the definition of ODP from swarming metaphors. These ODP can be easily reused as many MAS methodologies and development platforms integrate organizational concepts. The authors of [13] deal with the engineering of emergence as it appears in many biological systems. The underlying assumption is that there must exist several levels and/or timescales to explain and describe emergence. Their proposition consists in a three elements architecture to be refined for any specific problem. These elements are: the System of System (SoS) model that describes the high level system, the local model that describes the lower level and the the integrated model that describes an integration environment between these two levels. This approach has some similarities with the one presented in this paper. Indeed, the Problem Ontology Description acts as an integration model describing the system at different levels. The local model is described by organizations which are projection of agents behaviors in a specific context. Eventually, the definition of agents and their behaviors, not described in this paper as it comes later on in the aspecs methodology, can be related to the SoS model. However, the work presented in [13] only sketch the architecture and do not propose a methodology to apply 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Controlled perturbation for arrangements of circles Given a collection C of circles in the plane, we wish to construct the arrangement A(C) (namely the subdivision of the plane into vertices, edges and faces induced by C) using floating point arithmetic. We present an efficient scheme, controlled perturbation, that perturbs the circles in C slightly * Figure 1 : Arrangement of circles with several degeneracies. Computational Geometry algorithms often assume general position of the input and the "real RAM" computation model. In the case of an arrangement of circles (namely the subdivision of the plane into vertices, edges and faces induced by the circles), general position of the input means that there is no outer or inner tangency between two circles, and that no three circles intersect at a common point (see Figure 1 for a degenerate arrangement). If one wishes to use floating-point arithmetic (to achieve fast running time), then even if the input is in general position, round-off errors may cause the algorithm to fail.. Thus, while building the arrangement in an incremental fashion (that is, adding one circle at a time), we will check if there is a potential degeneracy induced by the newly added circle, and if so, we will move that circle, so no degeneracies will occur. The main idea is to carefully relocate the circle -move the circle enough to avoid the degeneracies, but not too much. Depending on the precision of the machine floating-point representation, and some properties of the arrangement to be handled, we determine a bound δ on the magnitude of the perturbation, namely, we guarantee that any input circle will not be moved by a distance greater than δ.. Such a perturbation scheme, as was described above, could be useful for the following reasons: (i) floating-point arith-metic is usually supported by hardware, making computations very fast, (ii) degeneracies are eliminated, consequently an algorithm is made easier to analyze and implement, (iii) implementations using exact arithmetic with floating-point filtering, can be sped up, since the perturbation will cause the predicates to be evaluated using the floating-point filters, thus avoiding the use of exact computation.. In many situations, the original input data is inaccurate to begin with (due to, for example, measuring errors or approximate modeling), so the damage incurred by perturbing slightly is negligible.. The predicates that arise in the construction of arrangements of circles include expressions that contain division and square-root operations. Those operation are usually more difficult to handle robustly than addition, subtraction and multiplication.. The perturbation scheme that we follow, controlled perturbation, was first presented in [10] as a method to speed up molecular surface computation. The use of exact computation turned out to be too slow for real time manipulation, so a finite precision method was needed. Controlled perturbation was devised to handle the robustness issues caused by the use of finite precision arithmetic, and to remove all the degeneracies. It was extended in [16] , were it was applied to arrangements of polyhedral surfaces. Those arrangements require complex calculations in order to achieve a good perturbation bound.. In [16] (as in [10] ), the resolution bound (Section 4) is assumed to be given. The resolution bound is a key element in the scheme. In this work we describe a method for obtaining good resolution bounds, which we anticipate will lead to a better understanding of the method and will open the way to applying the method in other settings. Robustness and precision issues have been intensely studied in Computational Geometry in recent years [17] , [20] .. A prevailing approach to overcoming robustness issues in Computational Geometry is to use exact computation [13] , [21] . Such a strategy gives accurate results, and sometimes even allows the input to be degenerate. When applied naively, exact computation can considerably slow down the performance of a program. One of the possible solutions is to use filtering (e.g. [3] , [8] , [12] , [18] ). Typically, the filtering is done at the level of the number type. That is, a predicate is evaluated using exact computation only if it cannot be correctly evaluated using finite precision arithmetic. In [19] , high-level filtering is done on arrangements of conic arcs, and an alternative approach is given in [1] . In [5] , algebraic methods and arithmetic filtering are used for exact predicates on circle arcs.. An alternative approach aims to compute robustly with limited precision arithmetic, often by approximating or perturbing the geometric objects (e.g. [7] , [9] , [11] , [14] ). A variety of methods for handling imprecise geometric computations are surveyed in [17] . Controlled perturbation is a method of this type.

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


Virtual private social networks and a facebook implementation The popularity of Social Networking Sites (SNS) is growing rapidly, with the largest sites serving hundreds of millions of users and their private information. The privacy settings of these SNSs do not allow the user to avoid sharing some information (e.g., name and profile picture) with all the other users. Also, no matter the privacy settings, this information is always shared with the SNS (that could sell this information or be hacked). To mitigate these threats, we recently introduced the concept of Virtual Private Social Networks (VPSNs).In this work we propose the first complete architecture and implementation of VPSNs for Facebook. In particular, we address an important problem left unexplored in our previous research-that is the automatic propagation of updated profiles to all the members of the same VPSN. Furthermore, we made an in-depth study on performance and implemented several optimization to reduce the impact of VPSN on user experience.The proposed solution is lightweight, completely distributed, does not depend on the collaboration from Facebook, does not have a central point of failure, it offers (with some limitations) the same functionality as Facebook, and apart from some simple settings, the solution is almost transparent to the user. Thorough experiments, with an extended set of parameters, we have confirmed the feasibility of the proposal and have shown a very limited time-overhead experienced by the user while browsing Facebook pages. Social Networking Sites (SNSs) are Internet-based applications that allow for usergenerated content to be published and accessed easily by a global audience. Some of the SNSs are the most visited sites on the Internet. The biggest SNS, that is, Facebook (which number of users [Facebook 2012a ] surpassed the population of the European Union), allows users to create an account with an extensive choice of profile information fields (e.g., Basic Information, Interests, Profile Picture, Contact Information).. The pervasiveness of social networks, in a growing number of people's life and activities, has led to increasingly more private information being "leaked" online. In many cases (i) this is due to just carelessness of users. In many other cases, (ii) information is "leaked" because of the design of privacy controls of the SNSs. As an example, in Facebook, Name, Profile Picture, Gender, and Networks, are considered "publicly available information" (before a recent change [Facebook 2012a ], even Current City, Friend List and Pages one is a fan of were considered public). That is, such information, according to Facebook may "be associated with you (i.e., your name, profile pictures, cover photos, timeline, User ID, username, etc.) even off Facebook, can show up when someone does a search on Facebook or on a public search engine, will be accessible to the Facebookintegrated games, applications, and websites you and your friends use, and will be accessible to anyone who uses our APIs such as our Graph API" [Facebook 2012b ]. Furthermore, not only can anyone view these fields by simply knowing someone's user ID or username, but also they can be accessed by third-party application developers and Web sites. In other words, a Facebook user cannot abstain from sharing certain information with other third parties. Finally, (iii) inference (of private attributes) can be accomplished by joining data of the profiles the user has in different SNSs (e.g., Facebook, LinkedIn, Twitter, Flickr)-while harder to get, information available from the real world could also be used. Consequently, the privacy related issues have raised the interests of security researchers.. The significance of the privacy issue is escalated by the fact that most of the profiles contain real information [Gross and Acquisti 2005; Young and Quan-Haase 2009] . According to Young and Quan-Haase [2009] , in Facebook 99.35% of the users use their real name, 92.2% reveal their birth date, 80.5% their current city, and 98.7% also display a profile picture of themselves. Furthermore, it is relatively easy to reidentify a user that has multiple (public) accounts in various SNSs [Narayanan and Shmatikov 2009] .. There are countless reports on how this amount of data collected from SNSs are being (mis)used. For instance: marketing companies are getting community structure data [Dybwad 2010 ]; identity theft [Tabakoff 2009 ] and identity cloning [Jin et al. 2011] can be performed more easily; students or employees are getting in trouble because of information that was found on social networks through de-anonymization techniques [Wolfe-Wylie 2010] ; and even the robbers' life has been simplified [van Amstel et al. 2010] . Furthermore, recent research [Reay et al. 2009] shows that Web sites (including SNSs) generally do not even claim to follow all the privacy-protection mandates in their legal jurisdiction (this is true for several jurisdiction with specific laws for privacy, including several European Union nations). All these reasons explain the fact that some people do not like that anyone (including SNSs) knows their personal information as: real name, city, gender, interests (e.g., via Facebook "networks"), or their social network graph (the people to whom they are connected), and other information that might be available, depending on the specific SNS.. This work addresses these privacy issues by leveraging the concept of Virtual Private Social Network [Conti et al. 2011 ]; a concept similar to the one of Virtual Private Network (VPN), used in computer networks. The main idea is to build private social networks between users leveraging the already existing architecture of SNSs. It is essential for a VPN to benefit from the existing infrastructure. Members of the VPN are network nodes, and they can communicate in a way that is confidential with regards to the nodes outside that VPN. Analogously, a VPSN leverages the infrastructure of an already existing social network, primarily because it is very unlikely for users to move away from popular social networks. Members of the VPSN are already members of the social network they leverage. VPSN members can share information (specifically, the attributes of the profile) in a way that is confidential with regards to: i) the other members of the underlying social network; and ii) also against the social network administrator. A VPSN can be seen as: i) a privacy-aware SNS without the need to manage a SNS infrastructure; ii) a tool to mitigate the privacy threats for the huge number of users that are already using popular SNSs.. We emphasize that the concept of VPSN is not present yet in current SNSs. That is, a user is not able to implement a VPSN with the available tools. While it is not clear whether privacy is a motivation strong enough to justify the implementation of a new SNS from the scratch, we believe the first SNS platform able to offer strong privacy will have a major competitive advantage [Cutillo et al. 2009 ]. Our focus is on leveraging existing infrastructure, and mitigating the privacy problem for SNSs that already count millions of users.. We focus more specifically on Facebook-the most popular SNS-for which we implement our concept of Virtual Private Social Networks (VPSNs). We call this implementation FaceVPSN. The central problem being addressed is how to use Facebook to share real information only with the other VPSN's member-without any other third party (including application developers) being able to see the real information.. The robustness of FaceVPSN lies in the fact that it is technically compatible with Facebook and it does not require its collaboration, while it completely leverages the already present and (freely) available Facebook architecture and systems-without requiring any additional infrastructure as other solutions do (e.g., FaceCloak [Luo et al. 2009 ] and NOYB [Guha et al. 2008] ). In FaceVPSN, the required system resources are distributed among the VPSN members: each member is required to have a small storage and computation overhead that are proportional to the number of members in the VPSN the user belongs to.. Contribution. In this article, we introduce the concept of Virtual Private Social Networks (VPSNs) and we propose its first complete architecture and implementation for Facebook: FaceVPSN. The proposed solution is lightweight, completely distributed, does not depend on the collaboration from Facebook, does not need to rely on any specific server (i.e., it is also resilient to failure or malicious activities from external XMPP [XMPP Protocol 2011] servers involved in our architecture), it offers almost the same functionality as Facebook, and it is (to some extent) transparent to the user. Thorough experiments confirmed the feasibility of the proposal, and have shown a very limited time-overhead experienced by the user while browsing Facebook pages.. While VPSN recalls to some extent the concept of VPN, addressing privacy in social networks sites is not as trivial as adding encryption to the communications (as it would be for a VPN). Rather, the analogy relies on the fact that VPSN is enabling two parties to convey information to each other by hiding it to the infrastructure that the parties use to communicate. As an example, encrypting profile information and messages in Facebook may result in having your profile removed by the SNS. Indeed, a weakness that is common among most of the current privacy preserving solutions for Facebook is the following: Facebook is able to identify these solutions; then either it can remove the solutions from the social network or remove the users that use those solutions. Differently from those approaches, our solution is far more stealthy. In particular, we argue that for Facebook it is not easy to identify a profile with a reasonable name but which is different from the real name of the owner; also, from recent version of browsers (e.g., Firefox 3.0) it is not possible for Facebook also to identify whether the user is running FaceVPSN add-on in her browser [Mozilla 2012a ].. We clarify that our aim is not to make yet another new privacy aware social network, as there are already in the literature [Daniel et al. 2010 ], but to mitigate the privacy threats of a number of users already using Facebook; please note that this number is almost as the population of the entire Europe and USA combined.. Organization. The rest of the article is organized as follows. Section 2 introduces related work in the field of privacy issues in social networks. Section 3 introduces the new concept of Virtual Private Social Networks (VPSNs). Section 4 introduce FaceVPSN, our implementation of VPSNs for Facebook. Design and implementation details are discussed in Sections 5 and 6, respectively. Section 7 contains the evaluation and discussions about the proposed solution. Finally, in Section 8 we present our concluding remarks. In this article, we went through the concept of VPSNs (Virtual Private Social Networks, that we recently proposed in the preliminary version of this article), via proposing a complete architecture and implementation of the VPSNs concept in the Social Networking Site (SNS) that is by far the most popular SNS: Facebook, counting some 1 billion users. The aim of VPSNs is to mitigate the privacy threats to which personal data of this huge number of users are exposed. FaceVPSN, that is our VPSN implementation for Facebook is, to the best of our knowledge the first solution for privacy threats mitigation that all at once is: lightweight, completely distributed, does not depend on the collaboration from Facebook, does not need to rely on any specific server-i.e., it is also resilient to failure or malicious activities from external servers-, it offers almost the same functionality as Facebook, and is (to some extent) transparent to the user. Implementation and experimental results further confirmed the feasibility of the proposal, and shown a very limited time-overhead experienced by the user.. Future research aims to provide solutions to simplify the establishment of a FaceVPSN friendship via interactions of mobile devices (e.g., smartphone), and in turn use these devices as portable storage that interacts with the FaceVPSN component. This would make our proposal independent from the specific computer machine where the user is actually storing the data. Moreover, we intend to leverage new Web technologies like Mutation Observers and Web Workers to make the implementation of FaceVPSN (i.e., the Replacer part) more efficient and user friendly. Finally, we aim to investigate privacy threats mitigation solutions for location based services of SNSs, like Facebook Places and Google Latitude. Following the popularity of social networks, the issue of privacy in social networks has gained momentum in the last couple of years. Nonetheless, most of the published research deals primarily with general de-anonymization, and in few cases with anonymization techniques that are not designated for a specific SNS. We shall also bring to the reader's attention the fact that most of these works, referring to Facebook, have been made obsolete by the recent changes (e.g., in September 2011) of the Privacy Policy of Facebook [Facebook 2012b ].. Many papers investigate the different facets of privacy in SNSs. Mislove et al. [2010] , Zheleva and Getoor [2009] , and Hay et al. [2007] emphasize the issue of communities centered around attributes (i.e., Facebook Fans of Vrije Universiteit in Amsterdam) when approaching privacy problems. They show the possibility to predict, with high probability, a user's attributes using the attributes of her friends and contacts. Golbeck [2009] investigates profiles similarity and how those relate to the way users determine trust, hence their willingness to share private information. Kacimi et al. [2009] present a privacy protocol allowing anonymous opinion exchanges over untrusted SNSs. Korolova et al. [2008] investigate the number of user accounts needed to be compromised to rebuild the entire social graph. This number is strictly dependent on the SNS's lookahead (a social network has lookahead l if a user can see all of the edges incident to the nodes within distance l from her). The paper recommends limiting the lookahead to 1 or 2, for any social network that wishes to decrease its vulnerability.. Researchers already proposed several solutions to protect private data in social networks. Aimeur et al. [2009] proposed a user privacy policy (in the form of a contract) to ensure the proper protection of private data. SNSs are supposed to implement such policies to improve the privacy of their users. Despite a prototype implementation being presented in Aimeur et al. [2010] , to have an impact the solution requires existing SNSs to adopt such a policy. Similarly, Persona [Baden et al. 2009 ] is a social network in which the user defines a privacy policy. This policy manages access to user information. Persona uses an application named Storage to allow users to store personal data, as well as share them through an API with others. The authors have integrated Persona with Facebook as an application to which users log-in through a Firefox extension, which interprets the special markup language used by Persona applications. Only users of Persona, with necessary keys and access rights, will be able to access the data from Storage, and view them in their browser. Nonetheless, it is only another Facebook application that can easily be removed by Facebook from the applications directory. Another interesting recent thread of research is considering the possibility of new competitor social networks designed with privacy in mind [Cutillo et al. 2009; Vu et al. 2009; Durr et al. 2010; Daniel et al. 2010; PrimeLife 2011] . We expect those solutions, when supported by a good business model, to reach a wide consensus from users. However, differently from these solutions, our aim is to mitigate threats to the privacy of millions of users that are currently using existing SNSs. That is, we aim at leveraging (for free) the existing SNSs infrastructure to build on top of them Virtual Private Social Networks (VPSNs). Felt and Evans [2008] propose the "privacy by proxy" API to allow Facebook to reveal users' private information only if this is explicitly allowed by the user. This is done by interpreting special FBML (Facebook Markup Language) tags (i.e., Facebook specific HTML-like tags) in the output of the applications. However, the solution in Felt and Evans [2008] requires the cooperation of Facebook. Similarly, another proposal, flyByNight application [Lucas and Borisov 2008] , requires the cooperation of Facebook. flyByNight provides secure messaging between Facebook friends, by encrypting and decrypting sensitive data using client-side JavaScript. However, it does not solve the privacy concerns with regards to publicly available information. Another solution for privacy of communication in SNSs is the Secret Interest Groups (SIGs) framework [Sorniotti and Molva 2010] . Although, not a direct solution to privacy of public information, it offers an interesting new way to create self-managed "secret groups" (about private topics), and control group memberships. The idea is integrated with Facebook as an implemented Java HTTP proxy. While the concept of SIGs is close to the one of VPSNs, we note that the solution suggested in Sorniotti and Molva [2010] -even if not centralized or having a single authorization entity-envisages the presence of one or more managers that, for example, allow new users to join the SIG. Furthermore, even for the managers, any operation is "thresholdized." That is, more managers need to join and agree in order to make a decision (e.g., add a new member). We underline that such an approach is completely different from the one we propose in our work. That is, each single user is completely independent on defining who (and how) will be able to access her private information. Finally, for all the solutions implemented through a proxy, we argue that a user might not be willing to have a proxy filtering all of her browsing.. Another similar idea of grouping friends is implemented as a Facebook application in Yuksel et al. [2010] . In this solution, some questions are posed to the user (e.g., about her willingness to share a piece of their personal information with a friend). Based on her answers, a social graph is constructed and the user is recommended to have different levels of access to her profile for users in different groups. This topology-based approach on privacy, by sharing a different profile with different groups, for instance, friends, and friends of friends, has been shown to have its risks as well [Carminati et al. 2011] . Carminati et al. [2011] quantify the probability of Unauthorized Access Risk that information is propagated from friends of a user to unauthorized users.. More similar to our approach, is the one of FaceCloak [Luo et al. 2009 ]. FaceCloak is a Firefox extension allowing users to specify which data in their profile, or Facebook activity, need to be kept private. The sensitive data are substituted with fake ones, while the encrypted version of the private data are published on a third-party server. Users email keys to each other, so that their respective FaceCloak extensions can retrieve the real text from the third-party server. Then, each time a user retrieves a friend's profile from Facebook, in order to substitute the fake data with the real ones FaceCloak must retrieve also the encrypted version of the sensitive data from the third-party server. Hence, FaceCloak relies upon the availability of a "parallel" centralized infrastructure to store the encrypted data rather than leveraging on the existing Facebook platform.. An obvious drawback of this solution is that users have to trust the security of the third-party server. Also, the third-party server represents a single point of failure.. A similar approach has been taken by Beato et al. [2011] . The proposed Scramble system is implemented as a Firefox extension that allows users to define access control lists for the data they publish on various popular social network sites. The content, namely, wall posts, private messages and news status, is encrypted with OpenPGP and later on decrypted by the extension under the keys of the group members who are allowed to view that piece of content. The user selects the text that she wants to encrypt and then the extension publishes an encrypted version that can be seen only by the specified friends. A rather similar concept, but implemented specifically for Twitter is presented in De Cristofaro et al. [2011] . Hummingbird allows users to define access lists for their tweets, which are encrypted before publishing as well as to privately follow hash-tags for the topics of their interest.. NOYB ("None Of Your Business") [Guha et al. 2008 ] is another system for privacy protection on Facebook. Private profile information is divided into atoms (e.g., name and gender constitute one atom), and each atom is "replaced" with a corresponding atom from another randomly selected user who uses NOYB. Only authorized users can reverse the process of attributing the atoms of information to the real profile. NOYB is implemented as a browser add-on for the Firefox Web browser. The problem with NOYB is that the anonymity depends on the number of its users. Another Firefox Extension is proposed Kumari et al. [2011] to enforce user requirements on access level for her data. More specifically, the extension controls events such as print, copy, paste, save, etc. on rendered text and images based on user generated access policies on the server side. The extension is tested through a sample social network, Scuta, which again is not solving the issue for Facebook users.. None of the work in the literature mention the concept of Virtual Private Social Networks (VPSNs), apart from Figueiredo et al. [2008] that somehow put together the concept of VPN and the one of Social Network. However, we argue that the proposal in Figueiredo et al. [2008] does not actually bring the concept of VPN into Social Networks (i.e., building a virtual social network over a real social network). Rather, they propose just another new social network-with privacy features, indeed-but with no relation to a preexisting Social Network. In particular, they create a new social network over their previously proposed IPOP framework [Ganguly et al. 2006 ]-that builds an IP network over P2P, hence resulting in a distributed VPN. While the scope of our work is far from building a proper access control model, our aim is similar to the one of access control models for Web services [Paci et al. 2011] , where access to information is restricted based on user's credentials, and possibly limiting to the user the knowledge about the access policies the user is subject to.. Most of the reviewed literature does not address the problem of publicly available information on Facebook. The few proposed solutions that we mentioned above either (i) rely upon an additional centralized infrastructure or (ii) rely upon the collaboration of Facebook and add unnecessary encryption overhead in users' interaction with Facebook. In contrast, the solution proposed in this article does not suffer from these limitations.. To the best of our knowledge the concept of Virtual Private Social Networks (VPSNs), as a social network with privacy features build on top of an existing social network, has been introduced for the first time in the preliminary version of this article [Conti et al. 2011] . In this work, we propose a complete implementation of the VPSN concept in Facebook. In particular, we address an important problem that was left open in Conti et al. [2011] , that is the automatic propagation of a modified profile to all the users within the VPSN. The proposed solution meets the desirable characteristics a VPSN should have [Conti et al. 2011] , while being transparent to the user.. The implementation of the automatic update is also resilient to servers experiencing failures or behaving maliciously.

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


Task-First or Context-First? Tool Integration Revisited Abstract-If software engineering tools are not "properly integrated", they can reduce engineers' productivity. Associating and retrieving information scattered across the tools become unsystematic and inefficient. Our work provides empirical evidence on what is a "poor" and a "proper" tool integration, focusing on practitioners' perspectives.We interviewed 62 engineers and analyzed the content of their project artifacts. We identified problem situations and practices related to tool integration. Engineers agreed that tool integration approaches must support change, heterogeneity and automatic linking of change to context. To quantify our results, we conducted a field experiment with 27 and a survey with 782 subjects. We found a strong correlation between change frequency and preferred integration approaches. Particularly in projects with short release cycles, tasks should be used to link information handled by different tools. We also found that half of engineers' work is not defined as tasks. Therefore, a context-based tool integration approach is more effective than a task-based one. In software engineering projects tools are used to increase automation of both development and management tasks. Ironically if these tools are "not properly integrated", they might become a major productivity blocker -as against their original goal. First, with a "poor integration", dependencies between information handled by different tools are maintained manually and not systematically, e.g. in excel sheets or copy-and-pasted texts. Tracing development artifacts, such as test cases, requirements and components becomes error-prone and time consuming. Also, assessing change impacts (such as impacts of requirements change on release plans) is difficult and inaccurate. Second, overlapping in tool functionality leads to partially redundant information islands. A milestone might be described in a project plan, a requirement document and in a change request. When change occurs information easily becomes inconsistent, making it difficult to identify what is up-to-date and what is not. Third, answering particular information queries becomes a painful process, in which engineers repeatedly retrieve identifiers in the one tool, copy associations to the other tool and map keywords between tools until they compile needed information. The results are inefficient searches and many tool switches that waste engineers' time and concentration [1] .. In our research we aim at better understanding of what "properly" and "poorly" integrated means -from the perspective of software engineers themselves. We revisit foundation work on tool integration, taking recent findings on the change-and information-driven nature of software engineering [1] , [2] into consideration. Thus our work provides empirical evidence on the as-is and to-be situation of tool integration. It has two major contributions:. 1) The identification and quantification of problems resulting from "poorly" integrated tools. 2) Evidence that task-based integration is the most preferred approach when changes occur frequently. To this end we conducted a 2.5 years study in industrial settings. Section II motivates the study by reviewing previous effort and describes its research questions and methods. Section III describes identified tool integration problems and requirements. Section IV reports on a field experiment and a survey we conducted to quantify our findings. Finally Sections V and VI summarize the results and their implications for tool researchers and vendors. If software engineering tools are not properly integrated, they can become a major blocker for team productivity. In our research we interviewed 62 professionals and analyzed their project documents to understand what properly integrated means, identifying practices, problems and requirements. We also conducted a field experiment and surveyed 782 engineers around the globe. We found that after more than 20 years of research in tool integration, only half of software engineers are satisfied with the current situations. Engineers still have to struggle with many problems while linking and retrieving information scattered across the tools. We also found that homogeneous unified integration solutions are neither realistic nor effective. Instead, integration approaches should support heterogeneity. Heterogeneous software engineering tools should agree on behaviors to link performed changes and communication threads to the contexts where they emerged. Engineers in change-driven projects think that tasks are most suitable for a cross-tool association and retrieval of information. But for half of software engineering work no tasks exist. Thus, instead of tasks, working context would be a more acceptable concept for linking software engineering workflow and information. We identified first ideas to realize such approach. But more detailed research on the feasibility should follow. We first discuss threats to validity of our findings. Then we outline their implications for tool researchers and designers, and deduce the need for researching context-awareness.

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


Removing propagation redundant constraints in redundant modeling A widely adopted approach to solving constraint satisfaction problems combines systematic tree search with various degrees of constraint propagation for pruning the search space. One common technique to improve the execution efficiency is to add redundant constraints, which are constraints logically implied by others in the problem model. However, some redundant constraints are propagation redundant and hence do not contribute additional propagation information to the constraint solver. Redundant constraints arise naturally in the process of redundant modeling where two models of the same problem are connected and combined through channeling constraints. In this paper, we give general theorems for proving propagation redundancy of one constraint with respect to channeling constraints and constraints in the other model. We illustrate, on problems from CSPlib (http://www.csplib.org), how detecting and removing propagation redundant constraints in redundant modeling can speed up search by several order of magnitudes.Choi, C., Lee, J., and Stuckey, P. 2007. Removing propagation redundant constraints in redundant modeling. Finite domain constraint programming combines backtracking tree search with constraint propagation to solve constraint satisfaction problems (CSPs) [Mackworth 1977] . Constraint propagation removes infeasible values from the domains of variables to reduce the search space. This propagation-based constraint solving framework is realized in modern constraint programming systems such as ECL i PS e [Cheadle et al. 2003 ], ILOG Solver [1999] , and SICStus Prolog [2003] , which have been successfully applied to many real-life industrial applications.. There is usually more than one way of modeling a problem as a CSP. By modeling a problem as a CSP, we mean the process of determining the variables, the associated domains of the variables, and the expressions of the constraints. Finding a good model of a CSP is a challenging task. A modeler must specify a set of constraints that capture the definitions of the problem, but this is not enough. The model should also have strong propagation: that is, it should be able to quickly reduce the domains of the variables of the problem. Moreover, the implementation of propagators to perform constraint propagation should be efficient. Last but not least, the choice of variables and the associated domains should lead to a smaller search space than others. 1 A common technique to increase propagation strength is to add redundant constraints, 2 which are logically implied by the constraints of the model. An early and significant use of redundant constraints appears in Carlier and Pinson [1989] for solving job-shop scheduling problems. Adding redundant constraints can be beneficial since the constraint solver may extract more information from these redundant constraints. However, some logically redundant constraints are propagation redundant, and hence do not contribute additional propagation information to the constraint solver. Generally, we only want to add redundant constraints that are not propagation redundant in order to reduce the search space.. Example 1. Consider the following constraints,. Suppose the domain for x 1 is {−2, −1, 0, 1}, and the domains for x 2 and x 3 are both {−2, −1, 0, 1, 2}. During constraint propagation, the constraint solver checks each constraint in turn and removes infeasible values from the domains. This process is repeatedly applied until there are no further changes in the resulting domains.. (1) We check x 1 ≥ x 2 and remove 2 from the domain of x 2 since it is infeasible to form a solution of x 1 ≥ x 2 with x 2 = 2. Now, the domain of x 2 is {−2, −1, 0, 1}. (2) We check x 2 ≥ x 3 and remove 2 from the domain of x 3 since it is infeasible to form a solution of x 2 ≥ x 3 with x 3 = 2. Now, the domain of x 3 is {−2, −1, 0, 1}.. (3) We check x 1 ≥ x 3 and do nothing. This checking is redundant since anything that can be removed by this constraint will be removed by the other two. The constraint is propagation redundant.. Clearly, the constraint x 1 ≥ x 3 is logically implied by the constraints x 1 ≥ x 2 and x 2 ≥ x 3 . Note that if x 1 ≥ x 3 were the first constraint checked, it would indeed remove the value 2 from the domain of x 3 . However, it is easy to verify that by removing x 1 ≥ x 3 from the model, we still obtain exactly the same resulting domains. Hence, x 1 ≥ x 3 does not (really) contribute additional domain reduction to the model.. Note that logical redundancy does not imply propagation redundancy.. Example 2. Consider the following constraints,. Suppose the domain of x 1 and x 2 is {−2, −1, 0, 1, 2}. During constraint propagation, the constraint solver checks each constraint in turn as follows:. (1) Checking x 1 − x 2 ≥ 0 removes no values from any domain.. (2) Checking x 1 + x 2 ≥ 0 again removes no values from any domain.. (3) Checking x 1 ≥ 0 removes the values −2 and −1 from the domain of x 1 .. Note that x 1 ≥ 0 is logically redundant with respect to x 1 − x 2 ≥ 0 ∧ x 1 + x 2 ≥ 0. Clearly it is not propagation redundant.. Depending on the order in which constraints are checked, propagation redundant constraints may or may not remove values from the domain (as illustrated earlier). Hence there certainly is a runtime cost associated with propagation redundant constraints. Removing propagation redundant constraints leads us to exactly the same domains after constraint propagation, but with significantly less cost for the propagation, as we shall see later in the experiments.. An important source of logically redundant constraints is in redundant modeling [Cheng et al. 1999] . A problem can be modeled differently from two viewpoints using two different sets of variables. By connecting the two different models with channeling constraints, which relate valuations in the two different models, stronger propagation behavior can be achieved in the combined model. However, the additional variables and constraints impose extra computation overhead. Given that each model is complete and only admits the solutions of the problem, then each model is logically redundant with respect to the other model plus the channeling constraints. In many cases, some of the constraints are also propagation redundant with respect to the other constraints in the combined model. By reasoning about propagation redundancy, we can improve redundant modeling by just keeping the constraints which give beneficial new propagation.. In this paper, we introduce the notion of restrictive and unrestrictive channel functions to characterize channeling constraints. We study the propagation behavior of constraints based on the notion of propagation rules, which capture each possible propagation by a constraint. This allows us to systematically determine if a propagator is redundant with respect to the propagators of a set of constraints through simple implication tests. We give general theorems for proving propagation redundancy of constraints involved in redundant models.. We focus on propagators that perform (the combination of) two popular propagation techniques, namely domain propagation [Van Hentenryck et al. 1998 ] and set bounds propagation [Gervet 1997 ], including global constraints that implement these approaches (see Example 26) . The underlying machinery we use can express any propagators that only deal with integer domains and set bounds, and some of our results are directly applicable to such propagators. Although we do not consider stronger set-based propagators that reason more about cardinalities [Azevedo and Barahona 2000; Müller 2001 ]), we can understand stronger cardinality reasoning as additional constraints using implicit cardinality variables. Hence, we can model common cardinality reasoning using additional propagators.. We illustrate, on problems from CSPLib (http://www.csplib.org/), how detecting and removing propagation redundant constraints can significantly speed up solving behavior. This article is a revised and extended version of our earlier work [Choi et al. 2003a [Choi et al. , 2003b .. The remainder of the article is organized as follows. In Section 2, we introduce propagation-based constraint solving and propagation rules, a way of enumerating the different propagation behaviors of a propagator. In Section 3, we give theorems that are useful in determining propagation redundant constraints. In Section 4, we define a broad form of channeling constraints that are covered by our approach. In Section 5, we give theorems that allow us to show which constraints in a redundant model are not causing extra propagation and can be removed. In Section 6, we give experimental results showing the benefits of detecting and removing propagation redundant constraints. In Section 7, we discuss related work. In Section 8, we summarize our contributions and shed light on future directions of research. The contributions of this article are threefold. First, we define channeling constraints in terms of channel functions, which allows us to cover a broad form of redundant modeling. By breaking up a propagator into individual propagation rules, we reason that constraints in one model can be made propagation redundant by constraints in the other model through channels. Second, we introduce the notion of restrictive and unrestrictive channel functions to characterize channeling constraints. Restrictive channel functions can themselves make a constraint in the combined model propagation redundant. Unrestrictive channel functions allow the detection of propagation redundancy of a constraint in one model with respect to a constraint in the other model plus the channels simply in terms of logical consequence. Third, benchmarking results confirm that removals of propagation redundant constraints from combined model can often lead to a faster implementation with the same search space and consuming less memory. As explained in Section 7, this article extends related work by covering a broader form of redundant modeling and reasoning about the propagation redundancy of all the constraints in the redundant models.. Although we have concentrated on domain and set bounds propagators, many of our results can be used for other propagators. Lemma 6 can be applied for any propagator, since it only relies on the propagation rules. We can use Theorems 7, 9, 14, and Corollary 8 to prove the weaker propagators for c than dsb(c) are propagation redundant, or that stronger propagators for c than dsb(c) make another propagator redundant.. Our work prompts a number of important future directions for research. It is interesting to investigate if the process of removing propagation redundant constraints can be (semi-)automated. To use Theorem 9 we can straightforwardly define the propagation rules for many constraints (parametrically in D init ) or construct them automatically using the approach of Abdennadher and Rigotti [2002] . The number of propagation rules for most constraints, however, are exponential. A naive implementation would be computationally too expensive and impractical for more complex real-life applications. A possible approach is to consider parameterized propagation rules, which denotes a set of propagation rules, so that the number of rules is vastly reduced. We can also try to use Theorem 14 to prove propagation redundancy without considering propagation rules.. The amount of computation overhead induced by propagation redundant constraints depends on the order and on the events which constraints are processed during constraint propagation. Our experimental platform, ILOG Solver, is a proprietary constraint programming library which does not provide access to such information. It would be interesting to study how these factors affect the performance of constraint solving after propagation redundant constraints are removed from the model.. Our existing approach analyzes the propagation behavior of the redundant constraints in the model statically before search. It is interesting to investigate for an alternative approach of analyzing dynamically the propagation behavior of redundant constraints during search. Based on the results of dynamic analysis, the constraint solver should avoid (as much as possible) processing the propagation redundant constraints during constraint propagation. This would minimize the computation overhead incurred by the propagation redundant constraints even if they are present in the model.. Redundant modeling gives rise to the need to decide which variables to label during search. As demonstrated in Section 6, the choice of search variables can greatly affect the size of the search space. For example, Geelen [1992] , Smith [2000; , and Hnich et al. [2004] , also show that certain choices of search variables do lead to a smaller search space. Therefore, it is interesting to study and establish criteria in choosing the better set of search variables. In this article, we consider integer and set constraint solving with constraint propagation and tree search. In an abuse of notation, we refer to arithmetic constraints over Boolean variables as Boolean constraints, they are often called pseudo-Boolean constraints. Hence, Boolean constraint solving is considered as a special case of integer constraint solving. Our notations, although different from the conventional CSP literatures, allow us to express the theoretical framework in a simpler manner. We can take advantage of the reasoning about propagation redundancy to eliminate propagators that are propagation redundant. We then get a model with exactly the same propagation strength but with fewer propagators. This can translate into faster propagation. 6 We verify empirically the improvement of removing propagation redundant constraints for the problems in Section 4, except for the n-Queens problem, the reason being that there exist better single models for the n-Queens problem using the global alldifferent constraint so that redundant modeling is not worthwhile. In the following experiments, all the benchmarks are executed using ILOG Solver 4.4 on Sun Ultra 5/400 workstations running Solaris 8. The first column of each table indicates the problem instances. The second column describes the models under comparison. The third column indicates the choices of search variables. In the case of combined models, we have the choice of searching the variables for just one model, or from both models together. However, the question of choosing the "best" set of search variables that gives the smallest search space is out of the scope of this paper. To compare the performance of the different models, we measure the total number of fails (fourth column), total memory used in kilobytes (fifth column), and CPU time in seconds (sixth column). Table entries marked with a "-" mean failure to solve the problem after one hour of execution. To highlight the benefits of removing propagation redundant constraints, we place the figures for the full combined model and the optimized combined model on the same cell separated by the symbol "/". To improve the efficiency of combined models, we use the IlcInverse global constraint in ILOG Solver to implement the permutation channel. However, ILOG Solver does not provide such a global constraint implementation for the other two channels. Hence, we have implemented our own global constraints for the Boolean channel and set channel to make the results more consistent. Table II compares the different models for finding the first solution of the Langford's Problem. The models under comparison include the single models: M X and M Y , the full combined model (M X + C + M Y ), and an optimized combined model (LX2.1 + LX2.2 + C ) as discussed in Examples 17 and 21. We use the smallest domain first (i.e., IlcChooseMinSizeInt in ILOG Solver) variable ordering heuristic and order values in the domain from the least to the greatest. Our opt model corresponds to the minimal combined model of Smith [2000] . Smith empirically shows that using the minimal combined model with search variables X ∪ Y is more efficient in solving this problem. Our results agree with those presented by Smith, where the opt model is faster and maintains the same number of fails as the full model for all three sets of search variables, and the opt model with search variables X ∪ Y is the fastest among all the models under comparison. In addition to time and number of fails, the amount of memory consumption needed to solve a problem is also an important measure of performance (which is not presented by Smith). The presence of propagation redundant constraints consumes a lot of unnecessary memory spaces. From Table II , we can see that the opt model requires a lot less memory than the corresponding full model.

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


Valid inequalities for the single-item capacitated lot sizing problem with step-wise costs This paper presents a new class of valid inequalities for the single-item capacitated lot sizing problem with step-wise production costs (LS-SW). We first provide a survey of different optimization methods proposed to solve LS-SW. Then, flow cover and flow cover inequalities derived from the single node flow set are described in order to generate the new class of valid inequalities. The single node flow set can be seen as a generalization of some valid relaxations of LS-SW. A new class of valid inequalities we call mixed flow cover, is derived from the integer flow cover inequalities by a lifting procedure. The lifting coefficients are sequence independent when the batch sizes (V) and the production capacities (P) are constant and if V divides P. When the restriction of the divisibility is removed, the lifting coefficients are shown to be sequence independent. We identify some cases where the mixed flow cover inequalities are facet defining. A cutting plane algorithm is proposed for these three classes of valid inequalities. The exact separation algorithm proposed for the constant capacitated case runs in polynomial time. Finally, some computational results are given to compare the performance of the different optimization methods including the new class of valid inequalities. We identified a new class of valid inequalities for a special case of the lot sizing problem, that we called mixed flow cover inequalities. A single-item is produced with a limited capacity, and Cover LP 24895 26481 26486 24895 24895 24895 24895 24895 SEP ---25245 25493 26375 25001 Table 8 : Table 9 : P = 80, n = 20, V = 20, d = 40. for each batch produced, a fixed cost is paid in addition to the setup cost per production period. This new class is derived from the integer flow cover inequalities which have been first proposed for the single node flow set which is a generalization of the set X mix we study. For X mix , we provided also the flow and integer flow cover inequalities and different extended formulations we found in the literature. These extended formulations are proposed for X mix itself or for its valid relaxations. We proposed a separation algorithm for the cover type cuts, which runs in polynomial time when the capacities are constant. For X mix , this new class of valid inequalities is shown to be more effective than the flow cover and the integer flow cover inequalities. The insertion of the extended formulations based on the divisible mixing set and on the mixing set are very efficient when the vehicle capacity divides the production capacity. Their linear relaxation gives the optimal solution in this case. Otherwise they can take more time than the violated mixed flow cuts added to the root node. Surprisingly, for the sets tested until now, the addition of all the violated cover type inequalties (lifted flow, integer and mixed flow cover), the total time and the total number of nodes decreased significantly. For the case where the vehicle capacity divides the production capacity, we obtain the optimum at the root node after the addition of all cover type inequalities, as the extended formulations do. Even for the more general case where the vehicle capacity does not divide the production capacity, we obtain very good results compared to other Table 11 : P = 80, n = 20, V = 70, d = 40 methods, in terms of the total time, the final gap and the number of nodes. The efficiency of each method depends on the cost repartition. We established different cases where the cover inequalities and extended formulations are and are not efficient. We performed many experiments to evaluate the performance of all the optimization methods, comparing the total execution time, the total number of nodes explored and the linear relaxation value at the top node. The parameters which influence these criteria are found to be the coefficients of the objective function, the demand repartition and its closeness to the production capacity, the vehicle capacities, the number of periods and the value of the stock variable in the cutting plane. More investigation on the case where the production and the vehicle capacities take time varying values deserves attention. Preliminary observations show that in this case, with the addition of the mixed flow cover inequalities, a gain is possible in terms of the total execution time and the final gap. A new separation algorithm has to be proposed for the more general case, solving an NP-hard optimization problem. Cover LP 18415 18556 18556 18415 18415 18415 18415 18415 SEP ---18436 18556 18516 18536 18556 OPT/gap 18556 18556 18556 18556 18556 18556 18556 18556 cuts ---17 10 10 6 10,6,9 time 3s 0s 0.5s 4s 0s 2s 0s 0s nodes 11277 1 3 14351 1 7133 5 Table 12 : P = 40, n = 20, V = 10, d = 30. Appendix A. Proof for the trivial facets of X mix. 1.. . i∈N x i ≤ b, for |C p | < n At least one of the variables can take 0 value and the others are saturated (n points are obtainable in this manner). For the other n points, the 0 valued y and z variables can be increased by one. For the last n points, the 0 valued y and z variables can be increased by 1 and P V units respectively. For the final point, for any of these 3n points, the variable s value can be increased by one unit.. • x i ≤ ay i + bz i , ∀i ∈ N ∀i ∈ N x i ← P y i ← 1. The last point ; x j ← 0 y j ← 0 z j ← 0 s ← 1 ∀j ∈ N Appendix B1. 1. 3|C v | linearly independent directions for the case n = |C v |. Other assumptions are P mod V = 0, b mod V = 0 and L = ∅. − → e t is the unit vector ∀t ∈ {1, · · · , 3n + 1}. We denote by − → e t = − − → e n+t and by − → e t = − −− → e 2n+t . X t , Y t , Z t and S t describes the vectors. − η) − → e1 x1 = P − λ p , y1 = 1, z1 = η Table 13 : 3|C v | linearly independent directions for the case n = |C v |.

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


Intersection of ideals with non-commutative subalgebras Computation of an intersection of a left ideal with a subalgebra, which is not fully investigated until now, is important for different areas of mathematics.We present an algorithm for the computation of the preimage of a left ideal under a morphism of non-commutative GR-algebras, and show both its abilities and limitations.The main computational tools are the elimination of variables by means of Gröbner bases together with the constructive treatment of opposite algebras and the utilization of a special bimodule structure. An intersection of a left or a two-sided ideal with the subalgebra of a given algebra is one of the fundamental constructions in algebra and its applications (e.g. in theoretical physics). The computation of the preimage of a twosided ideal reduces to the computation of the kernel of induced map both in the commutative (e.g. [8] ) and the noncommutative cases ( [2, 7, 21] ).. On the contrary, the algorithmic treatment of the problem of computing the preimage of a left ideal, to the best of our 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. knowledge, was only investigated in the non-commutative case for the situation of pure elimination ( [2, 3, 7, 18, 21] ). That is, one considered intersections only with subalgebras, generated by some subset of the set of variables.. In this article, we describe algorithms for computing the intersection of a two-sided and a left ideal with the finitely generated subalgebra of a non-commutative GR-algebra (see Def. 1) for various settings. We describe one of the possible ways to treat the opposite algebra of a GR-algebra constructively, and use this in further algorithms.. We start with subalgebras, generated by a subset of the set of variables of the algebra, closely investigate the notion of elimination of variables in G-algebras, and give explicit conditions for its computability. It is closely connected to Gröbner bases, so we review different definitions of them relatively to G-algebras. We are going to clarify the connection between Gröbner bases and filtrations on corresponding modules (Remark 1).. Then, we proceed with the general situation of an arbitrary finitely generated non-commutative subalgebra, and show the conditions to be satisfied for a map of algebras in order to be a morphism. After that, we present the method for computing the kernel of a morphism and hence, also the preimage of a two-sided ideal.. The algorithm for the preimage of a left ideal under a morphism of GR-algebras (Algorithm 1) is more complicated. We show that this algorithm works well for many examples, but it also has some natural limitations, which we discuss in detail. We comment the cases, which are important for applications, when a source or a target algebra is commutative.. GR-algebras, Gröbner bases and Gröbner basics for modules over GR-algebras are implemented as a subsystem Plural ( [10] ) of the Computer Algebra System Singular ( [9] ). Starting from the version 3-0-0 on, the Singular distribution includes Plural as an integral part; it is available for download at http://www.singular.uni-kl.de. All the examples in this article have been computed with this system.. By K we denote a commutative field. In addition, we use the following notations: [a, b] = a · b − b · a, a Lie bracket for polynomials a, b A S , a left A-module, generated by a set S, A S B , a (A, B)-bimodule, generated by a set S, K S | R = K S / K S R K S , a presentation of a K-algebra via the set of generators S and the set of relations R, NF(F | G) = {NF(f | G) | f ∈ F }, a normal form of a finite set F with respect to a Gröbner basis G, x y, x is bigger than any power of y. In the case of elimination, there may appear two difficulties. The first one lies in the fact, that in many algebras not every subset of the set of variables generate an essential subalgebra, hence it is not possible to "eliminate" certain group of variables. The second one arises in associative algebras, which have some condition on the monomial ordering used, like G-algebras in the Definition 1. More generally, this phenomenon may happen with a finitely presented associative algebra, which generators constitute a finite Gröbner basis with respect to some specific orderings and lead to infinite Gröbner basis for other orderings. In this case one has to look for an elimination ordering, satisfying the conditions (like finitness of Gröbner basis etc.) and, as it was demonstrated in the Example 3, it can happen that no such ordering exists. Summarizing, we see that it is not always possible to intersect ideals with certain subalgebras, even with very natural ones.. The Algorithm 1 provides a very general tool for computing preimages of left ideals of GR-algebras, and it is as complex as the Buchberger's algorithm with respect to an elimination ordering.. It is important to investigate, whether the ideas behind the Algorithm 1 can be constructively generalized to the different partial Ore localizations of G-algebras, like [4] ) and even in very general PBW rings ( [3, 12] ). It is interesting to know, up to which extent these ideas may be generalized to the case of a morphism between two finitely presented associative algebras.

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