Graph-Based Analysis of Human Transfer Learning Using a Game Testbed Abstract-The ability to transfer knowledge learned in one environment in order to improve performance in a different environment is one of the hallmarks of human intelligence. Insights into human transfer learning help us to design computer-based agents that can better adapt to new environments without the need for substantial reprogramming. In this paper, we study the transfer of knowledge by humans playing various scenarios in a graphically realistic urban setting that are specifically designed to test various levels of transfer. We determine the amount and type of transfer that is being performed based on the performance of trained and untrained human players. In addition, we use a graph-based relational learning algorithm to extract patterns from player graphs. These analyses reveal that indeed humans are transferring knowledge from one set of games to another and the amount and type of transfer varies according to player experience and scenario complexity. The results of this analysis help us understand the nature of human transfer in such environments and shed light on how we might endow computer-based agents with similar capabilities. The game simulator and human data collection also represent a significant testbed in which other AI capabilities can be tested and compared to human performance. L EARNING capabilities in biological systems still greatly exceed the capabilities of machine learning algorithms. This is partly due to their ability to transfer knowledge acquired over the course of their lives. Simon [28] defined learning as the ability to leverage experience in previous tasks into improved performance on new tasks from the same population. This represents a very basic type of learning. What sets humans apart is the ability to leverage experience in previous tasks into improved performance on tasks from different populations: tasks that superficially have little or nothing in common with the previous ones but share some deep structure or subtasks that make it possible to apply previously acquired knowledge and skills.. The ability to identify these deeper, subtler connections, what we term transfer learning, is the hallmark of human intelligence. Byrnes [6] defines transfer learning as the ability to extend what has been learned in one context to new contexts. Thorndike and Woodworth [34] first coined this term as they explored how individuals transfer learning in one context to another context that shared common features. The importance of transfer learning for educational methods has been studied extensively [9] , and evidence of transfer learning for tasks such as learning how to use text editors is provided in the literature [5] . Barnett and Ceci provide a taxonomy of features that influence transfer learning in humans [2] .. Inspired by biological transfer learning, machine learning researchers have studied methods for implementing transfer learning in computational settings, including reinforcement learning [1] , [30] , [32] , cognitive architectures [13] , Bayesian networks [22] , genetic algorithms [31] , neural networks [35] , inductive logic programming [36] , and logistic regression [21] . Achieving transfer learning on a variety of tasks remains an elusive goal for these researchers. Others have demonstrated the use of transfer learning in humans for cognitive rehabilitation [10] and to improve the health of businesses [17] .. In this paper, we analyze the ability of humans to perform transfer learning. In particular, we hypothesize that humans are able to perform transfer learning at several levels of complexity. We analyze this ability using graphbased relational learning (GBRL) applied to data collected from humans playing a military-realistic game. We first observe the amount of transfer that occurs by comparing learning curves between trained and untrained human players. Next, we take a closer look at the knowledge itself that is transferred from source to target scenarios. Employing unsupervised discovery and supervised learning techniques, we identify patterns in logged games that indicate the amount and nature of the knowledge that is transferred in a variety of game transfer scenarios. The results of this analysis help us understand the nature of human transfer and shed light on how we might endow computer-based agents with similar capabilities.. Operations in Urban Terrain (MOUT) simulation built on top of the commercial open source Quake 3 Arena [26] firstperson shooter (FPS) game engine. UCT provides a highbandwidth interface for computer-based agents to perceive the environment and execute actions in real time. UCT also provides a standard FPS graphics interface for human agents to play the various scenarios defined for UCT. In either case, the perceptual and command execution information is logged in enough detail to replay the game. This logged information provides valuable data for performing behavioral analysis of human and, ultimately, computer players.. We perform a series of experiments to determine what types of knowledge humans transfer in these game scenarios, which types of players transfer more or less information, and how performance is affected by the transfer of learned knowledge. Each of the experiments is conducted in the context of UCT. Researchers argue that transfer of learning occurs primarily when previous knowledge is applied to solving a problem in a new situation [24] . This makes a gaming environment particularly appealing for analyzing human transfer learning.. The player's goal in a UCT scenario is to move through the environment, moving past barriers when possible, in order to find and diffuse an Improvised Explosive Device (IED). We divide the environment into a set of polyhedrons. Fig. 9 shows the regions for the environment depicted in Fig. 2 . These regions may contain a variety of other elements such as buildings, vegetation, electrical hazards, and barriers, some of which can be overcome (see Fig. 1 ).. For our data collection, we asked volunteers to play a set of UCT scenarios. The volunteers represented a wide range of previous gaming experience and job backgrounds. The scenarios are grouped into eight levels, designed to demonstrate different amounts and types of knowledge transfer. Each of the eight levels contains five source scenarios (with the exception of Level 6, which has 10 source scenarios) and five target scenarios. The general methodology is to compare the performance of two players on the target scenarios, one player having been trained by first playing the source scenarios, and one player having no training. The difference between source and target scenarios depends on the particular transfer learning level. Thorndike [33] hypothesized that the degree of transfer in humans depends upon the match between elements across the two contexts. Although some effort has been spent on formalizing the notion of relatedness between contexts or tasks [3] , characterizing the amount of similarity and predicting the Fig. 1 . UCT includes scenario elements such as (a) IEDs, (b) jumpable barriers, and (c) climbable barriers. Fig. 2 . In these level-1 scenarios, the player starts in region 29 (marked by a white oval). The goal of the (a) source and (b) target games is to find the IED in region 42 (marked by a white diamond). The scenario components are the same except that the jumpable barrier surrounding the goal location in the target scenario is longer than in the source scenario.. expected transfer largely remains an open question. These levels were painstakingly defined by the DARPA Transfer Learning program to include a spectrum of near and far transfer elements [8] . Alternative approaches to characterizing levels of transfer have also been considered [20] . In this study, we analyze the amount of learned information that is transferred to new gaming scenarios by human players. To more closely analyze the type of knowledge that is transferred, we use GBRL to identify patterns of transfer learning in humans. Using the data collected from logged Urban Combat games, we recognized common movement strategies. We also identified patterns that distinguished players who were trained on similar games to those who were playing target games with no prior training. From the evidence that was produced by the graph-based relational learner, we conclude that humans are able to perform transfer of learned knowledge at multiple levels of complexity. We observe that beginners benefit the most from training in the game scenarios and, as a result, transfer the greatest amount of learned knowledge to new situations.. There are several influential factors in our analysis that warrant greater attention in future experiments. Due to the small sample size that was available for each of the many scenarios, we randomly paired human players. Future experiments could control for differences in prior experience by pairing players with similar gaming expertise to provide a clearer assessment of performance that is due to transfer. Future work is also needed to more precisely quantify the similarity between source and target scenarios and to use this as a basis for determining the expected amount of transfer between scenarios. Barnett and Ceci's taxonomy of far transfer [2] includes a temporal context dimension, and they argue that depending on the task, the ability to transfer learned knowledge may peak immediately after training or may peak much later. This is an aspect that would be interesting to analyze as part of our future work.. Results from this study indicate that data mining algorithms such as the Subdue GBRL system can be used to effectively analyze human behavior and capabilities. We would like to extend this analysis to human transfer learning on a greater range of tasks. We anticipate that this analysis will also form the basis for analyzing the ability of artificial agents to perform transfer learning and to compare strategies for task completion, as well as transfer of learned task strategies between artificial agents and biological agents.. The patterns we find in human trials can be used to instill similar patterns in artificial agents to improve their human consistency. This provides both challenging opponents in games and a basis for realistic simulation. For example, if we want to simulate an artificial agent finding IEDs, we will want the agent and the simulation to be consistent with how we observe humans performing such a task in the real world. This is an important direction for continued research.

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


Group Announcement Logic Two currently active strands of research on logics for multi-agent systems are dynamic epistemic logic, focusing on the epistemic consequences of actions, and logics of coalitional ability, focusing on what coalitions of agents can achieve by cooperating strategically. In this paper we bridge these topics by considering the question: "what can a coalition achieve by making public announcements?". We propose an extension of public announcement logic with constructs of the form G ϕ, where G is a group of agents, with the intuitive meaning that G can jointly execute a publicly observable action such that ϕ will be true afterwards. Actions here are taken to be truthful public announcements, but turn out also to include sequences of such joint actions as well as protocols with alternating actions by different agents, in response to the actions of others. We also study in detail the difference between 'knowing how' (knowing de re) and 'knowing that' (knowing de dicto) in our framework: both can elegantly be expressed in the single-agent case. We present several meta-logical properties of this Group Announcement Logic, including a sound and complete axiomatisation, expressivity and the complexity of model checking. Analysis of the dynamics of knowledge has received some attention recently, see [20] for an overview. Van Benthem [18] and Balbiani et al. [4] suggested an interpretation of the standard modal diamond where ♦ϕ means "there is an announcement after which ϕ." This was in a setting going back to the Fitch-paradox [8] . The new interpretation of the diamond ♦ in the Fitch setting firstly interprets ♦ϕ as 'sometime later, ϕ', and secondly specifies this temporal specification as what may result of a specific event, namely a public announcement: 'after some announcement, ϕ'. In other words, the semantics is: ♦ϕ is true if and only if ψ ϕ is true for some ψ; the expression ψ ϕ stands for 'ψ is true and after ψ is announced, ϕ is true.' There are some restrictions on ψ. The resulting arbitrary announcement logic is axiomatisable and has various pleasing properties (again, see [4] , and for more detail the extended journal version [5] ).. Arbitrary announcement logic makes no assumption in the interpretation of ♦ϕ about who makes the annoncement, or indeed whether or not the announcement can be truthfully made by anyone. In the current contribution we investigate a variant of arbitrary announcement logic. Instead of ♦ϕ we use a more specific operator, namely G ϕ. Here G is a subgroup of all agents that simultaneously make truthful public announcements, i.e., announcements of formulae they know. In other words, let G = {1, . . . , k }, then: G ϕ is true if and only if there exist formulae ψ 1 , . . . , ψ k such that K 1 ψ 1 ∧ . . . K k ψ k ϕ is true; now, the expression K 1 ψ 1 ∧. . . K k ψ k ϕ stands for K 1 ψ 1 ∧. . . K k ψ k is true and after agents 1, . . . , k , simultaneously announce ψ 1 , . . . , ψ k , then ϕ is true'. Note that the remaining agents, not included in the set G of k agents, are not involved in making the announcement, although they are aware of that action happening. The resulting logic is called Group Announcement Logic (GAL).. Informally speaking, G ϕ expresses the fact that coalition G has the ability to make ϕ come about. Logics modelling the coalitional abilities of agents have been an active area of research in multi-agent systems in recent years, the most prominent frameworks being Pauly's Coalition Logic [16] and Alur, Henzinger and Kupferman's Alternating-time Temporal Logic [3] . The main constructs of these logics are indeed of the form G ϕ with the intuitive meaning that coalition G can achieve ϕ. In this paper we investigate these notions when the actions that can be performed are truthful public announcements. Section 2 contains an introduction into public announcement logic, and arbitrary public announcement logic. Section 3 defines group announcement logic, presents various interaction axioms between the different modalities that express intuitive properties of such joint announcements, and the axiomatization. Section 4 is entirely devoted to expressivity matters, and Section 5 to model checking. The relation between group announcement logic and various notions of group ability, including knowledge 'de re' and knowledge 'de dicto', is discussed in detail in Section 6, which is followed by a more applied Section 7 that embeds these observations into security protocols for two agents (sender and receiver) in the presence of a finite number of eavesdroppers intercepting all communications between them. The paper is based on but greatly extend a part of [2] . We proposed an extension of public announcement logic with constructs G ϕ, where G is a group of agents, with the intuitive meaning that G can jointly execute a publicly observable action such that ϕ will be true afterwards. This included sequences of such joint actions and also protocols with alternating actions by different agents, in response to the actions of others. The logic is completely axiomatizable, using the same method as for arbitrary announcement logic. The model checking problem for public announcement logic is PSPACE -complete. Both 'knowing how' (knowing de re) and 'knowing that' (knowing de dicto) can be expressed in our framework. Requirements for finite-length protocols can also be investigated in group announcement logic. We anticipate some further research. A simple extension to the language would also allowing factual change, apart from informational change. This would make the correspondence with multi-player games even more direct. A different, and further, generalization would be with non-public actions, such as private messages involving subgroups, card showing actions, etc. This is also technically conceivable, but slightly further down the road, we think.

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 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 O O O O O O O O O O O O O O O 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 simple calculus for proteins and cells The use of process calculi to represent biological systems has led to the design of different formalisms such as brane calculi and κ-calculus. Both have proved to be useful to model different types of biological systems. As an attempt to unify the formalisms, we introduce the bioκ-calculus , a simple calculus for describing proteins and cells, in which bonds are represented by means of shared names and interactions are modelled at the domain level. In bioκ-calculus, protein-protein interactions have to be at most binary and cell interactions have to fit with sort constraints.In this contribution we define the semantics of bioκ-calculus, analyse its properties, discuss the expressivity of the calculus by modelling two significant examples -a signalling pathway and a virus infection -, and study an implementation in Milner's π-calculus. One problem when dealing with molecular biology is to extract a functional meaning out of the mass of current knowledge. This problem has pleaded for the development of specific tools that describe biology in a faithful way. Among these tools, process calculi have been proved powerful enough to formalise some of crucial activities of biological systems, to render in a natural way the massive parallelism and concurrency of interactions, and to analyse the overall behaviour.. There are two features of process calculi that are particularly relevant to biological systems. The first one is about the syntax. In process calculi, the syntax of the terms determines their capacity to interact with the environment. This is in strong analogy with molecular biology, where the structure of an object affects its activities. For instance, the three-dimensional structure of a protein, as well as the fact that it is part of an amino-acid sequence, may enable some reactions and disable other ones. The second feature is about the semantics. Process calculi have models that have been thoroughly studied and that support automatic verification tools. These models may turn out essential in order to formalise the behaviour of biological systems (with qualitative measures, such as rate of reactions) and the reachability of problematics molecular configurations.. Two different process calculi families have brought some interest and various results. A first family is based on Milner's π-calculus [1] , following principles proposed in [2] . According to these principles, bonds between proteins are represented in π-calculus by shared channel names and protein interactions are modelled by process communications. The κ-calculus [3] belongs to this family and it has been showed convenient for representing mechanisms such as signalling pathways or regulatory networks. The second family of calculi relies on Mobile Ambient [4] , following ideas proposed by Paun [5] . These calculi use actions and co-actions capabilities located on the surface of cell membranes for representing molecular transports and virus infections. The brane calculi [6] and bio-ambients [7] belong to this family. As these two families turn out to commit to different paradigms, it is compelling to develop a unique formalism able to handle the two types of systems. The challenge is to enucleate few basic realistic primitives that are expressive enough to cover mechanisms of κ-calculus and brane calculi. Such a formalism is the aim of this contribution.. The calculus presented in this contribution -the bioκ-calculus -retains denotations for proteins, cells, and solutions. Protein reactions are complexations and decomplexations of two proteins. These reactions follow the same pattern of those of κ-calculus. Actually, they are similar, but even simpler, to those of mκ-calculus [3] , an intermediate formalism introduced to ease the translation of κ-calculus in π-calculus. Cells are compartments consisting of a membrane and a cytoplasm -a solution contained into the membrane. Cellular reactions permit to fuse two cells. Fusions open the cell to other cells. In particular, the cytoplasms, whose interactions with the external solution are mediated by the membrane, may directly interact with another solution -the cytoplasm of the fusing cell -after the fusion. Complexations and decomplexations of a reactant that belongs to a cell membrane may change the capability of the membrane, thus preparing the cell to future fusions, endo-or exocytosis. The formal rendering of these phenomena is done in bioκ-calculus by admitting protein reactions with side-effects on membrane types. Other relevant cellular reactions are considered in bioκ-calculus, such as translocations, which transport proteic material inside the cells, and phagocytosis, which allows a cell, such as a virus, to enter other cells. Phagocytosis is particularly difficult to model because the entering cell is enclosed into a membrane that is pull out the host cell membrane. This means that the membrane of the host cell must have enough material for the new one. This mechanism is modelled by admitting matches of patterns of proteins.. The formal models of bioκ-calculus are labelled transition systems where labels carry information about the reactants and the biological rule that is being used. It is folklore in process calculi that such systems are too descriptive (too intentional objects) because they separate solutions that no experiment may distinguish. A number of equivalences over transition systems have been proposed in the literature. In this paper we consider weak bisimulation [8] that equates two systems if they simulate each other. We demonstrate that weak bisimulation is a congruence in bioκ-calculus: two weakly bisimilar biological systems behave in the same way when put in every solution.. The bioκ-calculus is simple. It has atomic elements -the proteins -and two syntactic constructors -grouping of solutions and cells. Reactions are interactions between two proteins or between two membranes. Notwithstanding this simplicity, the calculus is expressive enough. It is possible to describe significant biological examples: the RTK-MAPK pathway and a virus infection. This simplicity is also crucial for providing a faithful implementation of core bioκ-calculus into π-calculus. The compilation proposed in this paper encodes complexations and decomplexations into exactly one π-calculus interaction; conversely, every interaction corresponds exactly to one reaction.. The contribution is structured as follows. In the next section we define a core version of bioκ-calculus where reactions are restricted to be between two proteins. We study the semantics of core bioκ-calculus and analyse a signal transduction mechanism. In Section 3 we define an extensional semantics for bioκ-calculus and study its properties. In Section 4 we extend the basic interaction mechanisms with fusions that make structural modifications in the hierarchical organisation of a system. In Section 5 we discuss other extensions of the calculus for modelling translocations and phagocytosis. In Section 6 we study an implementation of core bioκ-calculus in π-calculus. Section 7 draws few concluding remarks and hints at possible future works.

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


Interactive modelling for natural resource management We present a modelling approach to rapidly assess the effect of management decisions on ecological problems and demonstrate its use in fishery management. Each stage of the approach is controlled by a graphical user interface which allows a team of non-expert modellers to compare the outcomes of multiple model simulations and to decide what further simulation is needed.A distinguishing feature of the method is that it allows the goal of the management strategies to arise as a result of the interaction between the user and the model, rather than being defined a priori, as well as to change during the process in response to the information and the insight such modelling may provide. We envisage that a management team, rather than a single user, may also employ the method as an avenue for communication, in order to discuss the potentially conflicting aspects of different model outcomes along the path to finding workable compromises. We discuss an application of the approach to the sustainable management of a recreational fishery in a marine park in Western Australia. The multiple use management of a natural resource involves finding a compromise between different types of natural resource use including extractive and nonextractive, and between the short and longer-term sustainable exploitation. Effective management of a natural resource involves planning and setting goals and objectives, designing strategies with which to achieve them, implementing the management strategies, and evaluating them to determine if they achieve the objective for which they were designed (Sainsbury et al. 2000) .. Conceptually, we can envisage an abstract space, in which all possible available strategies (that is possible management interventions) exist; in principle, resource managers could then search this space in order to find a desired compromise. When simulation is used as a resource management tool, this abstract space becomes somehow less 'abstract', since its (albeit simplified) representation coincides with the set of model input parameters. The simulation model then represents a mapping of points in input parameter space to an output data-space where projected outcomes of management decisions can be viewed and analysed. Seen from this perspective, a resource management problem appears similar to many engineering or applied mathematical problems, in which a numerical optimisation tool can be used to map a desired policy outcome (from the outcome space) back into the strategy space, thereby easily deducing a set of reasonable, if not optimal, strategies (Sainsbury et al., 2000; Doyen and Béné, 2003; Doyen et al., 2007; Martinet et al., 2007) .. Researchers and practitioners experienced with resource management problems are well aware that this approach would be unlikely to work in practise, for several reasons: 1. optimisation routines need to convert the judgement of the suitability of a strategy outcome into a numeric value, which is then minimised or maximised. A meaningful numerical expression is very difficult to implement since most often a) different objectives are sought to be reached at the same time, b) the relative importance of these different objectives need to be weighted subjectively and c) these objectives may represent contradictory requirements. 2. Management objectives need to be stated clearly a priori. However, defining objectives is often the result of negotiations and forms part of the purpose and outcome of the modelling exercise itself. 3. As information becomes available to stakeholders through the modelling process management objectives may change, as stakeholders may realise they are unrealistic or incompatible with other objectives.. In this paper we describe an approach which attempts to overcome the limitations described above by coupling a computer simulation modelling tool with input derived from expert users and by allowing the human supervision to become an integral part of the modelling process. The purpose is to enable a manager or a management team to use a numerical optimisation routine as an optional addition to the more traditional running of a simulation model as a tool in resource management. Furthermore, at each stage of the approach, the user is in full control of the modelling process and able to interact with it at different levels. This interaction results in a) a very flexible way to define the suitability of a strategy outcome, b) no need to define the goals of a resource management a-priori and c) the possibility of changing goals at any stage of the process as a result of the information accumulated so far. In this manner, we aim to see the goals of the resource management emerge as a result of the interaction between the modelling exercise and the manager(s). The framework makes explicit the role of the simulation model in providing understanding of a system rather than simply predicting a possible outcome. Two principles are at the basis of ScenarioLab. First, the evaluation of a modelling outcome is subjective and contextual: different users may judge an outcome differently depending on their expectations, needs, assumptions and expertise. Since assumptions, like expectations and expertise, may change as a result of the modelling results, the evaluation of a modelling outcome may change during a ScenarioLab session. Second, humans find it easier to express relative judgments ("model outcome 3 is worse than model outcome 7 but better than model outcome 2") than absolute ones ("model outcome 3 is the fourth best among all runs"). These two principles have been the main driver for the development of ScenarioLab's graphical user interfaces (GUI) which allows users to control and evaluate different model runs in parallel and to direct future modelling iterations.. For this to be possible the tool needs to a) be intuitive enough to be comfortably controlled by non-expert modellers, b) run reasonably fast so that the results can be computed in near real-time, c) provide a flexible way to define the suitability of a strategy outcome and d) allow modification of goals at any stage of the process, as a result of the information provided and the discussion it generated. We have described a number of implementation features and software tools which accommodate for such needs.

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


Automating database schema evolution in information system upgrades The complexity, cost, and down-time currently created by the database schema evolution process is the source of incessant problems in the life of information systems and a major stumbling block that prevent graceful upgrades. Furthermore, our studies shows that the serious problems encountered by traditional information systems are now further exacerbated in web information systems and cooperative scientific databases where the frequency of schema changes has increased while tolerance for downtimes has nearly disappeared. The PRISM project seeks to develop the methods and tools that turn this error-prone and time-consuming process into one that is controllable, predictable and avoids down-time. Toward this goal, we have assembled a large testbed of schema evolution histories, and developed a language of Schema Modification Operators (SMO) to express concisely these histories. Using this language, the database administrator can specify new schema changes, and then rely on PRISM to (i) predict the effect of these changes on current applications, (ii) translate old queries and updates to work on the new schema version, (iii) perform data migration, and (iv) generate full documentation of intervened changes. Furthermore, PRISM achieves good usability and scalability by incorporating recent advances on mapping composition and invertibility in the implementation of (ii). The progress in automating schema evolution so achieved provides the enabling technology for other advances, such as light-weight database design methodologies that embrace changes as the regular state of software. While these topics remain largely unexplored, and thus provide rich opportunities for future research, an important area which we have been investigated is that of archival information systems, where PRISM query mapping techniques were used to support flashback and historical queries for database archives under schema evolution. The difficulty of supporting schema evolution has long been recognized as one the major obstacles hampering software upgrades in information systems [22, 32, 33] . Indeed, there has been no † Current address: MIT CSAIL, curino@mit.edu ‡ Current address: NEC Lab America, hjmoon@sv.nec-labs.com. 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. significant progress on this problem since the introduction of relational databases which shield information system applications from changes in the underlying organization of stored data far better than previous database systems such as Codasyl and IMS. After the great progress in physical data independence achieved by the relational model forty years ago, little or no progress has been made toward enabling information system applications to cope with the evolution of the logical structure of the underlying database schema. Indeed, as of today, schema evolution remains an errorprone and time-consuming undertaking, because the DB Administrator (DBA) lacks the methods and automatic tools needed to manage and automate this endeavor by (i) predicting and evaluating the effects of the proposed schema changes, (ii) rewriting queries and applications to operate on the new schema, and (iii) migrating the database. Furthermore, the problem is becoming more serious with the burgeoning spread of web information systems and the databases of large cooperative 'big science' projects, where fastadvancing domain knowledge and active participation by many stakeholders have accelerated the pace of schema evolution. For instance, the MediaWiki software supporting Wikipedia has seen, during its first 4.5 years of development and maintenance, 171 different DB schema versions [8] , and the Ensembl Genetic DB over 400 schema versions in nine years of life [7] . Furthermore, similar evolution statistics hold for most of the many information systems we have examined in our Schema Evolution Benchmark (SEB) 1 . Using the rich set of examples provided by the SEB [7] , we have have extracted a collection of Schema Modification Operators (SMOs) that can express all (or nearly all) the transformations experienced by the information systems in the benchmark. While the practical effectiveness of the SMOs is supported by the SEB benchmark, their theoretical soundness follows from recent results on database mappings [16] , which have produced concepts such as pseudo-inverse mappings [17] and query chase and backchase [14] , that proved invaluable in transforming the queries and updates on a schema into equivalent ones [9, 11] on the transformed schema.. The technical advances just outlined are integrated in the design and implementation of PRISM which through a schema transformation language based on these SMOs and a user-friendly interface enables the DBA to:. (i) predict and evaluate the effects of schema changes upon current applications, and (ii) once the DBA decides to move forward with these changes, PRISM performs all the required transformations upon data, queries and updates, and then (iii) records and documents all these changes on behalf of the DBA. The improvements delivered by PRISM include significant savings in labor and system downtime, and several other benefits discussed next. A first advantage is that the database schema history is automatically preserved by PRISM in a standard digital form, which provides the basis for a variety of documentation and automation tools. For instance, the History Metadata Manager (HMM) uses PRISM's output to represent the history of the database information schema in XML, whereby queries such as "How many schema changes occurred in the last six months, and what were the tables affected?" can be answered via simple XQuery statements [10] . Facilities such as this are critical for accountability, data provenance, documentation and training; they also bring a major improvement over the ad-hoc approaches currently used in implementing schema changes-a startling inconsistency with respect to the great efforts, formal methods, and tools used in designing an initial schema that, at the high rates of change we observed, soon becomes obsolete, departing from the original well documented, and well engineered version.. PRISM has paved the way to other technical advances, including transaction-time databases, and many others. A transactiontime database is simply an append-only history of the database content, kept by archiving and time-stamping subsequent version of records upon creation, modification, and deletion. Alternative database structures and query language extensions were proposed as sophisticated techniques for storing timestamped data, and supporting flash-back and advanced historical queries [34] . However, past approaches did not deal effectively with the ramifications of schema evolution, and in particular with the problem that, in order to achieve archival quality, database information must be maintained according to the schema version under which it was originally created. This "original-schema" storing policy, while achieving perfect quality, generates a serious usability problem, since it requires the formulation queries on a history that is often spread over hundreds of schema versions. To address this problem, we developed the PRIMA system that uses the information stored by PRISM and similar query rewriting technology to allow querying of the current schema version, whereby the queries are automatically adapted to match every involved historical schema version [25, 26] . For each query Q, PRIMA performs the following operations: (i) determines the applicable schemas according to the temporal conditions in Q, (ii) translates Q into a set of equivalent queries against each applicable schema version, and (iii) combines these queries into an optimized execution plan, that is then executed to produce results conforming to the current schema. The techniques used to to turn this design into an efficient and scalable system are discussed in [25, 26] .. Many other promising applications of PRISM remain largely unexplored. A quite natural one is in support of novel agile methodologies for database design and refactoring, inspired to the cor- Table 1 .. responding software engineering literature [2, 23] . PRISM allows in fact to improve and extend the database design by retaining both its behavioral and its information semantics. By starting with a minimalists design and iterating through the steps of (i) refactoring without adding functionality and (ii) adding or revising the functionality of the information system, this Agile Data Method has shown the potential of safely fixing legacy databases, and support evolutionary development. Clearly a system such as PRISM represents the sinequanon for turning database refactoring into a practical low-cost methodology.. A final prospective application of PRISM is in on-line upgrades of information systems, which seek to support the database schema evolution without down time. In this paper, we summarized a large research effort aiming at supporting graceful evolution of databases. The products of this effort are a set of tools and methods that effectively reduce the cost evolving the schema of a database. This allows us to consider new lightweight methodologies for database design, that would elegantly fit in the panorama of agile software development methodologies. Furthermore the machinery we designed and developed largely automates the data migration and query adaptation problems, which have been generally been considered one of the main problems in software upgrades. Future directions for this research will focus on effects of schema evolution on data provenance, design of agile methodologies for DB design, and schema evolution workflows. Among the many approaches and techniques that are relevant for the general problem of schema evolution we have the impactminimizing methodology of [29] , the unified approach to application and database evolution of [20] , the application-code generation of [6] and the framework for metadata model management of [24] and the further contributions available in [3, 4, 30, 35, 37] . While these and other interesting attempts provide solid theoretical foundations and interesting methodological approaches, the lack of operational tools for graceful schema evolution observed by Roddick in [32] remains largely unsolved twelve years later. PRISM represents, at the best of our knowledge, the most advanced attempt in this direction available to date.. The big players in the world of commercial DBMSs have been mainly focusing on reducing the downtime when the schema is updated [28] and on assistive design tools [12] , but lack the automatic query rewriting features provided in PRISM.. Further related works include the results on mapping information preservation by Barbosa et al. [1] , the ontology-based reposi-tory of [5] , the schema versioning approaches of [21] . XML schema evolution has been addressed in [27] by means of a guideline-driven approach. Object-oriented schema evolution has been investigated in [18] . In the context of data warehouse X-TIME represent an interesting step toward schema versioning by means of the notion of augmenting schema [19, 31] . PRISM differs form all the above both in terms of goals and techniques.

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


Algebraic Methods for Computing Smallest Enclosing and Circumscribing Cylinders of Simplices We provide an algebraic framework to compute smallest enclosing and smallest circumscribing cylinders of simplices in Euclidean space E n . Explicitly, the computation of a smallest enclosing cylinder in E 3 is reduced to the computation of a smallest circumscribing cylinder. We improve existing polynomial formulations to compute the locally extreme circumscribing cylinders in E 3 and exhibit subclasses of simplices where the algebraic degrees can be further reduced. Moreover, we generalize these efficient formulations to the n-dimensional case and provide bounds on the number of local extrema. Using elementary invariant theory, we prove structural results on the direction vectors of any locally extreme circumscribing cylinder for regular simplices. Radii (of various types) belong to the most important functionals of polytopes and general convex bodies in Euclidean space E n [3, 16, 18] , and they are related to applications in computer vision, robotics, computational biology, functional analysis, and statistics (see [17] ). Following the notation in [3] , the outer jradius R j (C) of a convex body C ⊂ E n is the radius of the smallest enclosing j -dimensional sphere in an optimal orthogonal projection of C onto a j -dimensional linear subspace. Studying these radii, mainly for regular simplices and regular polytopes, is a classical topic of convex geometry (see [2, 4, 12, 16] ).. From the computational point of view, most of the existing algorithms for computing these radii focus on approximation [6, 19] . A major reason is that exact computations lead to algebraic problems of high degree, even for computing, say, the outer (n−1)-radius in E n (already if n = 3). However, since some approaches for computing radii of general polytopes consider the computation of a smallest enclosing or smallest circumscribing cylinder of a simplex as a black box within a larger computation [1, 24] , these core problems on simplices are of fundamental importance. Recently, the authors of [10] demonstrated that using their state-of-the-art numerical polynomial solvers, various problems related to cylinders in E 3 can be solved rather efficiently. In particular, the authors give a polynomial formulation for the smallest circumscribing cylinder of a simplex in E 3 , whose Bézout number -the product of the degrees of the polynomial equations -is 60. However, these equations contain certain undesired solutions with multiplicity 4, and as a result of these multiplicities the computation times (using state-of-the-art numerical techniques) are about a factor 100 larger than those of similar problems in which all solutions occur with multiplicity 1.. Here, we provide a general algebraic framework for computing smallest enclosing and circumscribing cylinders of simplices in E n . First we reduce the computation of a smallest enclosing cylinder in E 3 to the computation of a smallest circumscribing cylinder, thus combining these two problems. Then we investigate smallest circumscribing cylinders of simplices in E 3 . We improve the results of [10] by providing a polynomial formulation for the locally extreme cylinders, whose Bézout bound is 36 and whose solutions generically have multiplicity one. Our formulations use techniques from the paper [22] which studies the lines simultaneously tangent to four unit spheres. These techniques also facilitate to present classes of simplices for which the algebraic degrees in computing smallest circumscribing cylinders can be considerably reduced.. Section 4 contains a generalization of our approach to smallest circumscribing cylinders of simplices in E n . The Bézout number of this formulation yields a bound on the number of locally extreme cylinders. Since that bound is not tight, we provide better bounds for small dimensions, which are based on mixed volume computations and Bernstein's Theorem. Moreover, we study in detail the locally extreme circumscribing cylinders of a regular simplex in E n . To exploit many symmetries in the analysis, a formulation based on symmetric polynomials is provided. Using elementary invariant theory we show that the direction vector of every locally extreme circumscribing cylinder has at most three distinct values in its components. This structural result is then related to the combinatorial results on the number of solutions for general simplices.. As a byproduct of our computational studies, we discovered a subtle but severe mistake in the paper [32] on the explicit determination of the outer (n−1)-radius for a regular simplex in E n (n even), thus completely invalidating the proof given there. The appendix contains a description of that flaw, including some computer-algebraic calculations illustrating it. We remark that after the present paper had been finished, we found a new way for determining R n−1 of a regular simplex in even dimension (see [5] ).

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


Proofs, Programs, Processes The objective of this paper is to provide a theoretical foundation for program extraction from inductive and coinductive proofs geared to practical applications. The novelties consist in the addition of inductive and coinductive definitions to a realizability interpretation for first-order proofs, a soundness proof for this system, and applications to the synthesis of non-trivial provably correct programs in the area of exact real number computation. We show that realizers, although per se untyped, can be assigned polymorphic recursive types and hence represent valid programs in a lazy functional programming language such as Haskell. Programs extracted from proofs using coinduction can be understood as perpetual processes producing infinite streams of data. Typical applications of such processes are computations in exact real arithmetic. As an example we show how to extract a program computing the average of two real numbers w.r.t. the binary signed digit representation. This is an extended version of the conference paper [8] . Its purpose is to provide a theoretical foundation for the extraction of programs from proofs involving inductive and coinductive definitions. The title is motivated by the fact that programs extracted from proofs using coinduction can often be understood as perpetual processes producing infinite streams of data. Typical applications of such processes are computations in exact real arithmetic. An informal introduction into this subject focusing on intuitive explanations and illustrating examples, but refraining from a stringent formal development, was given in [4] (journal version [2] ). In the present paper we provide this formal development including full proofs. We give a realizability interpretation of our theory of inductive and coinductive definitions with a Soundness Theorem stating that from a proof of a formula one can extract a functional program provably realizing it.. The programming language in which the realizers are expressed is formally represented by a lazy λ-calculus with full recursion and an ML-style polymorphism. The fact that full recursion is available and terms are typed has two major advantages:. 1. The realization of induction and coinduction is simple and elegant. 2. Realizers can be directly understood as programs in a typed functional programming language with a lazy semantics such as, for example, Haskell.. Another aspect of our system which is of great practical importance is the fact that quantifiers are treated uniformly in the realizability interpretation. This entails that realizers never depend on variables of the logical system (which represents a piece of formalized mathematics) and do not produce output in that language. Therefore, abstract mathematical objects do not need to be "constructivized", and it is possible to directly extract programs from abstract mathematical proofs. The uniform treatment of first-order quantifiers can be seen as a special case of the interpretations studied by Schwichtenberg [22] , Hernest and Oliva [14] and Ratiu and Trifonov [21] , which allow for a fine control of the amount of computational information extracted from proofs. We illustrate our interpretation by extracting the average function on the real interval [−1, 1] from a proof. The average function (and other arithmetic operations) were implemented and verified before in [9, 20] . We would like to stress that while in these papers the programs where "guessed" and verified afterwards, we are able to extract these programs from proofs. This not only saves the work of implementing the algorithm, but also avoids the task of creating the underlying data structures (streams, in our example) as these are generated automatically through the extraction mechanism. Last but not least, we get the correctness proof for free. Some of our case studies have been carried out in the Coq system [10] , but the bulk of the extraction was so far done "by hand". The implementation of the extraction method in the interactive proof system Minlog [1, 16] and the conduct of extended case studies is ongoing work.. Related interpretations of systems with coinductive definitions were studied by Tatsuta [23] , Miranda-Perea [17] and by Berger [5] . The latter paper defines realizability with respect to an untyped λ-calculus and gives an operational and denotational semantics of the calculus. It also discusses the main differences to the former two works. Here, we concentrate on realizability and soundness for a typed system, significantly differing from and improving over the above cited work. To our knowledge, the application to the extraction of exact real number algorithms is new.

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


AdHoc Probe: End-to-end Capacity Probing in Wireless Ad Hoc Networks Knowledge of end-to-end path capacity is useful for video/audio stream adaptation, network management and overlay design. Capacity estimation in wired and last-hop wireless networks has been extensively investigated, but a thorough and systematic study in ad hoc, multihop wireless networks is still lacking. Yet the rate of a wireless link can change dynamically (and rapidly) due to changes in interference, distance or energy optimization policy.Timely knowledge of path capacity is key to efficient routing, traffic management and application deployment. In this paper, we present AdHoc Probe, a packet-pair based technique, to estimate end-to-end path capacity in ad hoc wireless networks. We apply AdHoc Probe to path capacity estimation in auto rate wireless networks with variable displacement and interference; and, in remote wireless networks across the Internet. Using analysis, simulation and testbed experiments, we show AdHoc Probe can withstand mobility and is able to trace the rate adaptation of wireless networks timely and correctly. AdHoc Probe is simpler, faster and much less intrusive than current schemes. With the increasing deployment of wireless devices (e.g., laptops, PDAs, cellphones, etc), ad hoc networking is becoming an increasingly important class of infrastructure less technology for connecting a group of wireless devices. Ad hoc wireless protocols have been extensively investigated at all layers from physical to applications. However, a systematic development of ad hoc wireless network tools is still lacking. In particular, as a difference from the Internet, there are no efficient end-to-end tools to evaluate ad hoc network resources (e.g., path capacity, available bandwidth, etc.). Yet, the end-to-end knowledge of resources such as path capacity is important for network utilization and management. For instance, in a video conference application supported by an "overlay" that spans wired and wireless ad hoc users, the knowledge of path capacity to different destinations helps the sources and proxies adapt the audio/video streaming rates to match user capacities and provide better quality of services [3] [5] . A simple and accurate end-to-end path capacity estimation tool is needed. The estimation must be fast so that it can reflect the path capacity in a timely even when the actual capacity is varying (for example, because the user is moving from one media to another, or the environment interference is changing). The estimation must be independent of cross traffic (as in this case we are interested in evaluating the equivalent of the "bottleneck" capacity in the Internet, as opposed to "available" bandwidth). The estimation tool must be applicable to mixed wired and wireless paths, since several applications (especially the commercial applications) will include ad hoc wireless extensions as "opportunistic" extensions of the Internet. Finally, the estimation must be non-intrusive so that it will not disturb the ongoing applications traffic in the network.. The path capacity estimation problem has been extensively studied in the Internet. Various tools have been proposed to accurately estimate bottleneck link capacity in the wired and/or last-hop wireless networks [6] [9] [12] [14] . However, the complexity and convergence time required for these schemes are not well suited for ad hoc wireless networks. Moreover, the bidirectional set up of some of the above techniques proves to detrimental in ad hoc networks as discussed later.. Several techniques exist for adhoc path capacity estimation, which are supported by specific routing algorithms. For example, on demand routing algorithms (e.g., AODV [4] ) as well as proactive algorithms (e.g., LANMAR and Fisheye Routing [24] ) have been successfully extended to yield path capacity. These estimations however are dependent on specific routing schemes -they require feedback from the network layer. Our goal is to develop end-to-end estimation techniques independent of the network layer. This is critical in overlay applications, for example, where the source across the Internet does not know which specific routing scheme runs in the remote ad hoc network being probed.. Li et al directly addressed the end-to-end estimation of path capacity of a static multihop network based on 802.11b. Their approach was to send a brute force UDP packet stream and measure the maximum achievable data throughput [16] . This scheme is very realistic in that it reflects the currently available capacity if a UDP stream is injected. However, as discussed later it is not very practical due to impact on ongoing traffic. Moreover, the capacity measurement is affected by current cross traffic conditions. Other work, such as [15] , evaluates capacity and available bandwidth of an end-to-end connection in last hop wireless scenarios, but not including wireless multihop scenarios.. End-to-end path capacity estimation in ad hoc wireless networks is a much more challenging problem than in wired nets. The estimation results need to be consistent with/without cross traffic, since the path capacity is a property that is invariant to the presence of cross traffic. At the same time, the estimate depends not only on the rate of the "narrow" link along the path (as in a wired net), but also on topology, path layout, interferences between nodes along the path and on several other environmental parameters.. Moreover, the estimation technique must be applicable to both fixed rate and auto rate wireless networks (where rate can be adjusted to propagation characteristics and energy requirements). In other words, the estimate must account for rate adaptation and reflect it in a transparent way, with no feedback or side information from the network.. Motivated by the above goals, in this study we propose AdHoc Probe, a packet-pair based end-to-end technique that estimates path capacity in ad hoc wireless networks. We evaluated AdHoc Probe in static and mobile networks, with fixed and auto rate modems using simulation and testbed experiments. In all cases we show that AdHoc Probe can estimate path capacity timely and correctly.. The rest of the paper is organized as follows. In Section II, we summarize related work and recap the Internet CapProbe technique on which AdHoc Probe is based. An in-depth description of AdHoc Probe follows in Section III. In Section IV, we present an analysis of the path capacity in various adhoc wireless network configurations. Next, using NS-2 simulation, we validate AdHoc Probe in those configurations; namely, we address fixed rate wireless networks, including multihopping, relocation and mobility, in Section V; we extend the results to auto rate modems in Section VI. In Section VII, we present testbed experiment results that validate fixed and auto rate modem simulations. Finally, Section VIII concludes the paper. Link capacity estimation has been extensively studied in wired networks, e.g., [6] [9] [12] [14] . Previous research on capacity estimation relied on either delay variations among probe packets as illustrated in pathchar [9] , or dispersion among probe packets as described in Nettimer [14] and Pathrate [6] .. Conceptually, Dovrolis' analysis in [6] clearly revealed that the dispersion distributions can indeed be multi-modal without multi-channels, and that the strongest mode in the multimodal distribution of the dispersion may correspond to either (1) the capacity of the path, or (2) a "compressed" dispersion, resulting in capacity over-estimation, or (3) the Average Dispersion Rate (ADR), which is lower than the capacity.. In [12] However, all of the above schemes have been and evaluated in wired and last-hop wireless scenarios.. They have never been tested in ad hoc wireless networks. Capacity estimation in ad hoc wireless networks remains challenging due to the rapidly varying channel conditions, presence of node mobility, and multiple hops of wireless links.. In [16] , Li et al examined the interaction of 802.11 MAC and ad hoc forwarding and the ability to infer path capacity for several simple configurations and traffic patterns. A brute force approach (i.e., using UDP flow to probe the maximum throughputs of the network) was used in simulation and experiments to validate the hypothetical limits of utilization in a chain network (1/4 of effective capacity). However, this approach was only able to obtain a substantially lower utilization of 1/7 of effective capacity.. In addition, as we mentioned earlier, Li's approach is intrusive and the result approximates path capacity only if the network is idle and static.

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


Unified Design of Iterative Receivers Using Factor Graphs Abstract-Iterative algorithms are an attractive approach to approximating optimal, but high-complexity, joint channel estimation and decoding receivers for communication systems. We present a unified approach based on factor graphs for deriving iterative message-passing receiver algorithms for channel estimation and decoding. For many common channels, it is easy to find simple graphical models that lead directly to implementable algorithms. Canonical distributions provide a new, general framework for handling continuous variables. Example receiver designs for Rayleigh fading channels with block or Markov memory, and multipath fading channels with fixed unknown coefficients illustrate the effectiveness of our approach. For many communication systems it is well-known that joint demodulation and decoding is required for optimum performance. Typically, this processing is too complex for practical implementation and some sort of serial processing is employed. Iterative algorithms which approximate optimal joint decoding for a variety of concatenated codes [1] [2] [3] are known to have excellent performance. This has led to an interest in iterative algorithms for approximating joint channel estimation, demodulation, and decoding, which we call iterative receivers. The usual paradigm for these designs is the interconnection of soft-input, softoutput (SISO) modules [4] .. Graphical models for codes [5] [6] [7] lead to iterative algorithms for decoding, including the turbo decoding algorithm [8] . Factor graphs [9] [10] [11] [12] , so named because they graphically represent function factorizations, are generalizations of Wiberg's work [6] that lead to particularly clean derivations of iterative algorithms. The sum-product algorithm computes the marginals of the function that the graph represents using message passing on the graph. If the graph is cycle-free, the results are exact; however, empirical results show that the algorithm yields excellent decoding decisions even when the graph contains cycles. The possibility of building graphical models for joint decoding and demodulation has been suggested without elaboration in [5, 6, 13] , and we have studied a simple system using a lowdensity parity check (LDPC) code on the block interference channel in [14] .. Our goal in this paper is to present a unified approach to designing iterative receivers using factor graphs. Factor graph-based descriptions of iterative receivers turn out to be extremely compact and intuitively attractive. Most existing iterative receivers, including the internal algorithms of SISO modules, are easily derived in the factor graph framework. Because the factor graph theory completely defines the message update equations, maintaining soft information throughout the algorithm and properly treating extrinsic information are handled automatically. The flexibility of our approach, including our canonical distributions framework for handling continuous variables, makes it easy to derive alternative receivers of varying complexity and performance. In Section II, we describe our notation and very briefly summarize the theory of factor graphs following [10] . The design approach is outlined in Section III. In Section IV, we present several simple design examples illustrating the approach and demonstrating its convenience and flexibility. Section V summarizes our conclusions. The factor graph framework makes it easy to derive iterative receivers for a broad range of channel models and codes. Using the model structure, we factor the joint likelihood function, generate the factor graph, and derive the updates. When continuous variables appear in the model, we also need to select canonical distributions for their messages and choose schemes to compute the parameters for these distributions. This essentially deductive approach makes receiver design quite straightforward and isolates the key design problems. For the simple examples we considered, the approach, with suitable simple canonical distributions, leads directly to recently published receiver designs. Other choices for the canonical distributions or parameter estimation algorithms give different receivers.. We hope that this paper will encourage future work in the area of iterative receivers to describe algorithms using message passing on factor graphs. Since the details of most of the updates are immediate from the factor graph, more emphasis could be placed on ways to handle continuous variables or simply approximate high-complexity updates. Furthermore, because the receiver performance may be very sensitive to the choice of factor graph, it may become challenging to find good factor graphs, especially for more complex channel models.

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


Software Code Generation for the RVC-CAL Language Abstract The MPEG Reconfigurable Video Coding (RVC) framework is a new standard under development by MPEG that aims at providing a unified high-level specification of current and future MPEG video coding technologies using dataflow models. In this framework, a decoder is built as a configuration of video coding modules taken from the standard MPEG toolbox library or proprietary libraries. The elements of the library are specified by a textual description that expresses the I/O behavior of each module and by a reference software written using a subset of the CAL Actor Language named RVC-CAL. A decoder configuration is written in an XML dialect by connecting a set of CAL modules. Code generators are fundamental supports that enable the direct transformation of a high level specification to efficient hardware and software implementations. This paper presents a synthesis tool that from a CAL dataflow program generates C code and an associated SystemC model. The generated code is validated against the original CAL description simulated using the Open Dataflow environment. Experimental results of the translation of two descriptions of an MPEG-4 Simple Profile decoder with different granularities are shown and discussed. Processor frequencies no longer double every two years as predicted by Moore's law. Multicore architectures are now being proposed so that computational power keeps increasing. The main issue of this approach is that standard programming languages (C, C++, . . . ) are sequential and not suitable for parallel multicore architectures. The dataflow programming concept consists of describing an application with a directed graph where edges represent the flow of data between operations. Dataflow programming highlights the potential parallelism of the application, which can be used to distribute calculations over available cores.. MPEG is currently working on the development of the RVC standard. The key concept behind this project is to describe decoders using dataflow graphs: RVC provides a high-level description of the MPEG standard written in a specific language called RVC-CAL. Appropriate tools must implement the design flow and provide the optimization steps necessary for efficient implementations. Uniprocessor software code generation must be addressed before considering more complex implementations (multicore or hardware/software co-design). This paper presents a nonnormative (in terms of relation with the RVC standard) software code generator called Cal2C that from a dataflow program generates C code and an associated SystemC model. We show that the algorithm described with RVC-CAL can be automatically transformed, compiled and executed efficiently on a uniprocessor system. The paper is organized as follows: Section 2 presents dataflow programming within the RVC-CAL environment. Section 3 describes the Cal2C software code generator. Results obtained with Cal2C are shown in section 4. Section 5 outlines perspectives of future work, while we conclude in section 6. This paper presents a software code generator that automatically translates dataflow programs written in RVC-CAL to C and a SystemC model. We show how to generate readable C code from the actions and action scheduler of actors, and define a clear interface between the actor scheduler and the action schedulers. Cal2C successfully translates two descriptions of an MPEG-4 SP decoder. The results obtained so far show the efficiency of the generated code considering it uses a uniprocessor simulation framework. Perspectives are given to improve the efficiency of the generated code.. Another contribution is that the results presented here show that a network of RVC-CAL FUs provided by the MPEG group can be translated automatically into an efficient software implementation. This specification can also be translated into RTL code targeting FPGAs leading to smaller and faster design than a handmade VHDL reference design [6] . In our opinion, RVC-CAL is a high-level language well suited for functional description and for fast prototyping methods that aim to provide hardware/software optimized implementations.

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