Comparison of MANET routing protocols using a scaled indoor wireless grid Abstract-profiling the performance of ad-hoc networking protocols has typically been performed by making use of software based simulation tools. Experimental study and validation is a vital tool to obtain more realistic results which may not be possible under the constrained environment of network simulators. This paper presents experimental results using a 7 by 7 grid of closely spaced WiFi nodes. It firstly demonstrates the usefulness of the grid in its ability to emulate a real world multihop ad-hoc network. It then specifically compares hop count, routing traffic overhead, throughput, delay and packet loss for three protocols which are listed by the IETF MANET working group. These are AODV, OLSR and DYMO Index Terms-ad-hoc, 802.11, test bed One of the key challenges for researchers, in the field of wireless networking protocol design, is the ability to carry out reliable performance measurements on their protocol. They will want to test features such as scalability, delay and throughput, network convergence in the presence rapidly changing link quality and route optimization.. Unfortunately most of the work done so far makes use of simulations which over simplify the physical layer and even aspects of the Medium Access Control layer. There is also a lack of consistency between the results of the same protocol being run on different simulation packages [1] .. Mathematical models are another useful tool when trying to understand the effects of various network parameters on performance. For example Gupta and Kumar have created an equation which models the best and worst case data rate in a network with shared channel access, as the number of hops increases [2] . However recent work [3] done by the same author using a real test bed, using laptops equipped with 802.11 based radios, revealed that 802.11 multi hop throughput is still far from even the worst case theoretical data rate predictions.. After 6 hops, the mathematical model shows a 30% decrease in throughput whereas the test bed showed a 95% decrease in throughput. This highlights the importance of verification using real world test beds.. A recent Network Test beds workshop report [4] highlighted the importance of wireless test bed facilities for the research community in view of the limitations of available simulation methodologies. This was the motivation for the ORBIT project [5] which created a wireless grid similar to the one that will be discussed in this paper.. The ORBIT mesh lab has an 8x8 grid and a 20x20 grid which makes use of 802.11 wireless equipment based on the same Atheros chipset that our lab uses. A key difference between the ORBIT lab and ours is that it makes use of Additive White Gaussian Noise (AWGN) to raise the noise floor instead of using attenuators. It allows researchers anywhere in the world to run an experiment on the lab by making using of a scheduler. Researchers can change everything from the routing protocol to the entire operating system that will be run on the nodes.. These mini scale wireless grids can emulate real world networks due to the inverse square law of radio propagation, which states that a radio wave will be attenuated by 6.02 dB if the distance is doubled no matter what the distances involved.. Most of the indoor test beds, such as the one used by Microsoft's Research lab [6] , have been created by placing computers with wireless cards in offices and relying on walls to attenuate the signal enough to create a multi hop environment. Although these have been useful, they generate results that will be very difficult to repeat and verify due to the chaotic nature of signal prorogation in an office environment.

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


Managing requirements uncertainty with partial models Abstract Models are good at expressing information that is known but do not typically have support for representing what information a modeler does not know at a particular phase in the software development process. Partial models address this by being able to precisely represent uncertainty about model content. In previous work, we developed a general approach for defining partial models and using them to reason about design models containing uncertainty. In this paper, we show how to apply our approach to managing uncertainty in requirements by providing support for uncertainty capture, elaboration, and change. In particular, we address the problem of specifying uncertainty within a requirements model, refining a model as uncertainty reduces, providing meaning to traceability relations between models containing uncertainty, and propagating uncertainty-reducing changes between related models. We describe the implementation of uncertainty management within the Model Management Tool Framework and illustrate our approach using two examples. Models are advocated as part of the requirements engineering (RE) process to help with elicitation, recording current understanding, communication, requirements development, and exploration of alternative high-level designs. During the process of creating RE models, it is common to have uncertainty over the content and structure of the models. Such uncertainties are due to gaps in domain knowledge, disagreements between stakeholders, or unresolved decisions about their needs. In the modeling process, such uncertainties often remain implicit, making it difficult to ensure that they get resolved and creating the possibility that decisions in later development phases are made using incorrect information. It is useful to explicitly express uncertainty in RE models, to facilitate its resolution through further elicitation or decision making, and to capture such uncertainty-reducing decisions and elicited information as part of the modeling process.. In previous work, the first two authors have developed a language-independent approach for expressing certain types of uncertainty [43] using partial models. The approach is based on allowing the modeler to use annotations with formal semantics to express her uncertainty within the model. The language-independence means that we can use it to express uncertainty within models in a uniform way at every phase of the development process. The formal nature of our approach allows the precise expression of uncertainty and provides the basis for automated tool support for activities such as reasoning with models containing uncertainty [6] and verifying that model changes reduce uncertainty [40] . While our approach is formally grounded, the formal details are hidden from the user. Our overall goal is to produce a comprehensive strategy for uncertainty management in software engineering. In our previous work [6, 40, 43] , we have developed a formal approach called MAVO for expressing and reasoning with model uncertainty. We have explored model transformations for such models [7] and done a comparative analysis of tool support for property checking [38] .. In this paper, we expanded on previous work by applying MAVO to the RE modeling context to answer six methodological and algorithmic questions about uncertainty in RE. Specifically, we made the following contributions: we explicated methodological guidelines for using MAVO annotations (Q1) and illustrated them through an application to expressing uncertainty in RE models; we applied MAVO refinement to expressing uncertainty reduction in RE models (Q2); we proposed a methodological approach to documenting the rationale of these refinements (Q3); we showed how to apply the MAVO uncertainty to traceability relations between RE models (Q4); we developed an efficient algorithm for checking the validity of MAVO refinements (Q5); we developed an approach for using multiplicity constraints to automatically propagate uncertainty-reducing changes (Q6); we described an implementation of uncertainty management in the MMTF tool; and we applied the MAVO framework to two examples, reporting on experiences and limitations. Through these contributions, we have made progress toward the identification and resolution of uncertainty early in the software development process. Also, although we illustrated our approach in an RE scenario using i* and UML models, it is general enough to be applied as part of any RE modeling approach that has a metamodel. We see this paper as a step toward the development of a comprehensive strategy for uncertainty management across the development life cycle. We intend to conduct additional case studies in order to better evaluate the effectiveness of our approach as well as improve our tool support. We describe other opportunities for follow-on work below.. Undoing refinements The recording of rationale with a MAVO refinement provides the opportunity to revisit decisions and explore other alternatives. To do so, we need to be able to change the model to reflect an alternative earlier decision without affecting the decisions that came later. At a high level, this entails increasing uncertainty in the model just enough to ''remove'' the original decision and then refine it to reflect the new decision. While the formalization of MAVO may help do this in a sound way, dependencies between refinements and linking multiple refinements to the same rationale make this problem even more complex.. Trace analysis Having ''lifted'' traceability relations to the uncertainty setting, we are interested in the corresponding lifting of the different types of analyses that are typically done using traceability relations [46] . This approach has rich potential, for example, in being able to define change impact analysis across related models containing uncertainty. We are currently exploring approaches for doing this lift by encoding existing traceability analysis techniques into FOL and using these with the MAVO FO encoding of partial models. In this section, we survey a number of approaches related to our work on uncertainty.. Uncertainty in RE Several approaches consider uncertainty in requirements, often as part of an overall strategy for managing uncertainty in software development. For example, [14] provides a framework for uncertainty in SE, recognizing requirements uncertainties such as inconsistencies, clarity, and accuracy. While this approach uses existing techniques to model uncertainty in isolation, our approach aims to integrate uncertainty modeling with existing RE modeling approaches. The work in [4] investigates requirements changes and uncertainty in an experimental field study, using data gathered to provide a useful list of root causes for uncertainty, including vague product strategy and missing key stakeholders. Although it is useful to consider possible root causes for uncertainties, our approach takes a more narrow focus, capturing the manifestation of uncertainties in the structure of RE models.. The approach in [19] argues that much of the uncertainty in SE comes from our inability to precisely measure software and its processes, proposing the use of rough sets to capture software properties and requirements. Although some of the uncertainties captured by MAVO might be related to imprecision, our approach aims to support a wider variety of model uncertainty. Similarly, work in [33] studies the problem of ''imperfect information'' in software development, using fuzzy set theory and probability theory to model imprecise non-functional requirements in order to evaluate design decisions. This approach allows modeling of uncertainty concerned with specific NFRs, while our approach allows for uncertainty over RE models which may capture NFRs. Thus, when it comes to the precision of requirements, our approach inherits the expressiveness of the modeling language to which it is applied.. In another direction, Herrmann [12] studied the value of being able to express vagueness within design models. His modeling language SeeMe has notational mechanisms similar to OW and May partiality; however, there is no formal foundation for these mechanisms.. Much of the investigation of uncertainty in RE is concerned with work on adaptive systems. Such systems aim to respond to uncertainty during run-time by specifying functional adaptations as part of RE (see [44] for overview). Our approach is aimed to represent uncertainty in the content or structure of requirements models arising as part of elicitation, ideally resolved as part of the requirements process, and do not explicitly to handle run-time uncertainty.. Uncertainties in software development are often considered as part of risk management. For example, the approach in [15] advocates the early and explicit consideration of risks as part of RE goal modeling. Although certain risk factors (e.g., an unknown budget) may motivate the presence of model uncertainty, our framework is not explicitly intended to capture these risks.. Argumentation and rationale in RE Previous work has focused on the use of rationale as part of design decisions (e.g., [36] ), whereas others added rationale as part of the development of goal models [17, 27] or other requirements models [9] . In contrast, our approach focuses on adding rationale for the reduction in uncertainty, which may or may not involve a design decision.

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


Determining confidence when integrating contributions from multiple agents Integrating contributions received from other agents is an essential activity in multi-agent systems (MASs). Not only must related contributions be integrated together, but the confidence in each integrated contribution must be determined. In this paper we look specifically at the issue of confidence determination and its effect on developing "principled," highly collaborating MASs. Confidence determination is often masked by ad hoc contribution-integration techniques, viewed as being addressed by agent trust and reputation models, or simply assumed away. We present a domain-independent analysis model that can be used to measure the sensitivity of a collaborative problem-solving system to potentially incorrect confidence-integration assumptions. In analyses performed using our model, we focus on the typical assumption of independence among contributions and the effect that unaccounted-for dependencies have on the expected error in the confidence that the answers produced by the MAS are correct. We then demonstrate how the analysis model can be used to determine confidence bounds on integrated contributions and to identify where efforts to improve contribution-dependency estimates lead to the greatest improvement in solution-confidence accuracy. Integrating contributions received from others is an essential activity in multi-agent systems (MASs) [2, 6] , blackboard [3, 5] and other collaborating software systems [7, 4] (where problem solving is performed by multiple knowledge sources), and in real life [12] . Not only must related contributions received from other agents be integrated together, but the confidence in each integrated contribution must be determined. The issue of confidence determination and its effect on developing "principled," highly collaborating MASs is the focus of this paper.. Consider a simple "thought experiment" MAS application. There are three "observer" agents, each able to observe a coin toss and report whether it saw a "heads" or a "tails." A fourth "integrating" agent receives the observer reports and combines them to produce an overall answer. Each observer agent has undergone extensive certification of its coin-flip acuity and reports the flip correctly 80% of the time. We wish to improve the accuracy of the four-agent MAS over that of a single observer agent by having the integrating agent combine the reports received from the three observers.. To clarify the issue of confidence determination, we make the following assumptions in this paper:. • trust [8] is not an issue-agents always do their best to provide accurate contributions • agent contributions are not always correct-despite its best efforts, an agent's contributions may be wrong • received contributions can be integrated triviallycontributions to be integrated have identical semantics • the probability of an agent's contributions being accurate is known (0.8 in our thought experiment) • the "confidence" in a contribution reflects the probability that the contribution is correct Suppose the integrating agent receives a heads report from each observer agent. What confidence should the integrating agent assign to the integrated heads result? Common approaches used when combining contributions are to: 1) assume independence among the contributions, 2) use ad hoc heuristics to approximate dependencies, 3) avoid the issue by using only a single ("best") contribution, or 4) not determine a confidence for the integrated contribution at all.. Our integrating agent could assume that the contributions are independent, apply Bayes rule, and assign the integrated result a confidence of .985 (reflecting the collective corroboration of the three contributions). But what if the contributions are not independent? In this thought experiment, let's implement each of our observation agents as a simple function that is given the actual (ground truth) value of the toss and reports that value except for 20% of the time when it reports the opposite side. The decision of when to report an incorrect observation is determined by using a pseudorandom number generator. Our observer accuracy is 80% (and we've saved a lot of coding). If each agent uses a different seed for its random-number generator, the times when the agents' reports are incorrect is independent and the integrating agent's confidence assignments (based on assumed independence) are realistic. However, if all observer agents use the same seed, their pseudo-random numbers will be identical and they will be mistaken at the same times. If our integrating agent accounts for this contribution dependency, the confidence in the integrated result should remain at 0.8 no matter how many observer reports are integrated. (The reports are fully redundant.). Of course, real MAS agents are not about random-number generators and ground-truth cheats, and the interactions among agents are often significantly more involved than sending complete results to an integrating agent. A real agent-based coin-flip detector might consist of a number of camera agents (each with its own camera), low-level image processing agents (with different processing approaches and algorithms), feature-detector agents (Eye, Nose, Hair, Building, Head, etc.), side-assessor agents (again, potentially with different knowledge/strategies), and so on. Yet this complexity only serves to mask the fundamental issue of determining the confidence of integrated contributions. Even if we know the accuracy of individual contributions, we need to account for the confidence uncertainty inherent in integrating them together and how that confidence uncertainty propagates over long reasoning chains and agent interactions. A "principled" integration agent in our thought experiment should represent the confidence in the result as the interval [0.8..0.985], with any additional knowledge of the dependency characteristics of observer contributions applied to reducing this confidence interval.. The remainder of the paper is structured as follows. First, we introduce a domain-independent analysis model that can be used to measure the sensitivity of complex, collaborative problem-solving systems to potentially incorrect confidenceintegration assumptions. We then demonstrate how the analysis model can be used to determine confidence bounds on integrated contributions and to identify where efforts to improve contribution-dependency estimates lead to the greatest improvement in solution-confidence accuracy. We conclude with future directions to explore in contribution integration. In this paper we demonstrated that a domain-independent model can be used to analyze the effect and propagation of potentially incorrect confidence-integration assumptions in a collaborating MAS application. We developed representations for both concurrent and sequential contribution processing and explored the implications of unaccounted-for dependencies in a hypothetical family of applications (modeled as rectangular grids) operating under a range of accuracy and dependency conditions. We showed that, although incorrectly assuming contribution independence is tolerable when agents are close to perfect, incorrect independence assumptions can be significant in systems involving mediocre agents. This can result in inaccurate result confidence values and changed system answers. Our modeling approach can be used to help in the design and improvement of MASs. If contributions are redundant, work by agents to develop them can be eliminated (unless the redundancy is desired due to possible agent failures). If additional data or more capabable processing can improve the accuracy of agent decisions, our model can identify the agents where decision-accuracy improvement efforts will produce the most overall system benefit.. An important future direction is to design a domainindependent mechanism that can be used to efficiently represent the dependence among contributions so that an independence assumption is unnecessary. The challenge is twofold. First, the number of potential dependencies to capture grows exponentially with the number of entities in the system. Second, multi-agent and blackboard systems are typically open, and entities can come and go. While it is reasonable to measure or estimate the accuracy of decisions made by individual entities, assuming we know all of the dependencies among them is unrealistic. Entities may be added later while the system is already running, and some of them may not even exist when the application is developed. One possible approach is to characterize the error probabilities under specific conditions for each entity and to use these characterizations to estimate tighter bounds on the situational dependence/independence between entity contributions.

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


Decidability of Bounded Second Order Unification Abstract. It is well-known that rst order uni cation is decidable, whereas second order (and higher-order) uni cation is undecidable. Bounded second order uni cation (BSOU) is second order uni cation under the restriction that only a bounded number of holes in the instantiating terms for second order variables is permitted, however, the size of the instantiation is not restricted. In this paper, a decision algorithm for bounded second order uni cation is described. This is the rst non-trivial decidability result for second order uni cation, where the ( nite) signature is not restricted and there are no restrictions on the occurrences of variables. We show that the monadic second order uni cation (MSOU), a specialization of BSOU is in p 2 . Since MSOU is related to word uni cation, this is compares favourably to the best known upper bound NEXPTIME (and also to the announced upper bound PSPACE) for word uni cation. This supports the claim that bounded second order uni cation is easier than context uni cation, whose decidability is currently an open question. Uni cation is solving equations. In Automated Deduction systems based on rst order predicate logic, in particular in Logic Programming, ( rst order) uni cation is a central operation. It is the question whether two terms formed from function symbols and variables can be made equal by instantiating the variables by terms. It is well-known that rst order uni cation is decidable in linear time (see the overview article BS94]).. Second Order Uni cation (SOU) generalizes rst order uni cation by extending terms with second order variables that may be instantiated with partial terms. Second order uni cation is a specialization of higher-order uni cation Hue75,SG89,Wol93].. Goldfarb Gol81] has shown that second order uni cation is undecidable. This result was sharpened in Far91] for a restricted signature and in Lev98, LV98] for severe restrictions on occurrences of second order variables.. Monadic second order uni cation (MSOU) (see Far88] ) is second order unication where the signature has only monadic function symbols, i.e., there are no function symbols of arity 2 or more. Its decidability follows from decidability of string uni cation Mak77]. Recently obtained upper bounds for the complexity of word uni cation are EXPSPACE ( Gut98] ), which was improved to NEXPTIME Pla99a] and recently to even PSPACE Pla99b] .. Another kind of restriction which has recently attracted some interest is to permit as instantiations for the second order variables only terms where the number of bound variables is in a prescribed set. If the number is exactly one, then this is called context uni cation. It is currently an open question, whether (general) context uni cation is decidable.. If context uni cation is restricted, then there are some results on decidability: If the number of context variables is at most two SSS98a, SSS98b, SSS99] ; If the nesting of second order variables has a certain form SS94, SS98] ; or if every variable and every context variable occurs at most twice Lev96] .. In this paper we consider the problem of bounded second order uni cation (BSOU) where the number of holes in the instantiation of second order variables is bounded, but zero is also permitted; and also the specialization of monadic second order uni cation (MSOU). The new results in this paper are: bounded second order uni cation is decidable; as a lower complexity bound, it is shown that BSOU and MSOU are NP-hard. For This paper shows that restricting the number of holes in instantiations of second order variables makes second order uni cation decidable. This result is consistent with the hypothesis that context uni cation is decidable. However, the methods and the results seem not helpful in solving the context uni cation problem. The procedure could be adapted to transform context uni cation problems into a type-0 form, but there is no decision method known for context uni cation problems of type 0.. Unfortunately, the decision algorithm is rather complex, it requires at least exponential space, since the procedure (solve-compressed-cycle) may generate an exponential number of copies of a context.. We have given an upper bound p 2 on the complexity of the specialization MSOU. An estimation of the complexity of BSOU is left as future work.. Comparing the upper bound p 2 of monadic SOU with the recently obtained upper bounds NEXPTIME Pla99a] and even PSPACE Pla99b] for the word uni cation problem, this is a hint that monadic SOU is an easier problem than word uni cation. Since monadic SOU is to Z-context uni cation as word unication to context uni cation, this is also a hint that bounded second order uni cation may be an easier problem than context uni cation.. (where terms t 0 are obtained from t by instantiation). Application of rule (decomp) in Step (c) yields First assume that there is at least one index k 6 = r such that t j;k has a surface occurrence of X j+1 . Since X j+1 6 = X j also t 0 j;k has a surface occurrence of X j+1 .. This shows that the equations X j?1 (s 0 j?1 ) : = t 0 j?1 f(t 0 j;1 ; : : :; t 0 j;r?1 ; X 0 j ( ); t 0 j;r+1 ; : : :; t 0 j;m )]; X j+1 (s 0 j+1 ) : = t 0 j+1 :. together with the images of the equations of L with indices 6 2 fj; j + 1; j ? 1g represent a Z-cycle L 0 of length h ? 1. Note that the conditions for a Z-cycle are satis ed, since t 0 j?1 f(t 0 j;1 ; : : :; t 0 j;r?1 ; X 0 j ( ); t 0 j;r+1 ; : : :; t 0 j;m )] contains at least one function symbol at the top. When we now fully decompose, we may assume that no failure rule is applied. Decomposition does not increase the -measure of the Z-cycle, and the resulting system S 00 contains a Z-cycle L 00 such that (L 00 ) = (L 0 ) < (L), which shows that (S 00 ) < (S).. In the other case, t j;r { and hence t 0 j;r { contains at least two surface occurrence of X j+1 . The three equations above can be combined with the images of the equations of L with indices 6 2 fj; j + 1; j ? 1g to a new Z-cycle L 0 . When moving from L to L 0 , the main depth of the relevant context of equation j is decreased. Since t 0 j;r contains at least two surface occurrence of X j+1 the new Z-cycle L 0 is non-path-unique and this main depth is relevant for the -measure.. It follows that (L 0 ) < (L). As in the previous case it follows now that a system S 00 is reached such that (S 00 ) < (S).. Consider the special situation where h = 1. Here L has the form X 1 (s 1 ) : = f(t 1;1 ; : : :; t 1;m ) X 1 ]. There are at least two surface occurrences of X 1 in t 1 = f(t 1;1 ; : : :; t 1;m ), and all these surface occurrences are in t 1;r . Instantiation For completeness let be a uni er of S with an exponent of periodicity that is not greater than E. If instantiates some Z-context variable in the Z-cycle L as Id or by a constant function, then use selection 1.. Otherwise, let C 0 be the common pre x of the instantiations (X j ); j = 1; : : :; h, and of (C h ) E . If there is some X j , such that (X j ) = C 0 , then the second case can be selected, since C 0 is a pre x of (C h ) E . Note that for an extension 0 (on new variables) of , 0 (B h ) = (C h ).. The remaining case is that C 0 is a proper pre x of all (X j ). First we show that this is not possible for h = 1: Assume otherwise. Let C 1 = C 11 C 12 , such that (C e 1 C 11 = C 0 . Let k be an index not in the direction of the hole of C 12 C 11 . Then (X 1 ) = (C 1 ) e (C 11 )f(r 1 ; : : :; r k ]; : : :; r n ), and the equation X 1 (s 1 ) :. = C 1 (X 1 (t 1 )) after instantiation looks like (C 1 ) e (C 11 )f(r 1 ; : : :; r k (s 1 )]; : : :; r n ) = (C 1 ) (C 1 ) e (C 11 )f(r 1 ; : : :; r k (s 1 )]; : : :; r n ). This implies that the following equation holds:. f(r 1 ; : : :; r k (s 1 )]; : : :; r n ) = (C 11 C 12 )f(r 1 ; : : :; r k (s 1 )]; : : :; r n ) Let (C 11 C 12 ) = f(a 1 ; : : :; a j ]; : : :; a n ), where j 6 = k by assumption. Then by decomposition, we get that r j is a superterm of a j f(r 1 ; : : :; r k (s 1 )]; : : :; r n )], which is impossible. Now we can assume that h 2. There is a non-unary function symbol f, such that (X j ) = C 0 D j , and f is the top level function symbol of D j ; j = 1; : : :; h. Then the third part can be selected, where in (b) we choose k j to be the rst number of the path to the hole of D j . Obviously, at least one k j is di erent from the direction of the hole of C h . The exponent of periodicity of a new constructed uni er is not greater than E. The measure is strictly decreased: This is obvious in the rst two cases, since the number of Z-context variables is strictly decreased. If selection 3 is used we show that either the number of Zcontext variables is reduced or a new Z-cycle is generated whose length is strictly shorter than h. Note that we can assume that h 2. Moreover, note that the contexts B h ; C; C 0 do not contain the Z-context variables X i .. L has the form X 1 (s 1 ) : = X 2 (t 1 ); : : :; X h (s h ) : = C h (X 1 (t h )):. Instantiation (b) yields the equations Let k be the rst number of the main path of C 0 . Then consider all the equations that result from decomposition of the equations, where only the result at index k is considered. Let C 00 be the su x of C 0 C in direction k. The following pairs of equations can result: Every equation for 2 j < h is of the form s 00 j?1;k : = t 00 j?1;k s 00 j;k : = t 00 j;k ;. where either t 00 j?1;k s 00 j;k x j;k , or t 00 j?1;k X 0 j (t 0 j?1 ); s 00 j;k X 0 j (s 0 j ). The equation for the index h has two possibilities: either There are two possibilities: Either there are only variable equations. In this case there is a fail due to occurs-check for the equations at index k.. The other case is that there is at least one equation with X 0 j (: : :). Then at index k, the chain of equations is a Z-cycle of length h. Moreover, there is at least one variable in the chain, since there is some j, such that k j 6 = k. Using (repvt), this results in a Z-cycle of length h ? 1. 2 25

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


An interactive out-of-core rendering framework for visualizing massively complex models With the tremendous advances in both hardware capabilities and rendering algorithms, rendering performance is steadily increasing. Even consumer graphics hardware can render many million triangles per second. However, scene complexity seems to be rising even faster than rendering performance, with no end to even more complex models in sight.In this paper, we are targeting the interactive visualization of the "Boeing 777" model, a highly complex model of 350 million individual triangles, which - due to its sheer size and complex internal structure - simply cannot be handled satisfactorily by today's techniques. To render this model, we use a combination of real-time ray tracing, a low-level out of core caching and demand loading strategy, and a hierarchical, hybrid volumetric/lightfield-like approximation scheme for representing not-yet-loaded geometry. With this approach, we are able to render the full 777 model at several frames per second even on a single commodity desktop PC. For many years now, the performance of commodity CPUs has increased at a rate of a factor of two roughly every 18 months. At least in the last few years, the performance of graphics hardware has grown even faster, having led to commodity graphics hardware that can render up to several million triangles per second. In addition to this "free" increase in rendering performance, we also see a steady improvement in rendering algorithms. With all this taken together, the model complexity that is affordable at interactive rates is constantly and rapidly increasing.. Unfortunately, the complexity of practical models seems to be rising even faster: First of all, users of modeling systems (and game designers as well) tend to immediately spend every grain of increased performance into even more detail, i.e. into more triangles.. Additionally, virtual prototyping is becoming increasingly important and hardwired into the design process. Traditionally, virtual reality has been but loosely coupled to the actual design process, and has merely visualized semi-manually prepared (i.e. simplified) versions of the CAD models. With VR getting increasingly involved into the production pro- cess, there is a growing need to render models "directly out of the database", i.e. without any model "preparation" and simplification. Such CAD datasets, however, can be quite complex.. Furthermore, the increased use of "collaborative engineering" for large-scale industrial projects leads to models consisting of hundreds and thousands of individual parts (potentially created by different suppliers), each of which modeled at whatever complexity and accuracy has been affordable for that individual part. In practice, this often means that each individual nut and bolt of a model (also see Figures 1-3 ) is represented in full geometric detail.. Taken together, these developments lead to a growth in model complexity that seems to be at least as fast as the growth in hardware resources. An end to these developments currently is not foreseeable.. In this paper, we are targeting the interactive visualization of the "Boeing 777" model, a model consisting of roughly 350 million individual triangles, i.e. without using instantiation to generate this triangle count. Just the raw input data of that model ships -in compressed form -on a total of eleven CDs. After unpacking and storing each triangle as a triple of three floats without any additional acceleration data, the model is 12 GByte in size, and requires several minutes just for reading it from disk. For this kind of model complexity, generating frame rates of several frames per second is quite challenging for contemporary massive model rendering approaches. In this paper, we have presented a framework that allows for interactively ray tracing gigabyte-sized models consisting of hundreds of millions of individual triangles on a single desktop PC. This is achieved using a combination of real-time ray tracing, an out-of-core demand-loading and memory management scheme for handling the massive amounts of geometry, and a hybrid volumetric/lightfield-like approximation scheme for representing not-yet-loaded geometry.. By detecting and canceling potentially page-faulting rays, we can avoid system paging, and maintain high frame rates of several frames a second, even while flying into or around our example airplane model.. The visual impact of killing off rays is reduced by approximating the missing geometry using a lightfield-like approach. For not too drastic camera changes, the proxies can well hide the visual artifacts otherwise caused by the canceled rays. For large camera movements however, or when entering a previously occluded part of the model, the proxy structure becomes visible in form of blocky artifacts in the image. These artifacts then are similar to other approaches like Holodeck, Render Cache, point-based methods, or even MPEG/JPEG-compression. Using the surfacebased loading prioritization however these artifacts disappear quite quickly. Furthermore, the quality is still sufficient for interactively navigating the model.. Using our approach, we achieve frame rates of 3-7 frames per second at 640×480 pixels, or still 1-2 frames per second at full-screen resolution of 1280 × 1024 pixels, even on a single dual-CPU desktop PC. As next steps, we will investigate ways to further improve the visual appearance of our proxies, potentially by including positional information at least for large voxels.. More importantly, we are planning to make this technology available to industrial end-users, which means that we have to target real-time frame rates at full-screen resolutions. Eventually, this will require using more than only two CPUs. Fortunately, quad-CPU systems are already available, and eight-way systems have been announced. Additionally, it seems interesting to parallelize and distribute the current system over a cluster of cheap dual-CPU PCs. Preliminary result already look promising.. Once the computational power is available, we also plan on evaluating how high-quality shadows, reflections, and in particular interactive lighting simulation can be achieved in models of this complexity. Once all the individual parts of our system are now together, we can start evaluating its performance. As target hardware platform, we have chosen a dual-processor 1.8 GHz AMD Opteron 246 system with 6 GB RAM, running SuSE 9.0 Linux with kernel 2.4.25. Though the machine is equipped with an NVIDIA graphics card, this card is only used for displaying the final image, and otherwise remains unused. For storing the model, the system uses a standard Western Digital WD2500JB IDE disk with a nominal throughput of roughly 50-55 MB/s. All of these parts are commodity PC parts, and the whole system costs is less than $5000. Due to the practical and industrial importance of rendering complex datasets, there exists a vast suite of different approaches to this problem. However, many of these techniques perform well only for specific kinds of models, but prove problematic for others.. Brute-Force Rendering. Obviously, a model of the size of the 777 cannot be handled by a pure brute-force approach. In theory, the most up-to-date graphics hardware (e.g. an NVIDIA Quadro FX 4000) features a theoretical peak performance of 133 million shaded and lit triangles per second, and could thus raster the full model in only a few seconds. Unfortunately, the practical performance usually is much lower, in particular for models that do not fit into graphics card memory. Thus, typical approaches to rendering complex datasets rely on reducing the number of triangles to be sent to the graphics card.. Culling Techniques. Typical approaches like view-frustum culling are quite limited for a model of as high a depth complexity as the 777. Depth complexity can only be handled by taking occlusion into account. At least for 2D or 2 1 2 D scenes (e.g. urban walkthroughs), occlusion can be conservatively precomputed quite well [WWS00] . In three dimensions, in particular with as few occlusion as in the 777 (see Figures 2 and 3) , visibility preprocessing is quite problematic [ACW * 99].. Instead of precomputing visibility, the alternative is to use a hierarchical visibility culling mechanism, e.g. the hierarchical z-buffer [GKM93] , possibly implemented via OpenGL occlusion queries [BMH99] . However, neither of these approaches has been designed for handling gigabytesized models that do not even fit into main memory. Recently, Correa et al. [CKS03] have proposed a visibilitybased out-of-core rendering framework that can also cope with models larger than memory. However, even if visibilitybased approaches would achieve perfect culling, for many views the low degree of occlusion in the 777 still results in millions of potentially visible triangles.. To handle this case, the randomized z-buffer algorithm [WFP * 01] randomly selects one triangle out of the many triangles that project onto a pixel. This, however, works only for scenes in which it does not actually matter which of the triangles is chosen, e.g. for picking one of the thousands of leaves of a tree. For the 777 the exact ordering and mutual occlusion of even very close-by triangles is quite important. For example, in order to avoid the small yellow pipes "shining through" the green hull to which they are attached. Finally, like all the previously mentioned techniques, the randomized z-buffer is not designed for handling models that do not even fit into memory.. Model Simplification. As pure visibility culling even theoretically is not enough, many approaches try to "reduce" the model by some form of mesh simplification, e.g. via edge contraction, vertex removal, or remeshing (see e.g. [CMS98] ), often requiring some form of "wellbehaving" geometry. Typically, these methods perform best for highly tessellated surfaces that are otherwise relatively smooth, flat, and topologically simple. In the 777 the triangles actually form many detailed, loosely connected though interweaving parts of complex topological structure, such as mazes of tubes, pipes, and cables (see Figures 2 and 3 ). Such kinds of geometry are very hard to simplify effectively in a robust manner.. Moreover, each part of the 777 comes in a "soup" of unconnected triangles, without any connectivity information, often forming self-intersecting and overlapping surfaces (see Image-based and Point-based Approaches. In addition to these "traditional" methods, researchers have also looked into image-based and point-based approaches. For example, the Holodeck [WS99] , Render Cache [WDP99] , and Edge-and-Point-Image [BWG03] progressively sample the model asynchronously to displaying it, and interactively reconstruct the image from these sparse samples. In principle, both approaches might be applicable to the 777. However, the rays traced by these systems are likely to cause significant paging, resulting in prohibitively long times for generating enough image samples. This is likely to result in severe subsampling, and in strong visual artifacts.. As yet another alternative, researchers have proposed to represent models using point samples (see e.g. [CH02, PZvBG00] ). Though this decouples geometric complexity from display complexity, the sparse number of samples often limits the detail that is present in the reconstructed image. To avoid this problem, QSplat [RL00] employs a hierarchical scheme in which the entire mesh is represented by at least one sample per triangle. However, its hierarchical approximation scheme assumes that nearby triangles can, if seen from a distance, be well approximated by a disk-shaped "splat" with filtered color and normal information. Like mesh simplification, this works only for relatively smooth and topologically simple surfaces, and is likely to fail for the geometrical structure of the 777 as described above.. Interactive Ray Tracing. Finally, complex models can also be visualized using interactive ray tracing. Due to its logarithmic dependence on scene complexity, ray tracing can easily handle even highly complex scenes of several million triangles at full detail. For example, the OpenRT realtime ray tracing system [Wal04] has been shown to interactively render the one billion triangle "Sunflowers" scene even including shadows, semi-transparent leaves, and moving geometry. However, this has only been possible through instantiation, i.e. by reusing the same kind of sunflower several thousand times, therefore being able to keep the entire model in main memory. For the 777 model, we simply cannot store the entire dataset -which occupies 30-40 GByte including acceleration structures -in main memory. Once the operating system starts to generate the inevitable page faults the ray tracer would run idle while waiting for data, and could not maintain interactivity.. In order to solve that problem, Pharr et al. [PKGH97] have proposed a caching and reordering scheme that reorders the rays in a way that minimizes disk I/O. Though this allows for efficiently ray tracing models that are much larger than main memory, the approach is not easily applicable to interactive rendering. A simplified version of this scheme has also been used by Wald et al. [WSB01] . They have proposed to "suspend" rays that would cause a page fault and load the required data asynchronously over the network while tracing other rays in the meantime. The stalled rays then get "resumed" once the data is available. Though that approach worked well for the target model (the 12.5 million triangle UNC Power Plant), it fails in interactively rendering a model as complex as the 777: The proposed suspend/resume approach can hide the loading latency only within the duration of one frame. In the 777, however, even a small camera change often triggers thousands of disk read requests that simply cannot be fulfilled within a single frame. Though prefetching (in the sense of e.g. [CKS03] ) would help, it can hide loading latencies only to a limited degree.. Furthermore, their demand loading scheme was based on splitting the model into "voxels" of several thousand triangles, which were then loaded and discarded as required. This caching granularity is far too large for our purposes, as each individual ray may cause loading another of these voxels. Additionally, this method is prone to memory fragmentation, and carries a certain overhead for managing the data (also see the discussion in [DGP04] ).

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


Multiscale Time Activity Data Exploration via Temporal Clustering Visualization Spreadsheet Abstract-Time-varying data is usually explored by animation or arrays of static images. Neither is particularly effective for classifying data by different temporal activities. Important temporal trends can be missed due to the lack of ability to find them with current visualization methods. In this paper, we propose a method to explore data at different temporal resolutions to discover and highlight data based upon time-varying trends. Using the wavelet transform along the time axis, we transform data points into multiscale time series curve sets. The time curves are clustered so that data of similar activity are grouped together at different temporal resolutions. The data are displayed to the user in a global time view spreadsheet, where she is able to select temporal clusters of data points and filter and brush data across temporal scales. With our method, a user can interact with data based on time activities and create expressive visualizations. We have presented a methodology for exploring time series data by focusing on temporal trends. Our goal was to locate data points of similar temporal trends across multiple time scales. To achieve this, we apply the wavelet transform to data along time to create a multiresolution temporal representation. Then, we cluster the data in the different temporal scales and wavelet coefficient types to derive groups of similar trends. These trends are then shown to the user, who can browse the trends present in their data, select and interact with the data, and eventually visualize the explored phenomena.. The temporal clusters are shown in a visualization spreadsheet that summarizes the temporal and cluster content of the data. From there, the user can choose clusters to explore, which will be placed on a secondary time histogram spreadsheet. The time histogram allows the user to see the value distribution over time and also make adjustments to the data in the cluster through brushing and linking. Selected clusters are then used in the final visualization, where the user can perform Boolean operations on the data and animate the temporal trends.. We believe that the proposed method and system are useful for exploring data in a time centric manner, rather than focusing on space and value. There is room for improvement though. In particular, the clustering method is more appropriate for spatially static data such as weather climate data or temporal hotspots such as the earthquake basin. In the future, we would like to extend the method to be able to deal with spatially moving time activity or temporal phase shift, such as is seen in the combustion or earthquake data. Second, the user interface needs to be able to adapt to the data explosion from extracting the multiple temporal scales and clusters. As can be seen with the cluster spreadsheet, even with cell culling, there can be many cells that can overwhelm the user. Additional metrics, controls, or cues to highlight potential interesting time activity would be useful to reduce the amount of data that is shown to the user. The basin has a different temporal behavior from the rest of the data and thus is able to be separated from the temporal activity background. We utilize the wavelet to decompose time series data into a series of wavelet or filter bank levels. Wavelets have been used previously as a compression and level-of-detail reduction [19] scheme for large data sets. Recently, Lum and Ma have used filter banks as a method to classify spatial data based on different frequency ranges [20] . In information visualization, the Fourier transform is used to decompose line graphs into different scales to do optimal banking to 45 at different temporal resolutions, where banking to 45 attempts to find an optimal aspect ratio for 2D graphs to maximize the angles between line segments to 45 degrees for perceptual visualization enhancement. [8] . We use the wavelet transform to extract multiresolution temporal trends. There has been a use of multiresolution histograms for image recognition and matching [6] , [10] . Jain and Merchant apply the wavelet transform to the color histograms for images to build multiresolution histogram pyramids for image retrieval. Hadjidemetriou et al. apply spatial image filtering to acquire multiresolution histograms for image matching. Our use of multiscale time histograms is most like the latter, we filter the data along the time axis and use clustering [7] , [15] to match temporal trends.. Brushing, linking, and multiple data views have been used in the visualization as a means to be able to draw conclusions between multivariate data. GGobi and the like are the latest incarnations of multivariate data brushing and linking [4] , [25] . Our use of brushing and linking is applied in the selection of data points across temporal scales. The use of spreadsheet formats are likewise used throughout visualization to simultaneously display multiviews of data [3] , [11] , [13] , [17] , [30] . We use visualization spreadsheets to present the data that are acquired through wavelet transformation and clustering. The use of graphical widgets and user interfaces for are prevalent in classification and transfer function design [14] . The combination of wavelet transformation, clustering, time histograms, and brushing and linking create a complete user interface to explore and classify data by temporal activity.. There have been various research efforts in visualizing time series data in the area of information visualization. For instance, van Wijk and van Selow combined cluster analysis and calendar based visualization to identify standard daily patterns throughout the year [28] . Weber et al. [27] proposed a method to visualize time-series data based on spirals. The spiral graphs are effective for detecting periodic patterns for large-scale data sets. Hochheiser and Shneiderman [9] proposed a Timebox widget to specify query constrains on time series data. Lin et al. [18] introduced VisTree, a time series pattern discovery and visualization system to help analyze data from aerospace applications.. Creating transfer functions and visualizing time-varying volumetric data is one recent interest [21] . There has also been other work in automatic and semiautomatic methods of transfer function creation for time varying data sets [12] , [22] , [26] . More recently, Akiba et al. have used time histograms to be able to classify data based upon their time series profile [1] , [2] , [16] . Their method is better at feature tracking over space. Akiba et al.'s assumption is that data point populations will aggregate in value space and move together in value space. In this paper, we make the assumption that interesting data points have similar temporal trends. While our method is better at finding and isolating data points based on similar activity, we utilize their method for creating dynamic transfer functions for data points based on extracted temporal features. Our assumption is more closely linked to that by Fang et al. [5] . They use a method to segment medical data based upon calculating distance metrics from a time series profile curve [5] . We also extract data points based on time activity but across several temporal scales with the ability to query and explore at different resolutions. This work of temporal activity selection provides the data input to volume combination methods over space and time to create final visualizations [29] , [30] , [31] . In order to allow the user to find temporal trends in her data, we model each data point or position in time series data as a 1D time signal. A time series curve, time activity curve [5] , or time curve is a vector representing the value over time at a particular data point. The time series vector for a data point is a vector of t elements ordered by time, where t is the number of time steps in the data set, and the value of each element is the value at a time step of that data point. Assuming the data value is scalar over time, if we were to plot the value over time in a 2D graph, the line curve would comprise its graphically representative time curve like the top graph in Fig. 1 .. In a 2D time curve line graph, the user is more likely to be able to detect changes in value over time or detect trends and anomalies present in the time signal, compared to animation or volume visualization. This is due to the global time awareness and value change that is displayed by 2D plotting. The entire time sequence is available for viewing at a glance. In volume rendering, comparatively, the user has one slice in time displayed at any given moment. Value change or trend detection depends heavily on the capability of the transfer function to display the trends, the speed that an animation is played at and the memory of the user. Furthermore, trend detection in animation can be easily missed due to opacity, occlusion, visual memory, change blindness [23] , or any number of other perceptual factors.. To further aid the user, we decompose each time series curve into wavelet levels or a series of filter bank levels, as in the bottom graphs in Fig. 1 . By using the wavelet transform, we filter the time activity curve of each data point into several scales of temporal activity. This allows the user to explore the activity that takes place at different temporal scales. In the displayed wavelet coefficients in Fig. 1 , we show a 2-year, a 7.875-year, and a 31.5-year trend that are present in the single data point. The user can then explore and classify the data based on various trends that occur at different scales in the data. As in Fig. 1 , the different 2-year, 7.875-year, and 31.5-year trends that are masked by high-frequency spikes in value are revealed through filtering, like multiscale banking to 45 and multiscale volume exploration [8] , [20] .. One data point is easy to plot, like the aggregate US annual temperature data, but when dealing with millions of data points such as in time-varying volumetric data, it becomes intractable for a user to visualize the time curve for every data point. To expedite the user search process, we utilize clustering [7] , [15] to form temporal summary data for each frequency band and wavelet coefficient type. Clustering is run on groups of wavelet vectors separated by frequency band and wavelet coefficient type to form cluster groups. This means that each data point will be grouped with other data points that share similar temporal activity in a particular frequency band and wavelet category.. An example of the different clustering that can take place in data is shown in Fig. 2 , which from a 6,000 time-step series of two meter atmospheric temperature data of the world. The rendered image for the entire data is shown in Fig. 2a, colored by the values of the first time step out of the series. The data was wavelet transformed, and then, clustering was performed separately in each frequency band and wavelet coefficient type. The clusters shown in the example are from a low-frequency band, showing 3,000 time-step trends or showing the trends in the first and second half of the data.. Figs. 2b and 2c shows two different clusters based from clustering the low wavelet coefficients, one cluster of a hightemperature area, and one cluster of a low-temperature area.. Figs. 2d and 2e shows two groups based on clustering the high wavelet coefficients. Fig. 2d shows data points of decreasing temperature, followed by an even greater decrease in temperature. Fig. 2e is a cluster of data points that has an increase in temperature, followed by an decrease in temperature. A second example of classification or separation of data points by temporal clustering can be seen in Fig. 3 using two variables of a combustion data set. The image shows all of the temporal clusters found in the data, and the data is colored by the temporal cluster.. The data point clusters are shown to the user in a spreadsheet format [17] , with the centroid curve and thumbnail volume rendering of the data in the cluster. This is the primary user interface that displays all of the time trends present in the data and allows the user to select the clusters she wishes to explore for visualization. Data cells are organized by frequency band and wavelet category and sorted by derived properties such as cluster distance or population overlap on cell selection. Spreadsheet cells can then be filtered by centroid similarity or spatial overlap to reduce the data complexity and increase the summarization Shows a clustering of a high temperature, which is near the equator, and a low-temperature clustering, which is near the North Pole and waters around Antarctica. (d) and (e) Shows two clusters of high wavelet coefficients in the same frequency band. The cluster on the (d) has a decrease in temperature followed by an even greater decrease, and the cluster in (e) has an initial rise in temperature followed by a dip. of the time series data. A small spreadsheet is shown in Fig. 4 . This spreadsheet shows all of the low wavelet coefficient clusters in the frequency band that represents 15.25 time-step trends for a 122 time-step data set.. Upon cell selection, the cluster is placed on a detail spreadsheet, displaying all of the wavelet coefficients at different time scale of the selected cluster, along with other selected clusters. The wavelet coefficients in a cluster are rendered in the form of the time histogram [16] . A time histogram is a compact representation of a series of histograms over time. A histogram for one time step is represented by a vertical strip that spans the value range of the data points, with each bucket rasterized as a rectangular area with the bucket count displayed with color or intensity. The horizontal axis represents time. Fig. 5 shows an example of one time histogram cell from a series of time histograms for a cluster. The time histogram is able to display the value distribution and variance of the different data points over time in a cluster, for each wavelet type and frequency band. This allows the user to have a better understanding of data contained within each cluster and to compare the data with other cluster's time histograms.. The user can further refine the data point selection in a cluster to direct the exploration process. We allow the user to brush and link [4] , [25] over the time histogram plots to make selections. She can filter data points by time curves and trends, as seen in Fig. 6 . Fig. 6 shows several time histogram views of the same set of data, where the user has brushed a selection in one time histogram. She can see the results of her brushing in the other time histograms of the same set of data but at different temporal scales of activity and wavelet coefficient types. Additionally, the user can make selection through value ranges via dynamic transfer function painting [1] , [2] . The spatial combination of selected data points is accomplished through Boolean operations or operators over time [29] , [30] , [31] . To make trends more visible in animation, we allow the user to create visualizations that dynamically rescale the animation speed based upon the data trend.

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


An Efficient Approach for the Rank Aggregation Problem This paper presents some computational properties of the Rank-Distance, a measure of similarity between partial rankings. We show how this distance generalizes the Spearman footrule distance, preserving its good computational complexity: the Rank-Distance between two partial rankings can be computed in linear time, and the rank aggregation problem can be solved in polynomial time. Further, we present a generalization of the Rank-Distance to strings, which permits to solve the median string problem in polynomial time. This appears rather surprising to us given the fact that for non-trivial string distances, such as Edit-Distance, this problem is NP-Hard. A ranking is an ordered list of objects. Every ranking can be viewed as being produced by applying an ordering criterion to a given set of objects. The situation of ordering several objects, and, consequently, obtaining a ranking is encountered in many situations: an electoral process, where the ordering criterion between the candidates is straightforward, a football tournament, where the criterion is the number of points obtained by each team at the end of the tournament, etc. In all the above situations, the ordering criterion is unique. However, this is not the general case; to support this we mention situations like selecting documents based on multiple criteria, building search engines for the WEB [7] , finding the author of a given text [5] . In most of such cases, the widely applied scenario is the following: first, objects under consideration are ordered according to several different given criteria and second, one looks for a ranking that is as close as possible to -or, in a broader sense, combines -the rankings obtained in the first step. This is a typical instance of the so-called: rank aggregation problem.. Our approach to solve this problem is based on computing the desired ranking using distance (or similarity) measures between rankings. The outline of this approach is simple: first, we are given the rankings which are to be combined, provided by the initial criteria (note that some of these rankings can be identical, hence we actually deal with a multiset of rankings). Second, we define a distance between a pair of rankings, and finally, the ranking that minimizes the sum of the distances from this ranking to all the given rankings is returned as the output of the rank aggregation problem. This ranking is called an aggregation of the multiset of initial rankings. If the problem is viewed from a geometric (in a very loose sense) point of view, the aggregation of a multiset of rankings can be seen as the geometrical median of that set; this is the reason for which the aggregations are also called median rankings.. Two questions are to be address in the approach we presented above: how to define the distance between rankings, and, what algorithm is applied to compute efficiently the aggregation? The rest of the paper presents possible answers to these two questions. In the next section we present the most popular distance measures for rankings, then we define a new distance between rankings (by generalizing a classical one, namely the Spearman footrule). Afterwards, we propose an algorithm for computing the aggregation of a multiset of rankings, and discuss its complexity. Further, we describe how this distance can be extended to strings, and how the rank aggregation problem is transformed into the median string problem.

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


Theoretical Cryptanalysis of the Klimov-Shamir Number Generator TF-1 Abstract. The internal state of the Klimov-Shamir number generator TF-1 consists of four words of size w bits each, whereas its intended strength is 2 2w . We exploit an asymmetry in its output function to show that the internal state can be recovered after having 2 w outputs, using 2 1.5w operations. For w = 32 the attack is practical, but for their recommended w = 64 it is only of theoretical interest.

O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Insensitivity in processor-sharing networks We consider an open network of processor-sharing nodes with state-dependent service capacities, i.e., the speed of each node may depend on the number of customers at any node. We demonstrate that the stationary distribution of the network state is insensitive to the distribution of service times if and only if the service capacities are balanced, i.e., the considered network is a Whittle network. The stationary distribution then has a closed-form expression and the expected sojourn time of a customer at any node is proportional to its required quantity of service. These results are extended to the cases of closed networks and state-dependent arrival rates and routing. Two simple examples illustrate the practical interest of these results in the context of communication networks.

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


Nonlinearities in Stereoscopic Phase-Differencing Abstract-Exploiting the quasi-linear relationship between local phase and disparity, phase-differencing registration algorithms provide a fast, powerful means for disparity estimation. Unfortunately, these phase-differencing techniques suffer a significant impediment: phase nonlinearities. In regions of phase nonlinearity, the signals under consideration possess properties that invalidate the use of phase for disparity estimation. This paper uses the amenable properties of Gaussian white noise images to analytically quantify these properties. The improved understanding gained from this analysis enables us to better understand current methodologies for detecting regions of phase instability. Most importantly, we introduce a new, more effective means for identifying these regions based on the second derivative of phase. A S an alternative to typical feature based algorithms, phase-based techniques, such as phase-differencing, have proven to be a powerful means for stereo image correspondence [1] - [15] . These techniques can produce disparity maps to sub-pixel accuracy, without requiring explicit sub-pixel reconstruction. Since relevant phase information is available at any point in the image, not only at specific tokens as in feature based methods [8] , [16] , phase-based methods yield dense disparity maps. Additionally, phase is relatively insensitive to typical interimage differences such as lighting, shadows, and noise [17] . Unfortunately, phase-differencing techniques suffer from a significant impediment: phase nonlinearities.. The premise behind phase-differencing methods originates in the Fourier shift theorem, which states that the Fourier transforms of two signals related by a global shift are themselves identical up to a phase difference equal to the frequency times the shift. This linear relationship makes it possible to immediately recover this shift or disparity at any frequency (that is present in the signal) by simply dividing the phase difference by the frequency. Unfortunately, stereo images are not related by a global shift, but instead, are better modeled by many local shifts. Consequently, the generation of accurate disparity maps requires a spatially localized estimate of the phase. Such localization is often accomplished by windowing the complex exponential function. The introduction of this windowing funcManuscript received August 17, 2006 ; revised May 21, 2008 . Published August 13, 2008 (projected) . This work was supported in part by the National Science Foundation under Grant 0427372. The associate editor coordinating the review of this manuscript and approving it for publication was Dr. Hassan tion disrupts the simple, linear relation between phase and disparity. In order to successfully apply phase-differencing to a pair of stereo images it is necessary to completely understand these disruptive effects. Perhaps the most comprehensive paper in this direction is [18] . Here, Fleet et al. models images as 1-D Gaussian white noise processes and derives bounds for the expected mean phase difference and absolute mean phase difference under the operations of translation and dilation. In [19] , Cai considers the instability of localized phase from the viewpoint that registration by phase-differencing can be considered as a type of Newton iteration. He points out that the instability of phase measurements in certain regions violates the criteria necessary for convergence. A key to successfully applying phase-differencing stereo reconstruction algorithms lies in the identification of regions of phase instability, i.e., the portions of signals that possess specific properties that invalidate the use of phase for disparity estimation. Several papers address this issue [10] , [18] , [20] , [21] , focusing primarily on the same two means for instability detection. Though these techniques have been shown to be empirically successful, their foundations are somewhat heuristic and their efficacy has never been fully examined analytically.. One intent of this work is to supplement the existing literature by filling in some important gaps in the current understanding of localized phase for disparity estimation. Modeling the images as Gaussian white noise processes, we analytically quantify the behavior of the the first and second derivatives of local phase. The first derivative describes the linear relation between phase and disparity. The second derivative provides valuable information about the nonlinearity of localized phase. We demonstrate that the current methods for identifying regions of instability are simply approximations of the second derivative. Finally, we use the information inherent in the second derivative to create a new, more effective means for detecting these regions of nonlinearity. In this paper, we were able to derive probability density functions for the components of both the first and second derivatives of localized phase. We quantified the effects on these pdfs caused by constraining their domains to regions of linear phase. In order to identify these regions, we proposed using the second derivative of phase. We then described how prevalent methods proposed in the literature can be seen as approximations of the second derivative. We empirically validated these assertions and their extensibility by comparing the different methods on white noise, a natural scene, and a random-dot stereo pair.. Undoubtedly, local phase is a powerful means for recovering the disparity relating two different signals. Unfortunately, we lack a rigorous mathematical and intuitive framework for truly understanding it. At times, however, there are works such as [18] that expand our knowledge base and improve our insight into its machinations. In this paper we have reexamined many of the current perceptions and paradigms associated with phase nonlinearity and have reformulated them in terms of something with which we are very familiar: the second derivative. Additionally, we have verified this interpretation by demonstrating its efficacy in detecting regions in which phase measurements break down.

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


Low-power architectures for compressed domain video coding co-processor Abstract-Low power as a de facto is one of the most important criteria for many signal-processing system designs, particularly in multimedia cellular applications and multimedia system on chip design. There have been many approaches to achieve this design goal at many different implementation levels ranging from very-large-scale-integration fabrication technology to system design. In this paper, the multirate low-power design technique will be used along with other methods such as look-ahead, pipelining in designing cost-effective low-power architectures of compressed domain video coding co-processor. Our emphasis is on optimizing power consumption by minimizing computational units along the data path. We demonstrate both low-power and high-speed can be accomplished at algorithm/architecture level. Based on the calculation and simulation results, the design can achieve significant power savings in the range of 60%-80% or speedup factor of two at the needs of users. Anticipating the future trend of running multimedia applications on the portable personal devices, we propose the cost-effective low-power/high-speed co-processor architectures for video coding systems. Unlike the low-power video codec design using the costly advanced deep submicron fabrication technology, our low-power design is achieved at the algorithmic/architectural levels. Our emphasis is on optimizing power consumption by minimizing computational units along the data path. Compared with other approaches, our algorithmic/architectural low-power approach is one of the most economical ways to save power. Techniques such as look-ahead, multirate, pipelining have been used in our design. Based on the calculation and simulation results, our power saving is in the range of 60%-80% or speed-up factor of two at the needs of users.

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