Definitions and approaches to model quality in model-based software development - A review of literature ABSTRACT. More attention is paid to the quality of models along with the growing importance of modelling in software development. We performed a systematic review of studies discussing model quality published since 2000 to identify what model quality means and how it can be improved. From forty studies covered in the review, six model quality goals were identified; i.e., correctness, completeness, consistency, comprehensibility, confinement and changeability. We further present six practices proposed for developing high-quality models together with examples of empirical evidence. The contributions of the article are identifying and classifying definitions of model quality and identifying gaps for future research. For years, modelling has been advocated as an important part of software development in order to tackle complexity by providing abstractions and hiding technical details. Due to the wide application of modelling, numerous informal and formal approaches to modelling have been developed, such as Entity Relationship Diagrams (ERD) for modelling data, Specification and Description Language (SDL) for modelling telecommunication systems, formal modelling languages such as Z and B, and the Unified Modeling Language (UML) which is the most widely modelling language used by industry today.. Modelling was initially applied for communication between stakeholders and providing sketches (also called models or diagrams) of what a software system must do or its design. Nowadays, industry tends to use models more and more for tasks other than describing the system, for example simulation, generating test cases and parts or all of the source code. The growing attention on using models in software development has subsequently brought the quality of models as a research area in forefront. In late 2000, the MDA (Model-Driven Architecture) 1 initiative was launched by OMG (Object Management Group) to promote using models as the essential artefacts of software development. Followed by MDD (ModelDriven Development) or MDE 2 (Model-Driven Engineering), we face a new paradigm in software development where models are the primary software artefacts and transformations are the primary operations on models. In MDE, there is a lot to consider regarding the quality of models to ensure that right artefacts are generated. Finally, since defects can be earlier detected and corrected in models, improving the quality of models will ultimately reduce maintenance costs [8] .. The QiM (Quality in Model-driven engineering) 3 project at SINTEF is concerned with the quality of artefacts and activities in model-based software development in general and MDE specifically. The term "model-based software development" in this article covers a spectrum of approaches where models are widely used in software development for more than visualizing the source code or providing informal sketches of design. Quality in model-based software development covers the quality of models, modelling languages, modelling tools, modelling processes and even transformations performed on models. One of the outcomes of the QiM project has been identification of constructs needed to develop quality models as described in [13] . With a "quality model" we mean a set of quality goals (also called quality attributes or quality characteristics in literature) and their relations, accompanied by a set of practices or means to achieve the quality goals, evaluation methods for evaluating quality goals and links to related literature. The focus of this article is on identifying quality goals for models together with practices in model-based software development that can improve the quality of models, by performing a systematic review of literature on model quality. By identifying practices we take a preventive approach to software quality. Some tools and methods for assessing model quality and empirical evidence that are reported in the covered literature are presented in this article as well.. While model quality is covered in previous literature and various quality models are proposed; among them in [P15] [P19] [P22] [P26] [P38] 4 , these quality models have some shortcomings as discussed in [12] and none of them provide their classification of model quality goals based on an analysis of previous work. Therefore we have performed a systematic review of literature discussing model quality to answer the following research questions:.  RQ1. What quality goals are defined in literature for models in model-based software development?  RQ2. What practices are proposed to achieve or improve the above quality goals?  RQ3. What types of models and modelling approaches are covered in literature?. Since UML is currently the most widely used modelling language, UML models are the subject of most work related to the quality of models. However, UML may be used in multiple ways; from providing informal sketches to full system specification end even as a programming language and extended for specific domains. Therefore literature on UML models covers different approaches to modelling, while approaches where models play a central role in software development are in focus here.. We emphasize that the focus of this article is on the quality of models representing or describing software systems and not the quality of system design or implementation; for example patterns and practices for object-oriented design and metrics on the design level. Unhelkar defines model quality as "the correctness and completeness of software models and their meanings" and separates it from code quality and architecture quality [P38] . We share the same view in this article. It is also clear that the quality of modelling languages, modelling tools and the expertise of people performing modelling will impact the quality of developed models. These issues are not covered in this article while some related work is discussed in [9] .. The remainder of this article is organized as follows. The review process and the literature covered in this review are presented in Section 2 and validity threats are discussed. In Section 3, we discuss what models are and what roles they have in software development. Section 4 answers RQ1 by identifying six model quality goals. These quality goals have been discussed previously in literature but never put together and defined in relation to one another. In Section 5, we discuss RQ2 by presenting the practices proposed in literature in order to improve the quality of models, together with types of models and modelling approaches related to RQ3 and the results of empirical studies whenever reported. Section 6 provides a summary of the results while Section 7 is discussion. Finally, the article is concluded in Section 8, answers to research questions are summarized and gaps for future research are discussed. This article reviewed literature on the quality of models to answer three research questions. The results are summarized below.. RQ1. What quality goals are defined in literature for models in model-based software development? We identified six model quality goals relevant for model-based software development; i.e., correctness, completeness, consistency, comprehensibility by humans and tools, confinement (as having precise modelling goals and being restricted to them) and changeability (as being easily extensible and modifiable). While some of these quality goals such as consistency are studied in depth and solutions are proposed and implemented in tools, others -such as changeability-are less discussed in the covered literature.. RQ2. What practices are proposed to achieve or improve the above quality goals? We identified six practices and divided them in two groups. The first group is related to modelling process and covers having a model-based development process, using modelling conventions and the single-diagram approach. The second group is related to formal approaches and automation and covers formal models, UML profiles and domain-specific modelling languages, and generating models or diagrams from other models or diagrams. We discussed the impact of the proposed practices on the 6C goals with examples and empirical evidence reported in the covered literature.. RQ3. What types of models and modelling approaches are covered in literature? Most research covered UML models, however, in approaches where models play a central role in software development or on the right hand side of the spectrum shown in Figure I . However even when models are merely sketches, their quality has gained attention since high-quality models ease communication between development teams. We also found literature covering UML profiles and domain-specific languages in the spirit of model-driven engineering.. Empirical evidence in the covered literature is also included in the article. Modelling conventions and the single-diagram modelling approach have been subject of student experiments that confirm some benefits but question others. For example the impact of conventions depends on the task and tool-support. The benefits of model-based development process and domain-specific modelling approaches (including UML profiles) are observed in industrial cases while formal models and generating models / diagrams from models / diagrams are mostly discussed by examples and no empirical evidence was detected in the covered literature. Additional evidence may however be detected by performing a review with focus on empirical studies.. The main purpose of this article has been to provide definitions and classifications that can be part of a quality model with focus on model quality. We have developed a tool for visual specification of quality models as presented in [12] where we intend to insert the results of this review. The next challenge of improving model quality is to select quality goals for a given context and to identify practices that may be applied in that context. Quality goals vary in the lifecycle of a project and for different types of models. For example the degree of required formality and detail vary. Models may also be the intermediate or the final products of software development. In short, a model should "fit for the purpose". Thus a goal-driven process for selecting quality goals and practices is proposed which is subject of our future work.. Other research gaps are identified as well. While traditional quality assurance techniques such as inspections and measurement are applicable to models, they should be adapted to modelling purposes, tasks and artefacts involved. Managing changeability and complexity of large and complex models, keeping them consistent and verifying quality on the model level are challenges in model-driven engineering that are not yet properly covered.. Performing literature reviews is time consuming and integrating the results is not easy. The main benefits are however to provide new insight and identify research gaps. One challenge of this review was selecting a terminology for classifying model quality goals that is based on the existing work and is considered useful, without being difficult to understand for practitioners. Since our classification is based on the terminology used in the reviewed literature, we mean that it provides relevance and understandability. We must further improve the classification by increasing the breath of search for studies especially with focus on quality promises of the model-driven engineering approach. We are involved in the MODELPLEX project 12 which has the vision to evolve modelling technologies and tools for complex system development. In MODELPLEX, an empirical research plan is defined in order to evaluate the impact of modelling technologies and tools on several attributes such as the productivity of software developers and the quality of models or generated artefacts. The results of empirical work will be used to evaluate the quality impact of model-drive engineering and the usefulness of our classification. Tables Table I. A short summary of primary studies Ref. This article covered mainly two issues: identifying model quality goals (6C goals) important in modelbased software development and an overview of practices proposed in literature to improve model quality, both based on the results of a systematic literature review. The question facing us is whether the 6C classification is more useful than other classifications defined in P38] ; such as dividing quality goals into syntax, semantics and pragmatic quality. When trying to define what exactly syntactic, semantic or other quality goals mean in the above studies, the authors often tend to use the same terminology covered by the 6C goals; i.e. correctness, completeness, consistency etc. There are other quality goals for models -such as being simple -that are defined as being comprehensible and easy to change, which are thus covered by our classification. In addition to using a simple terminology, the 6C classification is based on the results of a systematic review of literature on model quality. In our opinion using the review results provides relevance. For example one may talk of consistency as a semantic quality type while the term "consistency between models" is better understood by practitioners and also used in several studies.. Another question is whether we can join any two goals or remove any without significant impact on the discussion, which we mean is not possible. Other quality goals may be added if necessary and future research on the subject is necessary.. Quality of models is especially important in MDE:  Since models are transformed into other models, they should be correct. Otherwise, the principle of "garbage in, garbage out" applies [P40] .  Model completeness is a prerequisite for transformation, consistency checking and implementation. Coverage is one of the requirements of completeness; for example all the use cases are covered in the implementation.  Consistency between diagrams becomes important if information from separate diagrams should be combined for the purpose of understanding or generation. Consistency between models of the same system is important for keeping them in sync for future evolution.  Comprehensibility either by tools or humans is the main reason for doing any modelling.  MDE often involves developing several models of the system with different purposes. Thus models should include information depending on the purpose.  Finally, models should be easy to change in order to support evolution and maintenance.. Persuading industry to use models depends on whether modellers can change models easily and continuously.. In short, it is hard or impossible to create something complete and correct from something incomplete, erroneous or inconsistent. Persuading industry to use MDE requires taking away some burden of development by providing tools and methodologies that support developing and maintaining high-quality models. For example a recent article on model-based testing states that the ultimate success of the approach relies on the quality of models that support them [14] , such as having enough details (being complete).. As the results of this review show, several practices are proposed for improving the quality of models and some studies also include empirical evidence. Studies on the impact of modelling processes on the quality of models report positive feedback from industry without providing details. While one may find a lot of literature on the benefits of software processes in general, the relevant tasks and activities for a MDE approach should be evaluated in industry cases. Studies discussing the benefits of formal models and generating models or diagrams from other models or diagrams contained only small examples, while modelling conventions, domain-specific approaches and the single-diagram modelling approach are supported by industrial cases and student experiments. However, the evidence from the domain-specific cases supports the benefits of formal methods to some degree since DSMLs are usually formal.. Some practices may be enforced by CASE tools, for example OCL constraints prevent making wrong choices and tools can prevent syntactic errors and may keep models consistent with one another if consistency rules are defined and support for checking is provided. Experiments on applying modelling conventions have confirmed that tool support is important for reducing the effort spent on modelling when using conventions [P18] . Using the proposed practices especially supported by tools is the preventive approach or quality by construction. The second approach to quality is an assessing approach as discussed in Section 6.2 based on static analysis of models: model checking for formal models, collecting metrics from models or getting feedback via inspections and interviews. Finally, there is also a predictive approach, for example the quality of models may be evaluated from the quality of predictions made from them if they are used for simulation and prediction. However, the studies covered in this review did not include any examples on using this approach.

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


The Utility of Evolving Simulated Robot Morphology Increases with Task Complexity for Object Manipulation Abstract Embodied artificial intelligence argues that the body and brain play equally important roles in the generation of adaptive behavior. An increasingly common approach therefore is to evolve an agentʼs morphology along with its control in the hope that evolution will find a good coupled system. In order for embodied artificial intelligence to gain credibility within the robotics and cognitive science communities, however, it is necessary to amass evidence not only for how to co-optimize morphology and control of adaptive machines, but why. This work provides two new lines of evidence for why this co-optimization is useful: Here we show that for an object manipulation task in which a simulated robot must accomplish one, two, or three objectives simultaneously, subjugating more aspects of the robotʼs morphology to selective pressure allows for the evolution of better robots as the number of objectives increases. In addition, for robots that successfully evolved to accomplish all of their objectives, those composed of evolved rather than fixed morphologies generalized better to previously unseen environmental conditions. Embodied cognitive science [20, 22, 15] and its sister discipline embodied artificial intelligence [13, 32, 33] stress the importance of the body and its interaction with the environment for achieving adaptive behavior. This suggests that the body plan for an adaptive machine should be chosen carefully to increase the probability of finding an optimized controller such that they together produce useful behavior. It has been argued that designing the mechanical structure for a machine is more intuitive and therefore better left to human designers than designing the controller, this latter being a non-intuitive process and therefore better shaped by automated optimization [30, p. 22] . However, here we show that even a seemingly appropriate configuration for a robotic arm-an anthropomorphic design-is increasingly improved by placing more aspects of the body plan under evolutionary control as the task that the robot must accomplish becomes more complex.. One approach to morphological design is to adopt body plans inspired by biological organisms [6, 44] , but often the specific details of the robotʼs niche are subtly (or grossly) different from the niche of the organism and therefore not an ideal design choice. An alternative approach is to automate the optimization of both morphology and controller simultaneously (e.g., [11, 25, 39] ), thereby searching for a coupled dynamic system (between the moving body parts and the updating controller ) that matches the dynamics of the environment well to produce useful behavior [5, 32] .. There is a growing body of work demonstrating different ways for how to optimize morphology and control: direct methods in which each part of the genome corresponds to only one part of the body plan or neural controller (e.g., [8, 25] ), recursive methods in which each part of the genome may correspond to one or more phenotypic components (e.g., [1, 23, 39, 43] ), and more biologically inspired methods in which morphology and control are shaped by simulations of biological growth processes (e.g., [7, 11, 17, 19, 28, 35, 41] ). Further, such approaches can be divided into those that optimize parameters of a fixed body plan and those that optimize the body plan itself. The current work falls into the former category.. However, there is relatively little evidence about why morphology and control should be cooptimized, beyond the common, rather vague argument that evolution can find a better fit between morphology and control if both are optimized together. It has been demonstrated that indirect methods may produce phenotypes that grow in complexity without requiring a corresponding increase in genotypic complexity [9] , and that control can be simplified if an appropriate morphology is found [24, 29] . More recently it has been shown that a careful choice of morphology allows parts of the body to functionally specialize, rather than its being assumed a priori which parts of the body will perform which functions [2] .. Here we contribute two other lines of evidence about why coevolving morphology and control is important: In the object manipulation task investigated here, evolving more aspects of the robotʼs body plan along with control increased the probability of discovering a successful solution as the task complexity increased. Also, among those robots that evolved to successfully perform the task, those with more evolved morphological aspects were more robust than those with a less evolved morphology.. The next section introduces the methods used to investigate how evolvability and robustness are affected by evolving morphological aspects of a simulated robot. Section 3 reports results for various experimental regimes in which an increasing amount of the robotʼs body plan is evolved. The final section provides some discussion, concluding remarks, and directions for future research. Here we have evolved simulated robots to meet one or more object manipulation objectives, and measured whether and how much evolving morphology along with control improves the evolvability of the population as the number of objectives that the robots must accomplish increases. It was found that performance generally degraded as the number of objectives increased, as was to be expected. Evolution must carefully tune the robotʼs phenotype so that an increase in performance for one objective does not overly degrade performance on another.. It was found that for one (or in some cases two) objectives, there was little or mild improvement in performance as more aspects of the robotʼs body plan were placed under evolutionary control. However, when all three objectives were selected for, there was a distinct advantage among the robots in which all morphological aspects were evolved. This demonstrates that choosing the appropriate morphology for an adaptive machine is not always intuitive. Even for seemingly appropriate designs, such as the anthropomorphic arm-and-hand system used here, there were an increasing number of morphological improvements that could be made as the task became more challenging. In addition, it was found that among robots that evolved to successfully meet all objectives for all objects, those with more evolved morphological aspects were more robust in the face of two unanticipated conditions: objects of novel size, and sensor failure. Both of these observations provide two additional lines of evidence for why morphology should be optimized along with control when evolving adaptive machines. Evolving more aspects of the machineʼs body plan becomes more useful as task complexity increases, and the resulting evolved body plans are more robust than those with fixed morphologies. In future work we plan to investigate whether this correlation between evolved morphology, task complexity, and robustness holds in other task environments, and methods for formulating which aspects of morphology should be evolved based on the task at hand.. In order for embodied artificial intelligence to gain credibility within the robotics and cognitive science communities, it is necessary to amass evidence not only about how to co-optimize the physical as well as neural components of adaptive machines, but also about why co-optimization should be done. This work has provided two more such reasons. As mentioned above, seven experimental regimes were tested. In each regime, robots are evolved to meet one, two, or all three of the object manipulation objectives. Within each regime, 8 × 50 = 400 evolutionary trials were performed. In the first set of 50 independent trials, only the controller was evolved; in the second set, the controller and phalange lengths were evolved; in the third set, the controller and phalange radii were evolved; in the fourth set, the controller and finger spacings were evolved; in the fifth, six, and seventh sets, two of the three morphological aspects were evolved along with the controller; and in the eighth set, the controller, phalange length, radii, and finger spacings were evolved together. These regimes and sets of trials were replicated on robots with three-, four-, and five-fingered hands, resulting in a total of 3 × 7 × 8 × 50 = 8400 trials. Figure 1 shows the final successful robot from a trial conducted in the seventh regime and the eighth set: The controller and all three morphological aspects of each robot were optimized so that the robots evolved to successfully grasp, lift, and actively distinguish between all six objects. The evolutionary trajectory for this trial is shown in Figure 3 . During each generation of a trial, the best robot in the population is found by collapsing the objective values for each robot to a single number using f = f g f a f l (or a subset of these if all of the three objectives are not selected for), and finding max( f ) in the population. Figure 3a reports the change in the best robotʼs ability to achieve all three objectives, as well as the mean ability of the population to do so. It can also be observed that periodically a robot in the population successfully manipulates the current set of objects (vertical dashed lines), and a new object is added to the training set (the size of the set is indicated by the numbers next to the dashed lines). The robot shown in Figure 1 was evolved in the 84th generation, causing the trial to terminate. (o-u) . G,A,L = 0,1 indicate regimes in which grasping, active categorical perception, or lifting was not or was selected for, respectively. LN,RD,SP = 0,1 indicate trial sets in which phalangesʼ lengths or radii or finger spacings were not or were evolved, respectively. Thick lines indicate the mean number of objects in the training set; thin lines indicate one standard error of the mean. Gray and black curves indicate the manipulation abilities of hands with fixed morphologies and those in which all three morphological aspects were evolved, respectively. Vertical lines indicate the mean number of generations until robots evolved to successfully manipulate all six objects. Figure 3b reports the mean number of objects manipulated by robots in the population during that generation. As can be seen, when a new object is added to the training set, there is an increase in the number of objects that are evaluated. This is expected, because most robots in the population experience a drop in fitness across the objectives, and it is easier for a new robot to escape dominance by those solutions on the non-dominated front. As the population evolves to better manipulate the new object, the mean number of objects manipulated by the population drops, and the simulation runs faster. This is due to the fact that the non-dominated solutions are now adept at manipulating the objects in the set, and the probability that a new robot will be dominated early rises. It can also be noted that as the number of objects in the training set rises, the mean number of object manipulations does not. This indicates that the evaluation time per robot does not increase with the size of the training set. This was found to be typical of the other runs (data not shown). Figure 4 reports the performance difference between sets of trials in which only the controller was evolved (gray lines), and in which the controller and the three morphological aspects were evolved for robots with three-, four-, and five-fingered hands (black lines). It is observed that when only one objective is selected for, all three robot classes fail to perform significantly better when morphology is evolved than when it is fixed (Figure 4a -c, h-j, o-q). Indeed, there is no benefit when only active perception is selected for (Figure 4b, i, p) . This is because these robots typically evolve a classification strategy in which the objects are passively scanned by the range sensors without requiring physical contact between the robot and the object; such strategies are not improved by allowing evolution to shape hand morphology. This section introduces the simulated robot and its task environment, which aspects of its morphology and controller can be optimized and which are fixed, and finally the algorithm used to optimize the robotsʼ object manipulation abilities.

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


The Robustness of the p-Norm Algorithms Abstract. We consider two on-line learning frameworks: binary classification through linear threshold functions and linear regression. We study a family of on-line algorithms, called p-norm algorithms, introduced by Grove, Littlestone and Schuurmans in the context of deterministic binary classification. We show how to adapt these algorithms for use in the regression setting, and prove worst-case bounds on the square loss, using a technique from Kivinen and Warmuth. As pointed out by Grove, et al., these algorithms can be made to approach a version of the classification algorithm Winnow as p goes to infinity; similarly they can be made to approach the corresponding regression algorithm EG in the limit. Winnow and EG are notable for having loss bounds that grow only logarithmically in the dimension of the instance space. Here we describe another way to use the p-norm algorithms to achieve this logarithmic behavior. With the way to use them that we propose, it is less critical than with Winnow and EG to retune the parameters of the algorithm as the learning task changes. Since the correct setting of the parameters depends on characteristics of the learning task that are not typically known a priori by the learner, this gives the p-norm algorithms a desireable robustness. Our elaborations yield various new loss bounds in these on-line settings. Some of these bounds improve or generalize known results. Others are incomparable. In this paper, we consider on-line learning from labeled examples. We consider a family of algorithms that are suitable both for learning linear functions and for learning binary classification, with only minor modifications needed to convert from one task to the other. For both tasks, in each on-line trial the learning algorithm observes an instance chosen from R n and is required to predict the value of a label associated with that instance. When learning linear functions (this case is also referred to as linear regression) the label to be predicted is a real number; for the classification task the label is chosen from {−1, +1}. In each trial the learner maintains a weight vector representing its current hypothesis. Combined with the current instance, this weight vector determines the learner's prediction. In linear regression the prediction is a real number, while in binary classification the prediction lies in [−1, +1] . In the special case when the prediction is ±1 we say we are in the deterministic binary classification setting. When the algorithm's prediction spans the whole interval [−1, +1] we say we are in the randomized binary classification setting. After the learner makes its prediction, the value of the label is revealed and the learner suffers a loss, measuring the discrepancy between the prediction and the actual label. Then the learner updates its weights.. We are interested in comparing the performance of the algorithms with the best performance obtainable with a fixed weight vector. It is sometimes convenient to think of the data for each trial as being generated by first choosing the instance and then choosing the label using such a weight vector. The label may then be corrupted with noise. When thinking this way, we refer to the weight vector as a target vector. If the target vector perfectly determines the labels we say that the learning task is noise-free with respect to that target. We say that attributes whose weight is 0 in a target vector are irrelevant with respect to that target. (An attribute is a component of an instance.). The algorithms that we consider belong to a general family of algorithms that was developed by Grove, Littlestone, and Schuurmans (2001) , who studied binary classification, and also, in separate work, by Kivinen and Warmuth (2001) , who consider (generalized) linear regression. These algorithms are called quasi-additive by Grove et al., and general additive by Kivinen and Warmuth. The analysis of these algorithms in these papers yields bounds on the cumulative loss that they suffer.. This family of algorithms includes a number of well-known algorithms. For instance, in the classification setting it includes the classical Perceptron algorithm (Rosenblatt, 1962; Block, 1962; Novikov, 1962) and algorithms in the "Winnow family", 1 such as the Zerothreshold Winnow. In the binary expert framework the version that we call Zero-threshold Winnow is equivalent to the Weighted Majority algorithm; (see Littlestone, 1989; Littlestone & Warmuth, 1994; Vovk, 1990; Cesa-Bianchi et al., 1997) . In the regression (linear function) setting the general additive algorithms include the Widrow-Hoff algorithm, also called the least mean square rule (Widrow & Hoff, 1960; Cesa-Bianchi, Long, & Warmuth, 1996; Kivinen & Warmuth, 1997) and Kivinen and Warmuth's "EG family" of algorithms, such as EG ± and EGU (Kivinen & Warmuth, 1997) . Perceptron and Widrow-Hoff update their weights additively, adding some multiple of the current instance to the current weight vector. Thus we call them additive algorithms. Winnow and EG perform multiplicative updates. Thus we call them multiplicative algorithms.. Here we focus on a particular sub-family of the general additive algorithms, the p-norm Perceptron algorithms, that was introduced by Grove et al. They discuss it only in the context of deterministic binary classification. One of the main results of the present paper is the demonstration that it can be adapted for use in the linear regression setting. We will refer to these algorithms for classification and regression collectively as p-norm algorithms. Grove, Littlestone, and Schuurmans (2001) show that the p-norm Perceptron algorithms for binary classification actually can interpolate smoothly between the Perceptron at p = 2 and Weighted Majority as p → ∞ (if appropriate care is taken in how the limit is approached). It is straightforward to see that this also holds for the regression case, where the p-norm algorithms can interpolate between Widrow-Hoff and EG. Perhaps the most notable characteristic of the multiplicative algorithms is that their cumulative loss grows only logarithmically with the number of irrelevant attributes of the target weight vector. With appropriate care, the p-norm algorithms approach the multiplicative algorithms in the limit as p goes to infinity, and so in that limit their bounds are also logarithmic in n. However, to obtain this logarithmic behavior in the limit, the initial weight vector must be an appropriate non-zero weight vector, and the ratio of the initial weight vector to the factor used to scale the updates (this factor is usually called the learning rate) must grow in proportion to p and be sufficiently large. The ratio that suffices depends on properties of the learning task that are not necessarily visible to the learner, and thus estimates of the appropriate ratio are needed. Though in many cases the accuracy of these estimates turns out in practice not to be too critical, the multiplicative algorithms' learning can entirely break down in some cases if the update factor is too large.

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


Bayesian computation: a summary of the current state, and samples backwards and forwards Recent decades have seen enormous improvements in computational inference for statistical models; there have been competitive continual enhancements in a wide range of computational tools. In Bayesian inference, first and foremost, MCMC techniques have continued to evolve, moving from random walk proposals to Langevin drift, to Hamiltonian Monte Carlo, and so on, with both theoretical and algorithmic innovations opening new opportunities to practitioners. However, this impressive evolution in capacity is confronted by an even steeper increase in the complexity of the datasets to be addressed. The difficulties of modelling and then handling ever more complex datasets most likely call for a new type of tool for computational inference that dramatically reduces the dimension and size of the raw data while capturing its essential aspects. Approximate models and algorithms may thus be at the core of the next computational revolution. One may reasonably balk at the terms "computational statistics" and "Bayesian computation" since, from its very start, statistics has always involved some computational step to extract information, something manageable like an estimator or a prediction, from raw data. This necessarily incomplete and unavoidably biased review of the recent past, current state, and immediate future of algorithms for Bayesian inference thus first requires us to explain what we mean by computation in a statistical context, before turning to what we perceive as medium term solutions and possible deadends.. Computations are an issue in statistics whenever processing a dataset becomes a difficulty, a liability, or even an impossibility. Obviously, the computational challenge varies according to the time when it is faced: what was an issue in the nineteenth century is most likely not so any longer (take for instance the derivation of the moment estimates of a mixture of two normal distributions so painstakenly set by Pearson 1894 for estimating the ratio of "forehead" breadthbody length on a dataset of 1000 crabs or the intense algebraic derivations found in the analysis of variance of the 1950s and 1960s Searle et al. 1992) .. The introduction of simulation tools in the 1940s followed hard on the heels of the invention of the computer and certainly contributed an impetus towards faster and better computers, at least in the first decade of this revolution. This shows that these tools were both needed, and unavailable without electronic calculators. The introduction of Markov chain Monte Carlo is harder to pin down as some partial versions can be traced all the way back to 1944-1945 and the Manhattan project at Los Alamos (Metropolis 1987) . It is surprisingly much later, i.e., only by the early 1990s, that such methods became part of the Bayesian toolbox, that is, some time after the devising of other computer-dependent tools like the bootstrap or the EM algorithm, and despite the availability of personal computers that considerably eased programming and experimenting (Robert and Casella 2011) . It is presumably pointless to try to attribute this delay to a definite cause but a certain lack of probabilistic culture within the statistics community is probably partly to blame.. What makes this time-lag in MCMC methods becoming assimilated into the statistics community even more surprising is that fact that Bayesian inference having a significant role in statistical practice was really on hold pending the discovery of flexible computational tools that (implicitly or explicitly) delivered values for the mediumhigh-dimensional integrals that underpin the calculation of posterior distributions, in all but toy problems where conjugacy provided explicit answers. In fact, until Bayesians discovered MCMC, the only computational methodology that seemed to offer much chance of making practical Bayesian statistics practical was the portfolio of quadrature methods developed under Adrian Smith's leadership at Nottingham (Naylor and Smith 1982; Smith et al. 1985 Smith et al. , 1987 .. The very first article in the first issue of Statistics and Computing, whose quarter-century we celebrate in this special issue, was (to the journal's credit!) on Bayesian analysis, and was precisely in this direction of using clever quadrature methods to approach moderately high-dimensional posterior analysis (Dellaportas and Wright 1991) . By the next (second) issue, sampling-based methods had started to appear, with three papers out of five in the issue on or related to Gibbs sampling (Verdinelli and Wasserman 1991; Carlin and Gelfand 1991; Wakefield et al. 1991) . Now, reflecting upon the evolution of MCMC methods over the 25 or so years they have been at the forefront of Bayesian inference, the focus has evolved a long way, from hierarchical models that extended the linear, mixed and generalised linear models (Albert 1988; Carlin et al. 1992; Bennett et al. 1996) which were initially the focus, and graphical models that stemmed from image analysis (Geman and Geman 1984) and artificial intelligence, to dynamical models driven by ODE's (Wilkinson 2011b ) and diffusions (Roberts and Stramer 2001; Dellaportas et al. 2004; Beskos et al. 2006) , hidden trees (Larget and Simon 1999; Huelsenbeck and Ronquist 2001; Chipman et al. 2008; Aldous et al. 2008 ) and graphs, aside with decision making in highly complex graphical models. While research on MCMC theory and methodology is still active and continually branching (Papaspiliopoulos et al. 2007; Andrieu and Roberts 2009; Łatuszyński et al. 2011; Douc and Robert 2011) , progressively incorporating the capacities of parallel processors and GPUs (Lee et al. 2009; Jacob et al. 2011; Strid 2010; Suchard et al. 2010; Scott et al. 2013; Calderhead 2014) , we wonder if we are not currently facing a new era where those methods are no longer appropriate to undertake the analysis of new models, and of new formulations where models are no longer completely defined. We indeed believe that imprecise models, incomplete information and summarised data will become, if not already, a central aspect of statistical analysis, due to the massive influx of data and the need to provide nonstatisticians with efficient tools. This is why we also cover in this survey the notions of approximate Bayesian computation (ABC) and comment on the use of optimisation tools.. The plan of the paper is that in Sects. 2 and 3 we discuss recent progress and current issues in Markov chain Monte Carlo and ABC, respectively. In Sect. 4, we highlight some areas of modern optimisation that, through lack of familiarity, are making less impact in the mainstream of Bayesian computation than we think justified. Our Discussion in Sect. 5 raises issues about data science and relevance to applications, and looks to the future.

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


Modelling epistasis in genetic disease using Petri nets, evolutionary computation and frequent itemset mining Petri nets are useful for mathematically modelling disease-causing genetic epistasis. A Petri net model of an interaction has the potential to lead to biological insight into the cause of a genetic disease. However, defining a Petri net by hand for a particular interaction is extremely difficult because of the sheer complexity of the problem and degrees of freedom inherent in a Petri net's architecture.We propose therefore a novel method, based on evolutionary computation and data mining, for automatically constructing Petri net models of non-linear gene interactions.The method comprises two main steps. Firstly, an initial partial Petri net is set up with several repeated sub-nets that model individual genes and a set of constraints, comprising relevant common sense and biological knowledge, is also defined. These constraints characterise the class of Petri nets that are desired. Secondly, this initial Petri net structure and the constraints are used as the input to a genetic algorithm. The genetic algorithm searches for a Petri net architecture that is both a superset of the initial net, and also conforms to all of the given constraints. The genetic algorithm evaluation function that we employ gives equal weighting to both the accuracy of the net and also its parsimony. We demonstrate our method using an epistatic model related to the presence of digital ulcers in systemic sclerosis patients that was recently reported in the literature. Our results show that although individual "perfect" Petri nets can frequently be discovered for this interaction, the true value of this approach lies in generating many different perfect nets, and applying data mining techniques to them in order to elucidate common and statistically significant patterns of interaction. Genetic diseases can be roughly divided into two categories. The first category consists of all those diseases caused by a mutation to a single gene. These are the so-called Mendelian diseases. The gene associated with diseases of this class can often be identified by performing a parametric statistical analysis on genetic data obtained from patients with and without the disease. That is, the mutant gene's presence should be highly correlated with the presence of the disease in the sample of patients.. The other category of genetic disease is that for which no single genetic cause can be identified. When in a population the supposedly causative genes are examined in isolation, none of them correlates strongly at all with the disease. Rather, it is the peculiar biochemical interaction between a set of two or more genes that leads to the disease. This is known as epistasis or non-linear gene interaction, and it is thought to be the predominant cause of genetic disease (Moore, 2003; Phillips, 2008) .. Non-linear gene interactions are difficult to model by traditional parametric approaches, and hence other computational tools, essentially based on data mining techniques, have been developed to identify the set of interacting genes responsible. The advantage of these techniques is their ability to deal with sparseness of data in the multidimensional space (often referred to as the "curse of dimensionality"). The Multifactorial Dimensionality Reduction (MDR) algorithm (Moore, 2004 ) is one such algorithm that has been highly successful in this area and is routinely used to identify non-linear interactions, not only in genetics but also in a wide range of other application areas.. The problem addressed in this paper, which is the next step after the data mining, is how to take a set of interacting genes that have been identified and automatically build a computational model of how these genes may be interacting. In other words, how could the genes, each of which produce a substance in some quantity determined by genotype, lead to the epidemiological observation of a high risk of the disease in some individuals, and a low risk in others?. Producing a model of this interaction should help scientists understand how and why the disease occurs. The models produced, however, must be biologically analogous and be capable of incorporating prior biological and common sense knowledge in order to be useful. The typical output of a machine learning algorithm, for example a decision tree, would not meet this criteria.. One class of computational model that has been usefully applied in the field of biochemical interaction modelling is the Petri net (Reisig, 1985) . To illustrate, Petri nets are critical in the construction of models of gene regulatory networks for both cancer Lin et al., 2007) and diabetes (McGarry, 2007) . They are so widely used by computational biologists that they are also included in common biological data analysis software packages such as BioCAD (Lee et al., 2007) .. Most of the time, however, scientists needing a Petri net model of biochemical interactions must construct their models by hand. This approach has two significant drawbacks.. Firstly, in all but the simplest of cases, designing a Petri net by hand is an extremely tedious trial-and-error process. If, for example, there are many "rules" governing the interaction that must be modelled, then it may be very difficult to find one model that covers all of them; often one will find a model that captures some of the interactions but not all, and an attempt to change the model to capture a new facet of the interaction inevitably invalidates some of the others.. Secondly, a manual process of building a model such as a Petri net leads only to a single solution that may be biased by preconception. For example, the scientist may believe that the interaction occurs in a certain way, and then look for Petri nets that only behave this way, thereby excluding other possibilities. In reality, there may be many possible different solutions, some more likely than others, some more parsimonious than others.. What is needed, therefore, is an automatic method of learning Petri nets for a given interaction. If there are many different possible solutions to this problem, an automatic method could be set up to identify them, and these multiple solutions could then be ranked by likelihood or parsimony. The scientist may then choose to select the single best solution, or perhaps analyse all of them and look for patterns. Such an approach is clearly not feasible if the Petri nets are designed manually.. We therefore describe here a novel method for automatically building biologically analogous Petri nets for gene-gene interactions. We focus specifically on deterministic Petri nets, and use a genetic algorithm (Goldberg, 1989; Meffert, 2009) . We then show how multiple solutions to the same problem can be generated and analysed in a statistical fashion, so that the most commonly occurring patterns of interactions can be identified. We have described a novel method based on a genetic algorithm for automatically building Petri nets, with application to the modelling of non-linear gene interactions. Our. Petri nets have a unique architecture, that being one in which any finite number of interacting gene units can be modelled. Our method also constructs multiple perfect Petri nets ranked by parsimony for a problem, which are then amenable to statistical analysis in order to discover common interaction patterns. These patterns may form the basis for future experimental investigation in a laboratory.. Constructing Petri nets manually or using a different automatic method that produces only a single solution excludes the possibility of this kind of aggregate analysis.. There are two main further avenues future refinement of this method. Firstly, more biological or common sense knowledge could be incorporated as constraints.. Secondly, a greater focus could be placed on the aggregate analysis side, in which significant patterns across many solutions are identified. Tools such as data and graph mining can be applied fruitfully here. The drawback of this approach, of course, is that the output is not an executable model as a normal Petri net typically is; rather, it would be a set of qualitative graphical patterns (for example, "the output of genes X and Y combine together to activate gene Z").. Yet, biologists and geneticists are somewhat more interested in reducing epistatic models to a limited number of simple reactions invariant to randomness that can eventually be tested in vivo or ex vivo, rather than having a complex, albeit mathematically-perfect model that is difficult to test by translational research experiments. These "core" hypotheses could, for instance, be verified by perturbation experiments in simple organisms, a well-known and successful strategy in dissecting biological epistasis (Phillips, 2008) .. To achieve this goal, it will be necessary to develop a more intelligent and therefore faster method for learning Petri nets, especially when the size of the desired Petri net is larger. A genetic algorithm, although powerful, is still a heuristic search strategy and therefore is not guaranteed to always find an optimal solution. Random mutations to arc presence, weight and direction take little account of Petri net dynamics, and our observations have shown that the fitness function frequently does not vary smoothly with minor changes or mutations to the net's structure. Future research should therefore also be directed towards devising a more efficient method of searching the space of possible Petri nets. Tables Table 1 Genotype Rule for computing g AA 2x Aa x+n aa 2nx Table 2 T 0 T 1 P 0 1 3 P 1 i 0 P 2 -2 1 P 3 0 -4 In this section, we evaluate our approach for automatically building Petri net models of epistasis. A recently discovered disease-causing non-linear gene interaction is used as a test-bed (Beretta et al., 2009) . This model, depicted in Figure 4 , describes the risk of developing digital ulcers in a population of 200 Italian systemic sclerosis patients. It was built using the MDR kernel over a set of 22 cytokine Single Nucleotide Polymorphisms (SNPs) and 3 Human Leukocyte Antigens (HLAs), genotyped by polymerase chain reaction with sequence-specific primers as previously described (Beretta et al, 2009) . The genes are HLA-B*3501 (hereafter referred to as B35), IL-2 and IL-6.. In each cell of Figure 4 , the left bars indicate the frequency of patients (cases) with digital ulcers, and the right bars indicate the frequency of patients without digital ulcers (the controls). If the ratio of cases:controls exceeds a certain threshold, patients are labelled as "high-risk" (they dark-shaded cells), otherwise they are "low-risk" (the light-shaded cells).. We desire a perfect Petri net that explains this model. Such a net should ultimately produce, after execution, a token count exceeding the threshold t at the output place for high risk genotypes, but it should not exceed the t for the low risk genotypes.. We consider two different approaches to using our method to understand these interactions. A first approach is simply to run the algorithm a number of times and select by hand (using biological knowledge and intuition) one of the nets, whichever seems the most suitable or parsimonious.. In the second approach, the algorithm can be run multiple times to construct multiple perfect Petri net models. These Petri nets can then be analysed statistically to determine the most frequent interactions. However, the output in this case is not an executable model: rather it is a set of commonly occurring patterns that would represent the most interesting biochemical pathways that intervene in gene-gene interactions.. To perform the statistical analysis of multiple perfect Petri nets we used frequent itemset mining (Argawal et al., 1994; Lui et al., 1998) . Frequent itemset mining in its simplest form enumerates all patterns of a particular size, ranking them by confidence. In our case, the data is composed of Petri nets. For each net, we determined the number of direct connections between places. That is, if two places in a given net were connected by at least a single transition, a direct connection between the places is assumed; on the other hand, if the two places did not have a single transition between them, but rather a sequence of more than one pair of intermediate transitions and places, a direct connection was not assumed.. This approach allowed us to assign to each possible pair of places in each net a binary indicator, with 1 denoting the presence of direct connection, and 0 the absence. Therefore each net could be converted into a fixed length binary vector, and frequent itemset mining could be applied on the entire dataset.. We performed two types of analysis on this place-place connection data: firstly we determined the most frequent single connections, and secondly we determined the most frequent largest pattern of connections (i.e. the largest group of single connections that co-occur as a group).

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


Reducing pressure in bounded DBT code caches Dynamic binary translators (DBT) have recently attracted much attention for embedded systems. The effective implementation of DBT in these systems is challenging due to tight constraints on memory and performance. A DBT uses a software-managed code cache to hold blocks of translated code. To minimize overhead, the code cache is usually large so blocks are translated once and never discarded. However, an embedded system may lack the resources for a large code cache. This constraint leads to significant slowdowns due to the retranslation of blocks prematurely discarded from a small code cache. This paper addresses the problem and shows how to impose a tight size bound on the code cache without performance loss. We show that about 70% of the code cache is consumed by instructions that the DBT introduces for its own purposes. Based on this observation, we propose novel techniques that reduce the amount of space required by DBT-injected code, leaving more room for actual application code and improving the miss ratio. We experimentally demonstrate that a bounded code cache can have performance on-par with an unbounded one. Dynamic Binary Translators (DBT) allow the modification of a running program for a specific purpose. Recent work has shown 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. several uses of DBT for embedded systems, including instruction set translation [5] , security [14, 16] , power management [18] , and software caching [15, 2] , For instance, a DBT can improve performance in embedded systems with Flash memory because it provides a form of incremental loading that requires fewer accesses to the slow Flash device, rather than loading the whole executable into main memory (DRAM). Previous work with a DBT for this type of system has achieved a 1.9x to 2.2x speedup over native execution [2] . Despite these promising uses, the adoption of DBT for embedded systems has been limited, due to tight constraints on memory and performance that make the implementation of an efficient DBT a challenging task.. A DBT commonly uses a software-managed memory buffer (a "code cache") to hold translated application instructions. To ensure low runtime overhead in general-purpose systems, the code cache size is usually unbounded to let it grow large enough to hold an application's full translated code working set. Thus, application code is never evicted and there is no need for re-translation due to premature evictions. When the code cache is unbounded, a DBT's performance is partially a function of the number of compulsory misses. Past work showed that a general-purpose DBT with an unbounded code cache has an average performance overhead of just 2% to 4% over native execution on the SPEC benchmarks [12] .. Unfortunately, a large, unbounded code cache can easily exceed the limited capacity of an embedded system's memory resources (e.g., if the system has only a small scratchpad memory). As a result, the performance of a dynamically translated program in such systems can be poor. The problem is that limiting the size of the code cache makes it unlikely that the translated code working set will fit. If it becomes necessary to obtain space for newly translated code and the code cache is full, some of the existing translated code must be evicted. When code is evicted, it becomes possible to need that code again, and capacity misses appear.. Past research for general-purpose systems has examined eviction schemes that effectively decide what code to keep in the code cache. Even with these techniques, the code cache size can still be hundreds of kilobytes to a few megabytes [10] . For embedded systems, compression and pinning can be used to keep needed code in the code cache [2] . While these approaches are important, they primarily address what code to keep and when to discard it. They do not tackle the footprint of the translated code, although some work considers it in a limited way [2, 7, 6] . We show in this paper, the code inserted by the DBT for its own purposes can easily account for 70% of the code in the code cache! As a result, it is important to aggressively minimize this "control code".. We investigate and develop techniques that reduce the footprint of the translated code for small, bounded code caches. With a smaller translated code footprint, there is less pressure on the code cache, and its miss ratio is improved. To this end, we categorize the instructions emitted by a DBT and distinguish those necessary to carry out the application behavior from those inserted by the DBT to ensure its control over execution. We measure the relative code cache space consumed by each category, and identify which aspects of the DBT's "control code" have the largest impact on code footprint. Then, we develop techniques to minimize it. A reduction in the code cache space consumed by "control code" leaves more room for actual application code, which lowers the number of evictions and achieves a significant improvement in performance.. This paper makes the following contributions:. • A classification of the instructions generated by a DBT, used to characterize the utilization of the code cache. This has not previously been done because in general-purpose systems there is less concern about code expansion.. • Experimental evidence of the excessive amount of code inserted by the DBT and its negative effect on performance under the memory constraints of embedded systems.. • Descriptions and implementations of novel techniques for substantially reducing the space consumed by DBT-injected code: single-instruction trampolines, factored indirect handling, prologue elimination, and bottom link eliding.. • Comprehensive experimental evaluation of the techniques, considering different code cache sizes and management approaches.. The paper is organized as follows: Section 2 provides the framework for our work. Section 3 shows the performance impact of reducing the size of the code cache and Section 4 analyzes the usage of the code cache, describes and incrementally evaluates different techniques for reducing the footprint of each instruction category, choosing the most beneficial. Section 5 gives the overall improvement with the selected techniques. Section 6 describes related work and Section 7 concludes. This paper investigated the composition of the code generated by a DBT and proposed techniques to reduce its footprint, targeting "control code". We described and evaluated methods to minimize the space needed by trampolines, indirect branch handling and context switch code. With these techniques, the translated program code fits better in a small, bounded code cache for an embedded system. In general, when our approaches are enabled, a DBT with a constrained code cache has similar performance than a DBT with an unbounded code cache. Several studies address the management of bounded software code caches. For general-purpose systems, Bala et al. propose preemptively flushing the trace cache of a dynamic optimizer when detecting program phase changes [3] . Bruening and Amarasinghe develop methods for maintaining the consistency of the code cache in the presence of self-modifying code and for dynamically increasing the size of the code cache as the working set grows [4] . Hazelwood and Smith explore different eviction policies for the trace cache of a dynamic optimizer and conclude that FIFO reduces the miss rate over FLUSH by half [9] . Later, they find that medium-grained evictions scale better than FLUSH and FIFO [10] . From observing the lifetime of traces, they also develop a generational scheme that stores short-lived and long-lived traces in separate caches. Guha et al. adapt generational cache management to embedded systems, in order to reduce the maximum dynamic size of an unbounded code cache [7] . Baiocchi et al. manage constrained code caches by keeping a compressed F$ region to which fragments are initially evicted and decompressed if required again [2] . This technique reduces the retranslation cost for accessing Flash memory. They also "pin" decompressed fragments to avoid repeated compressions and decompressions.. Reducing the size of DBT's "control code" has been studied by Guha et al., who focus only on trampolines [6] . In their setup, fragments and trampolines are inserted from opposite ends of the code cache. They reduce the trampoline size and delete free trampolines on top of the stack. They also unify trampolines that request the same address. Their optimizations reduce the relative size of trampolines from 66.7% to 41.4%, for an unbounded code cache. Our techniques consider all control code and do considerably better when applied together. Hiser et al. study the allocation of trampolines in a separate region (a "trampoline pool") in comparison to interleaving them with fragments [11] . They find the technique lowers I-cache pressure (over 18% of the misses are eliminated with a pool). The reduction of trampoline size to 1 instruction, thanks to the "Shadow Link Register", combined with "Bottom Jump Eliding", fully eliminates the need for trampoline management.. A similar concept to the "Shadow Link Register" technique is used by Miller and Agarwal in Flexicache [15] . It is a system that provides a software-managed code cache for processors with SPM and no I-cache. Flexicache is not a DBT; it uses a binary rewriter to statically form cache blocks of fixed size and inject control code prior to the program's execution. The rewriter also inserts code to update the shadow variable after each definition of the link register (including call sites) and to load the value of the shadow variable before each use. Instead, we move the update to the beginning of the callee and do not instrument uses, because the proper value of the link register is restored on return from the DBT. Our work shows that a DBT with a bounded F$ allocated to SPM can provide similar functionality as Flexicache, while enabling other services.. Hiser et al. study several indirect branch handling techniques across platforms [12] . They found IBTC to be the most useful technique, but that the placement of the lookup code has little importance in general-purpose systems. Our work shows that in embedded systems aggressive factorization of the lookup code can benefit performance due to space savings.

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


On Sum Coloring and Sum Multi-Coloring for Restricted Families of Graphs Abstract. We consider the sum coloring (chromatic sum) and sum multi-coloring problems for restricted families of graphs. In particular, we consider the graph classes of proper intersection graphs of axis-parallel rectangles, proper interval graphs, and unit disk graphs. All the above mentioned graph classes belong to a more general graph class of (k + 1)-clawfree graphs (respectively, for k = 4, 2, 5). We prove that sum coloring is NP-hard for penny graphs and unit square graphs which implies NP-hardness for unit disk graphs and proper intersection graphs of axis-parallel rectangles. We show a 2-approximation algorithm for unit square graphs, with the assumption that the geometric representation of the graph is given. For sum multi-coloring, we confirm that the greedy first-fit coloring, after ordering vertices by their demands, achieves a k-approximation for the preemptive version of sum multi-coloring on (k + 1)-clawfree graphs. Finally, we study priority algorithms as a model for greedy algorithms for the sum coloring and sum multi-coloring problems. We show various inapproximation results under several natural input representations. The sum coloring problem (SC), also known as the chromatic sum problem, was formally introduced in [4] . For a given graph G = (V, E), a proper coloring of G is an assignment of positive integers to its vertices φ : V → Z + such that no two adjacent vertices are assigned the same color. The sum coloring problem seeks a proper coloring such that the sum of colors over all vertices v∈V φ(v) is minimized. Sum coloring has many applications in job scheduling and resource allocation. Consider an instance of job scheduling in which one is given a set S of jobs, each requiring unit execution time. We construct the conflict graph G whose vertex set is in one-to-one correspondence with the set of input jobs S, and an edge exists between two vertices if and only if the corresponding jobs conflict for resources. Dividing the chromatic sum of the conflict graph G = (V, E) by n = |V | then determines the minimum average job completion time. Throughout this paper we will let n (respectively, m) denote the number of vertices (respectively the number of edges) in the input graph being considered.. The sum coloring problem has been studied extensively in the literature. The problem is NP-hard for general graphs [4] , and cannot be approximated within n 1−ǫ for any ǫ > 0 unless ZPP=NP [5] [7] . The problem is polynomial time solvable for proper interval graphs [9] and trees [4] ; however, it is APX-hard for both bipartite graphs [6] and interval graphs [11] . The best known approximation algorithm for interval graphs has approximation ratio 1.796 [16] and for bipartite graphs the best known is a 27 26 -approximation [12] . One well-studied extension of the sum coloring problem is sum multi-coloring (SMC): given graph G = (V, E) and a demand function x : V → {1, 2, ...}, color each vertex v with x(v) different colors so as to minimize the sum of the maximum color assigned to each vertex while assigning distinct colors to adjacent vertices. That is, a coloring is now an assignment φ : V → 2 Z + such that |φ(v)| = x(v) for all v, and φ(u) ∩ φ(v) = ∅ for all (u, v) ∈ E. There are two variants to the sum multi-coloring problem, namely the non-preemptive version (npSMC) where colors assigned to each vertex must be consecutive integers and the preemptive version (pSMC) in which colors need not be consecutive. One interesting fact about pSMC and npSMC is that there is a known polynomial time algorithm that solves npSMC for trees [13] , while pSMC remains NP-hard for trees [14] . This is in contrast to other graph classes (see [19] ) where the known approximation for pSMC is better than that for npSMC and also in contrast to the results in [10] that reduce pSMC to the weighted MIS problem, suggesting that npSMC is in general a harder problem. For a more complete review of previous results on sum coloring and sum multi-coloring, see [19] .. In this paper, we consider the sum coloring and sum multi-coloring problem for restricted families of graphs with respect to both hardness and approximation algorithms. We shall always assume that the graph is connected since otherwise each connected component can be colored separately. The remainder of the paper is organized as follows. In Section 2, we discuss various classes of (k + 1)-clawfree graphs. We prove the problem is NP-hard for penny graphs and unit square graphs, and show a 2-approximation for unit square graphs in Section 3. We study the sum multi-coloring problem for (k + 1)-clawfree graphs in Section 4 and priority inapproximations in Section 5. Section 6 concludes with some open problems. We have considered the sum coloring and sum multi-coloring problem for restricted families of graphs in this paper. We conclude by suggesting a few open questions:. A The priority algorithm schema. For completeness, we provide the schema for an adaptive priority algorithm introduced in Borodin, Nielsen and Rackoff [15] as a model for greedy algorithms.

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