Epistemic irrelevance in credal nets: the case of imprecise Markov trees ABSTRACT. We focus on credal nets, which are graphical models that generalise Bayesian nets to imprecise probability. We replace the notion of strong independence commonly used in credal nets with the weaker notion of epistemic irrelevance, which is arguably more suited for a behavioural theory of probability. Focusing on directed trees, we show how to combine the given local uncertainty models in the nodes of the graph into a global model, and we use this to construct and justify an exact message-passing algorithm that computes updated beliefs for a variable in the tree. The algorithm, which is linear in the number of nodes, is formulated entirely in terms of coherent lower previsions, and is shown to satisfy a number of rationality requirements. We supply examples of the algorithm's operation, and report an application to on-line character recognition that illustrates the advantages of our approach for prediction. We comment on the perspectives, opened by the availability, for the first time, of a truly efficient algorithm based on epistemic irrelevance. The last twenty years have witnessed a rapid growth of graphical models in the fields of artificial intelligence and statistics. These models combine graphs and probability to address complex multivariate problems in a variety of domains, such as medicine, finance, risk analysis, defence, and environment, to name just a few.. Much has been done also on the front of imprecise probability. In particular, credal nets [4] have been and still are the subject of intense research. A credal net creates a global model of a domain by combining local uncertainty models using some notion of independence, and then uses this to do inference. The local models represent uncertainty by closed convex sets of probabilities, also called credal sets.. The notion of independence used with credal nets in the vast majority of cases is that of strong independence (with some exceptions in [8] ). Loosely speaking, two variables X,Y are strongly independent if the credal set for (X,Y ) can be regarded as originating from a number of precise models in each of which X and Y are stochastically independent. Strong independence is closely related to the sensitivity analysis interpretation of credal sets, which regards an imprecise model as arising out of partial ignorance of a precise one.. In the particular case of credal nets, strong independence leads to a mathematical equivalence: a credal net model is equivalent to a model consisting of a set of Bayesian nets, each with the same graph but with different values for the parameters. The sensitivity analysis interpretation is then that there is some (kind of ideal) Bayesian net model of the problem under consideration, and the graph of such a net is known. But, for some reason, the net's parameters are not known precisely, and that is why one considers the set of all the Bayesian nets that are consistent with the partial specification of the parameters. Common causes for the existence of partial knowledge are the cost of, and time constraints on, eliciting parameters, and disagreement amongst a group of experts consulted for that purpose. Non-ignorable missing data can be another reason, in case the parameters are inferred from a data set [29] .. The sensitivity analysis interpretation of imprecise-probability models, and hence strong independence, is not always applicable. A notable case arises when one wishes to model an expert's beliefs: it is then not always tenable that there should be some ideal Bayesian net that models these beliefs, and that it is only because of our limited resources that we cannot define it precisely. Rather, it seems more reasonable to concede that expert knowledge may be inherently imprecise to some extent. 1 This simple observation makes the sensitivity analysis interpretation fail, and hence it makes strong independence an inadequate model, in general, for such a situation. 2 An alternative and attractive approach to expressing irrelevance that is not committed to the sensitivity analysis interpretation is offered by epistemic irrelevance [24] : we say that X is epistemically irrelevant to Y if observing X does not affect our beliefs about Y . In other words, by making an epistemic irrelevance assessment, a subject states that her belief model about Y does (or will) not change after receiving information about X. When the belief model is a precise probability, both epistemic irrelevance and strong independence reduce to the usual (stochastic) independence. 3 But when the model is a set of probabilities, this is no longer the case, because in contradistinction with strong independence, epistemic irrelevance is a property of this set that cannot be explained using properties of the precise probabilities in the set. Epistemic irrelevance is defined directly in terms of a subject's belief model (the set of probabilities). For this reason, it is very well suited for a behavioural theory of imprecise probability. Contrary to strong independence, it is not a symmetrical notion: generally speaking, the epistemic irrelevance of X to Y does not entail the epistemic irrelevance of Y to X. It is also weaker than strong independence, in the sense that strong independence implies epistemic irrelevance: sets of probabilities that correspond to assessments of epistemic irrelevance usually include those related to strong independence assessments. It therefore does not lead to overconfident inferences when the sensitivity analysis interpretation is not justified.. At this point, the question we address in this paper should be clear: can we define credal nets based on epistemic irrelevance, and moreover create an exact algorithm to perform efficient inferences with them? We give a fully positive answer to this question in the special case that (i) the graph under consideration is a directed tree, and (ii) the related variables assume finitely many values. The intuitions that showed us the way towards this result originated in previous work done by some of us on imprecise probability trees [9] and imprecise Markov chains [10] .. How do we address this problem? In Section 2, we discuss some preliminary graph-theoretic notions, and define the local uncertainty models that will be used at each node of a tree. These models are formalised through the language of coherent lower previsions [24] . We discuss how such local models will give rise to a global uncertainty model, which plays the same role as the joint mass function built by the chain rule in a Bayesian net. Based on the global model, we state the Markov condition that defines the imprecise-probability interpretation of our credal trees. As announced before, this Markov condition involves epistemic irrelevance rather than strong independence.. In Section 3, we take a brief detour to discuss in general terms how to combine marginal models into joint ones using irrelevance assessments, in a way that is as conservative as possible. We do so because the notion of so-called epistemic independence, which arises out of a symmetrisation of epistemic irrelevance, has so far been defined in the literature only for the case of two variables. We define and discuss the independent natural extension 1 For a detailed argumentation and exposition of this point of view, we refer to [24, Chapter 5] . 2 Obviously, there will be special cases where strong independence is justified in order to model an expert's knowledge. Moreover, strong independence could provide a good approximation to more accurate models, even when it is not entirely appropriate. This is something that seems to deserve further investigation.. 3 If we ignore issues related to events with probability zero.. of a number of marginals. This is the most conservative joint model that arises out of the marginals and epistemic independence alone. Moreover, we show that the independent natural extension has a very important strong factorisation property, which has a crucial part in our algorithm for updating credal trees under epistemic irrelevance. In Section 4, we turn to the problem of constructing the most conservative global model based only on the local models in the tree and our Markov condition. We show that this task can be achieved by a recursive construction that proceeds from the leaves to the root of the tree using two operations: the independent natural extension discussed in Section 3, and the marginal extension, defined and studied in [24, 17] . We also show that all uncertainty models we consider, the local ones as well as the global ones that we create, satisfy a consistency criterion that generalises (and is based on the same ideas as) the usual consistency criterion in Bayesian nets: they are (separately and jointly) coherent [24, 15, 16, 27] (see in particular [18, Section 8.1] ). This is an important rationality requirement.. We briefly comment on some of the graphical separation criteria induced by epistemic irrelevance in Section 5. We then go on to develop and justify an algorithm for making inferences on credal trees under epistemic irrelevance in Section 6. The algorithm is used to update the tree: it computes posterior beliefs about a target variable in the tree conditional on the observation of other variables, which are called instantiated, meaning that their value is determined. It can in particular be used for treating the model as an expert system.. Our algorithm is based on message passing, as are the traditional algorithms that have been developed for precise graphical models. It has some remarkable properties: (i) it works in time linear in the number of nodes in the tree; (ii) it natively computes posterior lower and upper previsions (or expectations) rather than probabilities; (iii) it is the first algorithm developed for credal nets that exclusively uses the formalism of coherent lower previsions; and (iv) it is shown that, under very mild conditions, using the tree for updating beliefs cannot lead to inferences that are inconsistent with the local models we have started from, nor with one another.. We give a step-by-step example of the way inferences can be done using our algorithm in Section 7. We also comment there on the intriguing relationship between the failure of certain classical separation properties in our framework, and dilation [14, 22] .. The last part of the paper focuses on numerical simulations. In Section 8 we empirically measure the amount of imprecision introduced by using epistemic irrelevance rather than strong independence in a credal tree, when propagating inferences backwards (towards the root) from instantiated nodes to the target node. Indeed, it can be shown [9] that there is no difference between inferences that go forward from instantiated nodes to the target node under strong independence and epistemic irrelevance. In Section 9 we present an application of our algorithm to on-line character recognition. We learn the probabilities from data and compare the predictions of our approach with those of its precise probability counterpart. The results are encouraging: they show that the tree can be used for real applications, and that the imprecision it originates is justified.. In order to keep this paper reasonably short, we have to assume the reader has a good working knowledge of the basics of Peter Walley's [24] theory of coherent lower previsions. This is needed in particular for the most important proofs, collected in the Appendix. For a fairly detailed discussion of the coherence notions and results needed in the context of this paper, we refer to recent work by Enrique Miranda [15, 16] . We have defined imprecise-probability (or credal) trees using Walley's notion of epistemic irrelevance. Credal trees generalise tree-shaped Bayesian nets in two ways: by allowing the parameters of the tree to be imprecisely specified, and moreover by replacing the notion of stochastic independence with that of epistemic irrelevance. Our focusing on epistemic irrelevance is the most original aspect of this work, as this notion has received limited attention so far in the context of credal nets.. We have focused in particular on developing an efficient exact algorithm for updating beliefs on the tree. Like the algorithms developed for precise graphical models, our algorithm works in a distributed fashion by passing messages along the tree. It computes lower and upper conditional previsions (expectations) with a complexity that is linear in the number of nodes in the tree. This is remarkable because until now it was unclear whether an algorithm with the features described above was at all feasible: in fact, epistemic irrelevance is most easily formulated using coherent lower previsions, which have never before been used as such in practical applications of credal nets. Moreover, it is at this point not clear that epistemic irrelevance is as 'well-behaved' as strong independence is with respect to the graphoid axioms for propagation of probability in graphical models [5, 19] . 23 Our results therefore appear very encouraging, and seem to have the potential to open up new avenues of research in credal nets.. On a more theoretical side, we have also shown that our credal trees satisfy the important rationality requirement of coherence. This has been established under the assumption that the upper probability of any possible observation in the tree is positive, which is a very mild requirement. The same assumption also allowed us to show that all inferences made by updating the tree will be coherent with each other as well as with the local uncertainty models in the nodes of the tree.. On the applied side, we have presented an application of the credal tree model to the problem of character recognition, where the parameters of the model are inferred from data. The empirical results are positive, especially because they show that our credal trees are able to make more reliable predictions than their precise-probability counterparts.. Where to go from here? There are many possible avenues for future research. It would be very useful to be able to extend the algorithm at least to so-called polytrees, which are substantially more expressive graphs than trees are. This could be a difficult task to achieve. In fact, updating credal nets based on strong independence is an NP-hard task when the graph is more general than a tree [7] . Similar problems might affect the algorithms for credal nets based on irrelevance.. For applications, it would be very important to develop statistical methods specialised for credal nets under irrelevance that avoid introducing excessive imprecision in the process of inferring probabilities from data. This could be achieved, for instance, by using a single global IDM over the variables of the tree rather than many local ones, as we did in our experiments.. Another research direction could be concerned with trying to strengthen the conclusions that epistemic trees lead to. There might be cases where our Markov condition based on epistemic irrelevance is too weak as a structural assessment. We have discussed situations where this type of Markov condition systematically leads to a dilation of uncertainty when updating beliefs with observations, and indicated that this dilation is related to the (lack of) certain separation properties induced by epistemic irrelevance on a graph. Dilation might not be desirable in some applications, and we could be called upon to strengthen the model in order to rule out such behaviour. One way to address the issue of dilation-but not necessarily the easiest-could consist in adding additional irrelevance statements to the model, other than those derived from the Markov condition. An easier avenue could be based on designing assumptions that together with the Markov condition lead to some stronger separation properties, while not necessarily requiring them to match the common ones used in Bayesian nets.

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


Stimulating appropriate uses of simulation in design This article addresses the issue of educating undergraduate engineering students in the appropriate use of computer simulation in the design process. The premise that poorly designed assignments involving simulation can actually impair understanding is addressed. A set of goals for simulation-based exercises is suggested, and some tactics for meeting these goals are introduced. Finally, a specific example of a half-term assignment that is used to meet these goals is provided for illustration. At the outset, a distinction is drawn between the use of computers to educate students regarding design (an important topic), and educating students to use computers in design. It is the latter topic that is addressed here. Views on and experiences with teaching undergraduate engineering students how to (and how not to!) use computer simulation in performing design will be conveyed. In summary, there are three main points made. First, poorly planned simulation exercises can reduce rather than increase student understanding. Second, it is important to establish a set of goals for the introduction of simulation into design education, to try to have each exercise meet at least several of these goals, and to have the overall set of exercises in the curriculum address all of these goals. Finally, described is an exemplar project that meets most of the goals set forth by the author, in an attempt to show that it is possible to do so, but that it does take quite a bit of the instructor's time and effort to construct the assignment and to administer it. James J. Rosenberg received the Sc.B. degree from Brown University in Providence, the M.S. degree from the University of California at Berkeley, and the Ph.D. from Columbia University, in New York. He has served at the Assistant and Associate Professor ranks at Brown University, was the Deputy Manager of the Microdevices Laboratory at the NASA Jet Propulsion Laboratory, served as Director of Engineering of Germanium Power Devices Corp., and currently is an Associate Professor of Engineering at Harvey Mudd College in Claremont, California. His research interests include semiconductor designs, analog and digital signal processing circuits, microwave amplification systems, and clock synchronization schemes for high-speed digital systems. Dr. Rosenberg has been awarded the NSF Fellowship for graduate study, the NSF Presidential Young Investigator Award, an IBM Faculty Development Award, and the 1988 Technical Analysis Corporation's President's Award for Excellence in Teaching. He is a member of Tau Beta Pi.

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


Parallel Multilevel Algorithms for Hypergraph Partitioning In this paper, we present parallel multilevel algorithms for the hypergraph partitioning problem. In particular, we describe schemes for parallel coarsening, parallel greedy k-way refinement and parallel multi-phase refinement. Using an asymptotic theoretical performance model, we derive the isoefficiency function for our algorithms and hence show that they are technically scalable when the maximum vertex and hyperedge degrees are small. We conduct experiments on hypergraphs from six different application domains to investigate the empirical scalability of our algorithms both in terms of runtime and partition quality. Our findings confirm that the quality of partition produced by our algorithms is stable as the number of processors is increased while being competitive with those produced by a state-of-the-art serial multilevel partitioning tool. We also validate our theoretical performance model through an isoefficiency study. Finally, we evaluate the impact of introducing parallel multi-phase refinement into our parallel multilevel algorithm in terms of the trade off between improved partition quality and higher runtime cost. Intelligent a priori data partitioning enables the efficient parallelisation of many sparse irregular problems by reducing interprocessor communication while maintaining computational load balance. Graph and hypergraph partitioning decomposition models have been widely used in this context, in particular in the fields of VLSI circuit design [3, 36, 46] and matrix decomposition for parallel computation [4, [12] [13] [14] [15] 20, 21, 50, 51] . Hypergraph models are in general preferred to graph models due to their greater expressiveness that overcomes the well documented limits of the graph partitioning approach [12, 13, 20, 31, 32] .. Serial graph and hypergraph partitioning algorithms have been studied extensively [2, 3, 5, 11, 17, 23, 24, 27, 33, 35, 36, 38, 40, 42, 44, 45] . Many of these are based on the multilevel approach [2, 5, 33, 35, 36, 38, 40] , which has three main phases. Firstly, during the coarsening phase, the original (hyper)graph is coarsened to successively smaller (hyper)graphs. Next, during the initial partitioning phase, the smallest (hyper)graph in this sequence is partitioned. Finally, during the uncoarsening phase, this partition is projected back through the sequence of successively larger (hyper)graphs onto the original (hyper)graph, with heuristic refinement applied at each step.. Serial hypergraph partitioning algorithms are limited by the computing power and memory capacity of a single workstation. In this paper, we address this limitation by describing the first parallel algorithms for the hypergraph partitioning problem. Our parallel algorithms are based on the multilevel paradigm, specifically a parallel coarsening algorithm as well as two parallel refinement algorithms -a parallel direct k-way scheme and its parallel multi-phase adaptation. We also demonstrate scalability of the parallel multilevel algorithms under a theoretical performance model and the assumption of low maximum vertex and hyperedge degrees. The parallel coarsening algorithm, the parallel direct k-way refinement algorithm and their theoretical scalability analysis were first described in our earlier conference papers [48, 49] . These are presented here in distilled and refined form to make the paper self-contained. We further evaluate the empirical performance of our parallel algorithms on a Beowulf cluster, partitioning a number of hypergraphs from application domains ranging from biology to VLSI circuit design. We test the scalability of our parallel algorithms' runtime and partition quality, and estimate the expected improvement in partition quality when applying parallel multi-phase refinement.. The remainder of this paper is organised as follows. Section 2 outlines the preliminaries and background material on serial hypergraph partitioning algorithms. Section 3 presents our parallel multilevel hypergraph partitioning algorithms and theoretical scalability analysis. Section 4 presents the experimental evaluation and Section 5 concludes. In this paper, we have presented the first parallel algorithms for the hypergraph partitioning problem and have shown the scalability for certain classes of hypergraph under a theoretical performance model. Specifically, we have enabled large hypergraphs with small maximum vertex and hyperedge degrees to be partitioned in a scalable manner, something that had hitherto not been achieved. In the context of the multilevel paradigm, we presented a parallel coarsening algorithm based on the serial FC/HCC algorithms [38, 13] and two parallel refinement algorithms, based on serial greedy k-way [38] and serial multi-phase [36] refinement respectively.. The algorithms were empirically evaluated on hypergraphs representing sparse matrix problems from the domains of DNA electrophoresis, analog circuits, structural engineering, VLSI circuit design, PageRank computations and performance analysis. We observed reasonable speedups on hypergraphs with small maximum hyperedge degrees and/or a high degree of structural locality, and partitions that were competitive with those produced by the state-of-theart serial multilevel partitioner PaToH [16] . The isoefficiency study conducted on the voting family of hypergraphs validated our theoretical performance model.. Using the parallel multi-phase refinement algorithm instead of the parallel greedy k-way algorithm, we were able to achieve even better partition quality over the basic parallel k-way refinement algorithm (with average improvements of 3.1%, 4.9% and 8.0% for k = 8, k = 16 and k = 32 respectively), albeit at a significantly larger runtime cost.. There are a number of directions that we can see for future work. In particular, the algorithms in this paper are designed to be applied to general hypergraphs representing sparse irregular problems and as such have not been optimised for particular application domains. We anticipate that an improvement in runtime and also partition quality would be possible if the algorithms were tailored to take advantage of any inherent domain-specific structure in the hypergraphs to achieve a better data distribution among the processors and guide the coarsening and refinement algorithms. Secondly, it is clear that frontier hyperedge overhead is the main limiting factor in terms of the scalability of our algorithms. A different approach to data distribution could be helpful in this respect. While here we have considered a data distribution scheme analogous to one-dimensional row-wise decomposition for parallel sparse matrix-vector multiplication, concurrent work presented in [19] uses a two-dimensional distribution. Experimental results suggest that this distribution results in lower overheads when partitioning hypergraphs with larger maximum vertex and hyperedge degrees. Table 8 PaToH runtimes on the voting hypergraphs. For voting100 to voting200 the runtimes are averages over ten runs. Remaining runtimes are approximated by a log-log least squares regression over the observed runtimes. The regression α is the zero intercept and the regression β is the slope of the line. The quantities in brackets denote the standard errors of the parameters.

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


Prioritizing Remote Procedure Calls in Ada Distributed Systems In this paper we discuss the assignment of priorities to the execution of remote procedure calls in distributed real-time systems that are programmed using the Distributed Systems Annex (DSA) of Ada 95. We first discuss the current priority model used in the Glade implementation of the DSA. We then present some theoretical results that show that a more flexible priority assignment methodology can provide much better schedulable utilization levels. Based upon these results we propose an implementation that would allow using this priority assignment methodology in Glade. Finally, we propose new features for a future DSA that would allow prioritizing remote procedure calls in a flexible manner. It is well known that the Distributed Systems Annex (DSA) of Ada 95 [8] provides a flexible way for distributing Ada programs in a multiple-processor platform. This distribution is based on the concepts of program partitions, and remote procedure calls (RPCs). But the language does not provide interfaces nor semantics that would enable using the DSA for distributing applications with real-time requirements. At the time Ada 95 was standardized the mixture of distributed and real-time systems was considered to be insufficiently known, and thus the standard did not attempt its specification. However, the standard is a good starting point for further investigation into these issues. Results from these investigations could perhaps be standardized in a future DSA. This paper explores one aspect of the distribution of real-time applications, which is the prioritization of remote procedure calls.. The implementation of the DSA that is provided with the Gnat free-software Ada compiler is called Glade [9] . In this implementation, an attempt has been made to provide some level of control over the priorities at which remote procedure calls are executed. In section 2 of this paper we review the priority model that we found in the current implementation (version 2.01). As we will show through theoretical results in Section 3, the simple priority model used in Glade would achieve schedulability results that are much poorer than those that can be achieved by using a more flexible priority assignment. Although the problems of priority assignment and of task allocation in distributed systems are NP-Hard problems [6] , there exist some heuristic algorithms provide good solutions. One such algorithm for optimizing the priority assignment is called HOPA [1] ; it is based on RMA techniques for analysing the response times [3] [4] [7] and it provides usually good results running in very short times. This is the algorithm that we will use to assign priorities in the distributed system.. In order to be able to apply the desired priorities to the different tasks and remote procedure calls, we need appropriate interfaces between the application and the underlying DSA implementation. In Section 4 of the paper we discuss one way in which we can use existing interfaces to set the desired priorities for RPC's, as well as for the messages sent through the interconnection network, if such priorities are supported.. Finally, Section 5 of the paper proposes changes to the DSA that would enable applications to specify the desired priorities for messages and RPCs in a more convenient and efficient way. Of course, the issue of real-time behavior in a DSA implementation depends on many more factors than just the prioritization of the RPC's. These issues will have to be worked out to achieve predictable behavior, but they are out of the scope of this paper. In this paper we have proposed a prioritization scheme for remote procedure calls in distributed Ada real-time systems. We have shown through theoretical results how this prioritization scheme works much better than the one provided by the current Glade implementation. We have also discussed how to modify Glade to accommodate the new priority scheme. Finally, we propose an amendment to the Ada 95 DSA, that would allow a flexible assignment of priorities.. It is worth mentioning that RPC prioritization is just one issue among many that have to be worked out to achieve a distributed systems implementation that offers a fully realtime behaviour.

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


Multiple Choices and Reputation in Multiagent Interactions Abstract-Coevolutionary learning provides a framework for modeling more realistic iterated prisoner's dilemma (IPD) interactions and to study conditions of how and why certain behaviors (e.g., cooperation) in a complex environment can be learned through an adaptation process guided by strategic interactions. The coevolutionary learning of cooperative behaviors can be attributed to the mechanism of direct reciprocity (e.g., repeated encounters). However, for the more complex IPD game with more choices, it is unknown precisely why the mechanism of direct reciprocity is less effective in promoting the learning of cooperative behaviors. Here, our study suggests that the evolution of defection may be a result of strategies effectively having more opportunities to exploit others when there are more choices. We note that strategies are less able to resolve the intention of an intermediate choice, e.g., whether it is a signal to engender further cooperation or a subtle exploitation. A likely consequence is strategies adapting to lower cooperation plays that offer higher payoffs in the short-term view when they cannot resolve the intention of opponents. However, cooperation in complex human interactions may also involve indirect interactions rather than direct interactions only. Following this, we study the coevolutionary learning of IPD with more choices and reputation. Here, current behavioral interactions depend not only on choices made in previous moves (direct interactions), but also choices made in past interactions that are reflected by their reputation scores (indirect interactions). The coevolutionary learning of cooperative behaviors is possible in the IPD with more choices when strategies use reputation as a mechanism to estimate behaviors of future partners and to elicit mutual cooperation play right from the start of interactions. In addition, we study the impact of the accuracy of reputation estimation in reflecting strategy behaviors of different implementations and why it is important for the evolution of cooperation. We show that the accuracy is related to how memory of games from previous generations is incorporated to calculate reputation scores and how frequently reputation scores are updated. This paper presents a series of investigations aimed to further understand why coevolutionary learning is less likely to produce cooperative outcomes as the number of available choices to play in the IPD game increases. This paper focuses on finding out why more choices lead to defection outcomes in the coevolutionary learning of IPD strategies, and how subsequent analysis of the results leads to devising a solution for the coevolutionary learning of cooperative behaviors.. Based on our studies, it appears that when there are more choices, strategies have more opportunities to exploit others by playing lower cooperation levels. We note that with more choices, strategies are less able to resolve the intention of an intermediate choice, i.e., whether it is a signal to engender further cooperation or a subtle exploitation. Strategies adapt to play defection because they provide higher payoffs in the short-term when they are unable to resolve the intention of opponents. In effect, strategies are less likely to learn highly cooperative plays as cooperative plays are sampled less often compared with plays with lower cooperation levels.. Based on this result, and motivated from the view that complex human interactions are not limited to only direct interactions, we investigate other mechanisms known to promote cooperation without depending on repeated encounters (direct reciprocity). One such mechanism is indirect reciprocity. The mechanism of indirect reciprocity can be explained in terms of reputation, whereby cooperative behaviors between two individuals depend on their prior behaviors with other individuals. Reputation is incorporated into the IPD with more choices by adding an additional input for reputation to existing inputs for previous moves in a strategy's behavioral response. A strategy's reputation is determined relative to the current interacting pair's reputation scores, which in turn are determined based on choices played by them to other strategies prior to the current game. The resulting IPD game with more choices and reputation that we consider here is very different from other studies. The coevolutionary learning of cooperative behaviors are possible and more likely when strategies use reputation as a mechanism to estimate behaviors of future partners prior to interactions. Through reputation, cooperative strategies are able to elicit mutual cooperation play right from the start of the interaction, which is essential for mutual cooperation in the IPD game with more choices and short game durations.. A strategy's reputation can be estimated in many different ways. We investigated the impact of different implementations of reputation estimation on the evolution of cooperation, focusing on one major issue: the accuracy of reputation estimation. Experiments show that incorporating memory of games from previous generations using actual choices played from games, not raw reputation scores, leads to a higher accuracy in reputation estimation that has a positive impact on the evolution of cooperation. Further evolution of cooperation is obtained when one considers an almost instantaneous feedback of a strategy's behavior to others in the population by updating the reputation score for every game played.. The framework introduced here, which considers both direct and indirect interactions, provides avenues of study for many issues on the coevolutionary learning of behaviors. One issue that requires further study is noise and how it can affect the evolutionary outcome. This is because noise can affect the process of estimating strategy behaviors. In addition, the issue of the robustness of evolved strategies that considers both previous moves and reputation should be investigated. Further study is also required to understand the impact of strategies that cheat, i.e., obtained good reputation, but later evolved to exploit "naive" (in terms of observing reputation) strategies. Nowak and Sigmund [21] studied how cooperative behaviors can be evolved through indirect reciprocity using image scoring strategies. The two-player interaction is modeled as a single-round donation game. Strategies are randomly selected to be donors and recipients. When strategies are selected to be donors, they are given two choices: cooperate (help) and defect (not help). For any donor-recipient pair, the donor pays a cost of if it cooperates, while the recipient receives the benefit , with . If the donor defects, both donor and recipient receives zero payoff.. Each strategy is given a value for reputation that is known to the strategy and its opponents. There are two ways for calculating reputation: image scores [21] and standing [27] . For both methods, an individual's reputation score increases if the donor cooperates. The two methods differ in terms of how the reputation score is decreased when the donor defects. For image score, the reputation score decreases whenever the donor defects [21] . For standing, the reputation score only decreases when the defection is unjustified (e.g., the recipient has a good reputation score). Otherwise, the reputation score remains unchanged [27] .. A strategy's behavioral response depends on the reputation score and some additional parameters used for decision-making (e.g., the strategy representation is a set of values that includes its reputation score and parameters for thresholding). Previous moves are not used in the decision-making process. Depending on how strategies use information from reputation scores, there are three broad classes of strategies [27] . First, a strategy can consider its own reputation score only for decision-making (e.g., "offer help when own reputation score is less than "). Second, a strategy can consider the recipient's reputation score for decision-making (e.g., "offer help when recipient's reputation score is at least "). Third, a strategy can consider both its own and the recipient's reputation scores (e.g., "offer help when own reputation score is less than and when recipient's reputation score is at least ") [27] .. Our approach, and that of [22] , differs from previous studies [21] , [27] on three fundamental aspects. First, in terms of the interaction, we use a different game compared with [21] and [27] . Here, we consider the IPD game with multiple levels of cooperation. In [21] and [27] , the game is a single-round donation game with only two extreme choices. Second, our approach is different in terms of a strategy's behavioral response. We consider a strategy whose responses depend on both previous moves and reputation. In [21] and [27] , only reputation is used as inputs to a strategy's response. Third, we use a coevolutionary learning model whereby strategies can adapt their behaviors over a range specified by the representation. Studies in [21] and [27] did not consider a process of adaptation, e.g., strategies are predetermined and their replacement depends on the proportions of existing strategies in the population.

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


A

Tutorial

for

Designing

Flexible

Geometric

Algorithms

The

implementation

of

an

algorithm

is

faced

with

the

issues

efficiency,

flexibility,

and

ease-of-use.

In

this

paper,

we

suggest

a

design

concept

that

greatly

increases

the

flexibility

of

an

implementation

without

sacrificing

ease-of-use

and

efficiency.We

demonstrate

the

advantages

of

our

concept

through

a

C++

implementation

of

a

simple

rectangleintersection

algorithm,

which

follows

the

well-known

sweep-line

paradigm.

We

lead

the

reader,

who

should

be

familiar

with

C++

and

its

template

mechanism,

from

a

naive

interface

in

a

step-by-step

guide

to

an

interface

offering

full

flexibility.

The

gain

in

flexibility

can

reduce

the

overall

implementation

effort

by

facilitating

code

reuse.

Reusability

in

turn

helps

to

achieve

correctness

simply

because

more

users

mean

more

testing.Though

most

of

the

ingredients

of

our

concept

have

already

been

suggested

elsewhere,

to

our

knowledge

this

is

the

first

time

that

they

are

applied

vigorously

in

a

geometric

setting.

We

include

a

thorough

experimental

analysis

on

random

and

real

world

data.

When

implementing

an

algorithm,

especially

in

the

initial

design

phase,

the

key

issues

are

efficiency,

flexibility,

and

ease-of-use.

While

focusing

on

flexibility,

we

demonstrate

that

there

is

no

reason

for

sacrificing

ease-of-use.

We

do

an

experimental

evaluation

to

show

that

a

gain

in

flexibility

does

not

necessarily

cause

a

loss

in

efficiency..

In

this

paper

we

present

a

design

concept

for

geometric

algorithms

that

is

based

on

the

generic

programming

paradigm.

Generic

programming

is

about

making

implementations

more

flexible

by

making

them

more

general.

Abstracting

from

concrete

input

or

output

data

representation

is

an

example

of

generic

programming.

In

contrast

to

conventional

programs,

the

parameters

of

generic

programs

are

often

quite

rich

in

structure.

Such

parameters

might

be

other

programs,

types

or

type

constructors,

or

even

other

programming

paradigms..

In

this

paper

we

will

focus

on

the

generic

programming

approach

that

has

been

introduced

by

the

C++

Standard

Template

Library,

or

STL

for

short

The

STL

was

so

successful

that

it

soon

became

part

of

the

C++

standard.

The

STL

is

a

library

of

generic

components,

i.e.

of

algorithms,

data

containers,

and

iterators

mediating

between

the

former

two.

Iterators

help

to

decouple

algorithms

from

the

type

of

data

container

they

operate

on.

While

iterators

have

been

known

before,

the

real

novelty

of

the

STL

was

the

introduction

of

a

requirements-based

taxonomy

of

iterators,

which

gives

a

guideline

for

full

decoupling,

and

an

implementation

of

this

taxonomy

using

the

C++

template

mechanism..

A

completely

different

view

of

genericity

is

that

of

inheriting

from

an

abstract

base

class.

This

so-called

polymorphism

also

allows

a

programmer

to

abstract

from

a

concrete

representation

of

input

and

output

data.

Polymorphism

is

ubiquitous

in

object-oriented

design,

but

in

this

paper

we

want

to

give

an

example

that

shows

that

STL-style

template

programming

can

be

an

interesting

alternative.

More

information

about

the

pros

and

cons

of

the

two

approaches

can

be

found

in

FGK£

After

the

introduction

of

the

STL

further

generic

programming

"tools"

such

as

data

accessors

have

been

suggested

in

the

C++

literature

to

help

programmers

make

the

interfaces

to

their

implementations

even

more

flexible

Data

accessors

are

a

means

to

further

decouple

an

implementation

from

the

representation

of

input

and

output

data

So

far,

these

extensions

have

been

applied

predominantly

to

graph

problems

Exceptions

such

as

deal

with

the

representation

of

geometric

objects,

not

with

the

design

of

geometric

algorithms,

our

main

interest

here..

In

order

to

show

the

relevance

of

STL-style

generic

programming

including

later

extensions

as

data

accessors

for

geometric

algorithms,

we

investigate

a

simple

rectangle-intersection

algorithm

that

follows

the

well-known

sweep-line

paradigm.

Using

this

example

we

lead

the

reader

step

by

step

from

an

inflexible,

naive

interface

to

a

truly

flexible

interface

that

supports

code

reuse.

We

expect

the

reader

to

be

familiar

with

C++

(that

we

used

for

the

code

fragments

in

our

tutorial)

and

its

template

mechanism

that

is

essential

for

STL-style

generic

programming.

The

aforementioned

steps

of

our

tutorial

reflect

our

own

change

of

perspective

during

the

implementation

of

algorithms

for

a

map-labeling

project.

Note

that

reusability

helps

to

lower

implementation

costs

in

the

long

run

and

to

achieve

correctness-for

the

simple

reason

that

more

users

mean

more

testing..

In

order

to

support

our

concept

with

experimental

data,

we

implemented

a

sweep-line

algorithm

for

the

rectangle-intersection

problem

in

C++

in

two

ways:

(a)

based

on

the

naive

initial

interface

of

our

tutorial

and

(b)

following

the

design

concepts

that

we

present

here.

We

compare

the

running

times

of

both

implementations,

as

well

as

the

size

of

their

source

code

and

executables.

The

data

we

used

for

the

runtime

comparison

stems

from

random

generators

as

well

as

from

real

world

instances.

The

source

code

of

our

implementations,

the

documentation

of

the

interfaces,

the

test

data

and

its

description

are

accessible

via

the

WWW

While

the

ingredients

of

our

concept

are

already

known,

to

our

knowledge

this

is

the

first

time

that

they

are

applied

so

rigorously

to

a

geometric

problem,

made

accessible

in

the

form

of

a

tutorial,

and

accompanied

by

a

thorough

experimental

analysis..

C++

libraries

that

offer

geometric

data

types

and

algorithms,

are

LEDA,

the

Library

of

Efficient

Data

Types

and

Algorithms

and

CGAL,

the

Computational

Geometry

Algorithms

Library

A

report

about

the

design

of

CGAL

includes

a

section

about

the

pros

and

cons

of

generic

versus

objectoriented

programming

[FGK

Other

than

the

STL,

LEDA

was

designed

having

mostly

ease-of-use

rather

than

genericity

in

mind.

The

resulting

short-comings

in

terms

of

interfacing

with

user-defined

data

structures

are

investigated

in

This

has

led

to

the

implementation

of

a

LEDA

extension

package

for

graph

iterators

Similar

to

the

LEDA

extension

package

the

Boost

Graph

Library,

previously

GGCL,

the

Generic

Graph

Components

Library

implements

a

graph

library

using

and

extending

STL-style

generic

programming

techniques.

The

authors

compare

the

runtime

of

some

graph

algorithms

implemented

in

LEDA

(without

the

extension

package)

and

GGCL

They

report

that

depth

and

breadth

first

search

as

well

as

Dijkstra's

shortest-path

algorithm

are

about

times

faster

in

GGCL

than

in

LEDA..

This

paper

is

structured

as

follows.

In

Section

we

describe

our

example

algorithm

for

the

rectangleintersection

problem.

In

Section

we

present

a

naive

interface

for

this

algorithm,

investigate

its

disadvantages

and

modify

it

step-by-step

to

a

generic

and

thus

flexible

interface.

Finally,

in

Section

we

compare

the

implementations

of

the

naive

and

the

most

flexible

interface

in

terms

of

runtime.

The

-axis

of

the

graphs

in

Appendices

B

and

C

gives

the

sample

size

as

in

Appendix

A.

On

the

-axis

the

graphs

in

Appendices

B

and

C

give

running

times

in

CPU

seconds

averaged

over

the

instances

per

sample

size.

The

vertical

bars

mark

the

minimum

and

maximum

running

time

on

these

instances.

As

stated

above

there

is

only

one

instance

per

sample

size

for

FencyRect.

The

average

running

times

of

the

naive

implementation

have

small

circular

markers

linked

by

thin

lines,

those

of

the

generic

implementation

have

square

markers

linked

by

bold

lines.

All

running

times

were

measured

on

an

PC

with

MB

RAM

under

the

operating

system.

We

used

the

compiler

with

optimizer

option

We

analyze

the

following

two

settings..

In

Appendix

B

Figures

to

show

the

running

times

of

both

the

naive

and

the

generic

implementation

for

the

interesting

special

case

that

the

user

is

merely

interested

in

the

number

of

intersections.

This

is

favorable

for

the

generic

implementation

since

its

user

is

not

forced

to

store

the

intersection

graph.

In

this

setting,

the

running

times

were

nearly

identical

for

two

compilers

(SUN

on

a

Sparc

and

mipsPRO

on

an

SGI

we

used

in

the

first

version

of

this

article

two

and

a

half

years

ago

The

picture

has

changed

with

the

progress

in

compiler

technology.

Now

the

naive

implementation

is

slower

by

a

factor

of

to

on

all

examples

of

maximum

size

(i.e.

or

rectangles).

Roughly

speaking,

the

denser

an

example

class

the

greater

the

gap

between

the

running

times

of

the

two

implementations..

In

Appendix

C,

Figures

to

show

the

running

times

for

the

case

that

all

intersections

are

stored

in

adjacency

lists

during

the

execution

of

the

two

programs.

While

the

gaps

are

smaller

than

in

the

corresponding

graphs

of

Appendix

B,

and

the

naive

implementation

is

even

slightly

faster

for

FencyRect

samples

with

up

to

rectangles,

the

general

picture

remains

the

same.

The

naive

implementation

is

slower

by

a

factor

of

to

on

all

examples

of

maximum

size.

In

our

previous

test

bed

the

generic

implementation

was

nearly

always

slower

in

this

setting-up

to

a

factor

of

In

Table

we

listed

the

sizes

of

executables

for

identical

test

programs

for

both

implementations

as

well

as

the

sizes

of

the

source

code

of

the

naive

and

the

generic

interface

including

their

implementation.

The

source

code

is

available

via

our

Web

page.

It

is

interesting

to

note

that

although

the

executable

of

a

simple

test

program

for

the

generic

version

of

the

interval

tree

is

larger

than

that

of

its

naive

counterpart

(when

using

no

optimizer),

it

is

opposite

for

the

corresponding

versions

of

the

rectangle-intersection

data

structure.

The

reason

for

this

seems

to

be

that

the

generic

implementation

does

not

need

to

convert

and

store

the

input

data

for

the

interval

tree

explicitly.

This

difference

in

the

sizes

of

the

executables

may

become

substantial

We

demonstrate

our

design

concepts

through

the

example

of

a

sweep-line

algorithm

for

detecting

intersections

among

axis-parallel

rectangles

in

the

plane

For

typical

instances,

see

Figures

to

Our

sweep

line

is

a

vertical

line

sweeping

the

plane

from

left

to

right.

As

usual,

the

sweep

line

is

supported

by

two

data

structures,

the

event-point

schedule

and

the

sweep-line

status..

Event

points

are

the¨-values

where

the

sweep

line

must

stop

because

either

its

status

changes

or

see

sections

have

to

be

reported.

In

our

case

all

event

points

are

known

before

the

sweep

begins:

they

are

the

-values

of

the

left

and

right

edges

of

the

rectangles.

Thus

a

sorted

list

suffices

to

implement

our

eventpoint

schedule.

An

event

point

must

be

stored

in

such

a

way

that

it

is

clear

whether

it

refers

to

the

left

or

to

the

right

edge

of

a

rectangle..

The

sweep-line

status

stores

intervals

corresponding

to

the

intersections

of

the

sweep

line

with

the

given

rectangles.

The

endpoints

of

the

intervals

are

the

-values

of

the

lower

and

upper

edges

of

the

input

rectangles.

Initially

the

sweep-line

status

is

empty.

When

a

left

edge

of

a

rectangle

is

encountered

during

the

sweep,

the

interval

corresponding

to

the

edge

is

inserted

into

the

sweep-line

status.

A

rectangle

is

reported

if

its

interval

is

currently

in

the

sweep-line

status

and

intersects

the

new

interval.

When

a

right

edge

of

a

rectangle

is

encountered,

the

corresponding

interval

is

deleted

from

the

sweep-line

status..

This

reduces

the

rectangle

intersection

problem

to

the

problem

of

maintaining

a

set

of

intervals

such

that

intervals

can

be

efficiently

inserted

and

deleted,

and

interval-intersection

queries

can

be

answered

quickly.

To

achieve

this,

we

implement

our

sweep-line

status

with

the

interval-tree

data

structure

We

have

implemented

a

semi-dynamic

version

that

must

be

initialized

with

the

endpoints

of

all

intervals

it

is

going

to

contain

during

the

sweep.

The

preprocessing,

namely

sorting

the

points

and

building

up

an

empty

balanced

tree,

takes

is

the

number

of

intervals

reported.

Since

every

interval

is

stored

only

once

in

the

interval

tree,

the

storage

consumption

is

linear.

We

compare

two

different

implementations

of

the

rectangle

intersection

problem

in

terms

of

running

time.

The

implementations

are

characterized

as

follows..

The

naive

approach

implements

the

interface

of

Section

It

requires

a

fixed

type

of

rectangle..

Similarly,

the

underlying

interval-tree

data

structures

requires

a

fixed

type

of

interval.

The

results

of

the

sweep

are

stored

in

a

graph

(of

fixed

type)

that

is

made

available

to

the

user

at

the

end

of

the

sweep..

The

generic

approach

implements

the

interface

of

Section

All

data

structures

are

implemented

according

to

the

concepts

suggested

in

this

paper..

The

main

difference

between

the

two

implementations

is

that

all

template

parameters

of

the

generic

interface

are

hard-coded

in

the

naive

interface

(except

for

coordinate

type

of

the

input

rectangles).

We

were

interested

in

comparing

the

cost

of

the

additional

indirection

that

our

generic

implementation

requires

versus

the

cost

of

copying

data

from

and

into

containers

of

fixed

type

as

required

by

the

naive

approach.

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


What does the amygdala contribute to social cognition? The amygdala has received intense recent attention from neuroscientists investigating its function at the molecular, cellular, systems, cognitive, and clinical level. It clearly contributes to processing emotionally and socially relevant information, yet a unifying description and computational account have been lacking. The difficulty of tying together the various studies stems in part from the sheer diversity of approaches and species studied, in part from the amygdala's inherent heterogeneity in terms of its component nuclei, and in part because different investigators have simply been interested in different topics. Yet, a synthesis now seems close at hand in combining new results from social neuroscience with data from neuroeconomics and reward learning. The amygdala processes a psychological stimulus dimension related to saliency or relevance; mechanisms have been identified to link it to processing unpredictability; and insights from reward learning have situated it within a network of structures that include the prefrontal cortex and the ventral striatum in processing the current value of stimuli. These aspects help to clarify the amygdala's contributions to recognizing emotion from faces, to social behavior toward conspecifics, and to reward learning and instrumental behavior. Work on the amygdala is fractured into several domains, and relating these in a consistent account of amygdala function is not straightforward. In terms of functional topics, one can identify three broad themes: social behavior, emotion, and reward learning. The classic studies by Kluver and Bucy (in the 1930s), and before them Brown and Schafer (in the 1880s), perhaps emphasized mostly the first, although they were also relevant for the second and third. The late 1990s and early 2000s saw an explosion of work on emotion, in particular in relation to the processing of facial expressions. And earlier work on issues related to reward learning has now led to a host of studies using single-unit electrophysiology in animals as well as fMRI in humans. Complementing the diversity of functional topics is a diversity of species in which the amygdala has been investigated. Until about 1994 this was almost exclusively research conducted in rodents, with a small number of laboratories tackling the challenge of work in monkeys. Although that work has con-tinued (and indeed is thriving), it has been to some extent overshadowed by a plethora of fMRI studies in humans, many investigating psychiatric illness.. At the outset it is important to keep in mind that the amygdala is a complex collection of 13 nuclei in primates 1 (indeed, there has been some controversy about the concept of "the amygdala" as a single entity 2 ) ( Fig. 1) . These are typically distinguished in studies in nonhuman animals, but rarely in humans because of the limited spatial resolution afforded by techniques commonly used, such as fMRI (see Box 1) . The amygdala is extensively connected with many other cortical and subcortical structures, and so accounts of its function will need to do justice to its location in this dense web of connections. Finally, it has become apparent that there are substantial individual differences in the amygdala (the extremes of which may contribute to many psychiatric illnesses), as well as substantial effects of context and stimulus history, all of which makes it essential to look at individual and trial-wise details which can get obscured in group-level effects and meta-analyses. Some disclaimers are in order to help circumscribe this review, because one could easily write a book on the amygdala (and several have been written 3, 4 ). First, the focus will be on social-emotional functions of the amygdala in primates with an emphasis on humans. Second, I will not review the amygdala's role in psychiatric illness here, although

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


Boundary properties of graphs for algorithmic graph problems The notion of a boundary graph property was recently introduced as a relaxation of that of a minimal property and was applied to several problems of both algorithmic and combinatorial nature. In the present paper, we first survey recent results related to this notion and then apply it to two algorithmic graph problems: Hamiltonian cycle and vertex k-colorability. In particular, we discover the first two boundary classes for the Hamiltonian cycle problem and prove that for any k > 3 there is a continuum of boundary classes for vertex k-colorability.

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


Cognitive visual tracking and camera control Cognitive visual tracking is the process of observing and understanding the behaviour of a moving person. This paper presents an efficient solution to extract, in real-time, high-level information from an observed scene, and generate the most appropriate commands for a set of pan-tilt-zoom (PTZ) cameras in a surveillance scenario. Such a high-level feedback control loop, which is the main novelty of our work, will serve to reduce uncertainties in the observed scene and to maximize the amount of information extracted from it. It is implemented with a distributed camera system using SQL tables as virtual communication channels, and Situation Graph Trees for knowledge representation, inference and high-level camera control. A set of experiments in a surveillance scenario show the effectiveness of our approach and its potential for real applications of cognitive vision. We are motivated by the desire to develop cognitive visual systems. In the context of surveillance, the theme of this paper, by cognitive we mean a system which can not only track targets, but identify them, and explain what is taking place, especially taking account of any possible causal relationships. This paper describes a system which supports work towards this goal. In a previous paper [1] we have considered the issues of low-level data acquisition processes, and how these processes communicate. In the current paper we are more concerned with augmenting this architecture with contextual information to enable top-down processing. In particular we aim not only to generate inference from low-level visual primitives, but to use this inference to influence decisions about active visual sensing in a dynamic environment.. A typical application of an intelligent surveillance system would be to keep track of all targets in a scene and acquire high-resolution images of their faces for identification. In [1] , in common with many other similar implementations, the system attempted to satisfy the first part of this goal using two simple, hard-coded rules: if a new target was observed by an overhead static camera, a PTZ device was immediately dispatched to acquire and track it autonomously at a pre-specified zoom level. However our objective in the current work is to couple high-level inference to sensing strategies. Prior domain knowledge is captured via fuzzy metric-temporal logic rules, and these are unified with instantaneous knowledge acquired to generate scene situation descriptions using the inference engine developed by [4] . We use this current state of the world, as determined by the inference, to help decide what the next sensing action should be, thereby completing a high-level sensing-perception-action control loop. Thus, in contrast to most previous work, we are concerned in this paper with using inference to generate effective camera actions and, by means of these, to influence future inference outcomes. This is a major contribution to the current state-of-the-art in active vision and intelligent surveillance. To present and demonstrate a limited but fully operational multi-camera system with high-level active sensing is also an important contribution of our work.. The paper is organized as follows: Section 2 presents relevant work in cognitive computer vision and camera control. System architecture and algorithms for low-level visual processing are introduced in Section 3. Section 4 illustrates the solutions implemented for on-line inference and high-level camera control, while Section 5 describes their application to specific scenarios of visual surveillance. Several experiments are presented in Section 6. Conclusion and future work are finally discussed in Section 7. We have described a system architecture which facilitates linking of highlevel inference to sensing actions. We have demonstrated this in some simple scenarios, but there remains much to do. Notably, we have yet to take proper advantage of the fuzzy capabilities of the reasoning system. To do so would require that we map probabilities (such as those returned by the visual tracking algorithm) to fuzzy degrees of belief. A weakness of the current inference mechanism is that it proceeds in a depth-first fashion via thresholds set on the fuzzy degrees of belief. An alternative which would have significant benefits would be breadth-first to enable selection between multiple competing hypotheses. In this instance we could then consider actions designed deliberately to reduce uncertainty.. In parallel with our work on situational rule-based camera control, we have also been exploring the use of information theoretic means to achieve emergent cooperative behaviour from a set of cameras, via choosing actions to minimise uncertainty about the scene [18] . We are currently interesting in applying this approach to maximise information about the current belief at the conceptual level by choosing the right camera settings. This would require the extension to breadth-first search mentioned before.. Furthermore, we would like to explore the possibility of this form of camera control as an intermediate layer between the low-level "reactive" processes, such as closed-loop tracking, and the high-level commands. In this way, the inference process could emit actions at a more abstract level (e.g. "monitor scene" or "track" without reference to a specific camera), allowing the intermediate layer to make appropriate choices for satisfying abstract goals. In view of the different nature of knowledge, a modular scheme to describe behaviour understanding framework was proposed by Kanade in [5] . Our own interpretation of this is an architecture to perform human behaviour interpretation, drawing inspiration heavily from Kanade and Nagel [6] (see Fig. 1 ). At the bottom is the Sensor Actuator Level (SAL), which provides [6] .. image data and information about camera parameters. The above Image Signal Level (ISL) is where low-level image measurements are processed in order to extract features in each image. The following layer Picture Domain Level (PDL) is responsible for locating the moving blobs in 2-D representations. At the Scene Domain Level (SDL), models and algorithms are based on 3-D configurations of objects in the scene. The information obtained from the lower-levels is forwarded to the Conceptual Primitives Level (CPL) in order to determine tentative descriptions at each time step. At the Behavioural Representation Level (BRL), the object behaviour is modelled based on the tentative descriptions derived from CPL. Annotation of the behaviour in natural language is accomplished in the Natural Language Level (NLL).. Here we consider previous work on human activity analysis and behaviour understanding which fall within the top modules (conceptual and behavioural levels) of this architecture. We also review some of the previous camera control strategies.

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


Portable, Flexible, and Scalable Soft Vector Processors Abstract-Field-programmable gate arrays (FPGAs) are increasingly used to implement embedded digital systems, however, the hardware design necessary to do so is time-consuming and tedious. The amount of hardware design can be reduced by employing a microprocessor for less-critical computation in the system. Often this microprocessor is implemented using the FPGA reprogrammable fabric as a soft processor which presently have simple architectures and moderate performance. Our goal is to scale the performance of existing soft processors hence expanding their suitability to more critical computation. To this end we propose extending soft processors with vector extensions to exploit the abundant data parallelism found in many embedded kernels. Such a soft vector processor can execute these kernels much faster than a single-core hence reducing the need for hardware implementations. We observe this improved execution speed through experimentation with vector extended soft processor architecture (VESPA) which is designed, implemented, and evaluated on real FPGA hardware. VESPA is shown to effectively scale performance up to 32 lanes, while providing substantial architectural flexibility to create a fine-grained design space. With these characteristics, and portability across FPGA devices, soft vector processors can provide exact-fit architectures which can efficiently and more easily implement data parallel workloads over custom FPGA hardware design.Index Terms-Customization, design space exploration, field-programmable gate array (FPGA)-based soft-core processors, processor generator. The laborious hardware design required for efficient FPGA implementation can be mitigated by shifting some computation into a microprocessor which uses high-level programming abstractions. A soft processor is a compelling candidate for doing this, allowing designers to customize its architecture to compete with a custom hardware implementation. In this work, we improve soft processors by allowing their architecture to respond to characteristics in the application. Specifically, we focus on the data level parallelism found in many embedded and multimedia applications. We show that soft vector processors are indeed scalable and can be used to efficiently scale performance for such applications, hence more likely justifying implementation of a computation in a soft vector processor rather than using manual hardware design. The inherent flexibility in soft processors was leveraged in two ways: 1) VESPA allows designers to precisely match their area/performance needs through its several architectural parameters which together were shown to finely span a broad 28 range in area and 18 in wall clock; and 2) VESPA was customized to reduce general purpose overheads by matching the precision and instruction support required by the application. With these characteristics and built-in portability across FPGA devices, a portable, flexible, and scalable soft vector processor can be used to implement computations on an FPGA with relative ease thereby simplifying FPGA design while still achieving high performance realizations.

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