Evaluating a Tool for Improving Accessibility to Charts and Graphs This article reports a case study of the iterative design and evaluation of a natural language-driven assistive technology, iGraph-LITE, providing people who are blind access to line graphs. Two laboratory-based usability studies involving blind and sighted people are presented with a discussion of the ensuing implementation of changes. Blind participants were found to adopt different graph interrogation strategies than sighted participants. A small field study is then reported in which a blind user who works with graphs took part to determine the degree to which the iGraph-LITE commands would meet the needs of blind graph experts. The final study invited sighted graph experts and novices to visually inspect and explain a set of line graphs comparable to those used in the usability studies. It aimed to highlight the concepts and the range of words sighted people use, to ascertain the appropriateness of the iGraph-LITE lexicon. A set of preliminary guidelines is presented. In order to take advantage of the human ability to identify visual patterns [Bertin 1983; Larkin and Simon 1987] , numerical datasets are often represented visually in the form of graphs and charts [Tufte 2001 ]. These graphical aids are a common means of representing numerical data for both exploration of new hypotheses, in the case of newly collected experimental data for instance, and mass consumption, as in the case of a line graph showing the "Increase of soybean production between 2000-2013" in a nonspecialized newspaper. A large number of graphs are published every year. For. Evaluating a Tool for Improving Accessibility to Charts and Graphs 28:3 information, highlighting salient features of the data and are difficult to work with for graphs other than simple line graphs (see also Kildal and Brewster [2007] and Ferres et al. [2007b] ).. Studies evaluating hybrid systems are much harder to come by in the literature. In their study using sonification, haptics and simple speech, Kildal and Brewster [2006] claim that graph users were able to rely on their tactile sense to judge the position of a stylus in relation to the borders of a tablet on which tabular data was presented (notice that tabular data omit important visual information like graph type, which can be meaningful). A click was emitted when the stylus was moved from one cell to the next, and numbers in the cells were spoken. The authors claim that the cognitive workload was lower in the sonification mode than in the speech mode, but they do not reveal how workload was assessed, nor whether it was the same for graphs.. In contrast, in another study in which participants explored bar graphs to answer certain questions, Wall and Brewster [2006] used a mixture of speech and sonification feedback together with two tactile 4×4 pin-arrays on a VTPlayer tactile mouse and a stylus. Data sonification occurred in response to stylus button clicks, with a MIDI piano note playing the proportional value of data for each bar. This allowed the user to obtain a quick auditory overview of the graph that, in turn, could be used to direct their querying of specific data values further. The authors conclude that the point-and-click metaphor is an improvement over the sequential nature of speech.. The touch-sensitive Talking Tactile Tablet (T3) of Wells and Landau [2003] provides speech output. Interestingly, despite the obvious disadvantage of speech -auditory perception is serial and hence imposes a greater cognitive load on a person's processing capability -all participants much preferred the speech feedback, using sonification only rarely. Speech was also preferred (and led to considerably shorter task-completion times) in Evreinova et al. [2008] 's within-subject study. In their report, sighted users explored simple hidden 2D line drawings with Directional-Predictive Sound (DPS) and Directional-Predictive Vibrations (DPV) devices providing the feedback. The experiential advantage of processing spoken words relative to sonification and reliance on tactile stimuli may well have overshadowed the potential benefits these alternatives have to offer. It is plausible to argue that a mixture of sonification and speech output could eventually provide a powerful platform for supporting the processing of visual information. Brown and Brewster [2003] 's binaural presentation of two-line graphs whereby data contained in each of the two series are separately presented to the left and right ears suggests that this is a possibility worth exploring.. The purpose of our work, however, was to empirically evaluate the degree to which an NLI may facilitate the auditory processing of visual graph data. We have chosen the language modality because it has been used to greater success in summarizing and communicating information about graphs than sonification and haptics, but evaluation as an Assistive Technology with blind computer users has been lacking. There are a number of systems that are relevant for our present purposes and that have inspired iGraph-LITE to a large extent. Most of this work falls into one of three categories: summarization of time-series data, multimodal presentation of text and graphs, and the automatic identification of a graph's communicative purpose. The latter developed as an assistive technology, and is thus of particular interest here.. The idea of using language to summarize and communicate information about numerical data dates back at least as far as the early 1980s [Kukich 1983 ]. To date, data-to-text (D2T) systems have been successfully fielded in areas as diverse as turbine sensor summarization ], weather forecasting [Reiter et al. 2005; Sripada et al. 2003 Sripada et al. , 2004 Turner et al. 2006] , medical technologies [Portet et al. 2007 ], stock exchange summarization [Dale 2002] , and dive data summarization [Sripada and Gao 2007] among others. NLG systems that provide summarizations of large time-series databases such as these are perhaps one of the most thoroughly studied applications of NLG technology with generally agreed architectures based on a "pipeline"-based processing of different intermediate representations (See Reiter and Dale [2000] , Reiter [2007] , and Ferres et al. [2007b] for a good overview of current D2T systems and Kerpedjiev [1995] for a review of earlier systems). However, one of the problems with current adoption of D2T NLG architectures as Assistive Technologies (ATs), and possibly in general, is that they are not interactive and produce a single static text for an entire description all at once. Such descriptions may be long and hard for users to parse and comprehend. Furthermore, in the case of assistive technologies just summarizing the graph is not enough [Ferres et al. 2006] , and an interface is required to facilitate exploration of the information space.. Systems in the category of multimodal presentation of text and graphs take advantage of the different, and often complementary, properties of graphical and linguistic media to produce one single multimodal document. A few systems are noteworthy in this category: POSTGRAPHE Lapalme 1996, 2000] , the CAPTION GENERATION SYSTEM [Mittal et al. 1998 ] and the different versions of AUTOBRIEF [Kerpedjiev et al. 1997] , summarized in Green et al. [2004] . All these systems have contributed greatly to our understanding that graphs are complex representational objects [Roth et al. 1991] , that authors' intentions play a major role in the graph generation process [Corio and Lapalme 1999] , and the importance of the synergy between texts and graphs [Corio and Lapalme 1998; Law et al. 2005] . Genetically, the NLG side of these systems are also captured by the high-level architecture of Reiter [2007] . These systems generate static reports (or captions), but part of the input to these systems consists of the author's intentions at the time of generating reports containing graphs and texts, which allows the technology to provide some interpretation of the data. As ATs, these systems are more informative than those merely summarizing numerical data mainly because the generated texts explain and describe the generated graphs, however, these are still are summarizations and the quality of the interpretation is heavily dependent on the graph author. This approach is fine for these systems because their main audience is sighted people, but they fall short as ATs providing accessibility to graphs. Both the systems described here and those described in the previous paragraph also have the drawback that the texts they produce would only make sense if the user were looking at the graph while reading the text. The objective of iGraph-LITE is to provide access to graphs when users cannot look at these graph.. Systems that automatically identify a graphs communicative purpose, which in general are designed specifically to be ATs, are of particular interest here. To the best of our knowledge, only two previous systems, seem to exist that aim to fulfill this AT goal: the system described in Kurze [1995] , 5 and the SIGHT system [Chester and Elzer 2005; Elzer et al. 2007] . Two important contributions of the SIGHT system is that it takes graphs as raster images (jpg, gif) as input and tries to automatically extract the communicative purpose of the graph using a Bayesian network. Previous systems either suggest an appropriate graph given the author's intention explicitly, or they suggest the intention itself, given the available data. We believe the most interesting contribution of this work is that of making the system available through (JAWS 6 ), a widely adopted screen reader, which adds a small element of interactivity to the system. iGraph-LITE itself was inspired by screen-reading interfaces. Unfortunately, SIGHT suffers from the same drawback as other systems. In spite of its potential for being interactive, it is not: SIGHT still generates a static text describing the intention of the graph's author, accessed by a keyboard command in JAWS. Our hypothesis is that the system could have been made much more interactive by accessing other messages left out of the initial summarization of purpose. We hope to provide a system that extends SIGHT in this respect, building a more interactive AT NLG system while still respecting the theoretical underpinnings discussed in Reiter [2007] .. Finally, perhaps a word should be said about screen-readers. These technologies are the most widely adopted interface to digital information by blind and visually-impaired people. Their interactive paradigm is simple, but efficient: key combinations access different parts of the informational space, such as a website, with messages read aloud by a TTS engine. The problem with screen-readers as they exist today is that they perform little computation on what they read, instead mostly reading just the raw text from text-boxes, buttons, menus, etc.. Once again, our purpose in this paper is to evaluate a complex NLI to graphs that makes use a history of natural language description of graphs. If our results are positive, then blind and visually impaired users will be able use iGraph-LITE with standard office equipment and not require additional devices, such as embossing printers, or assistance from others to interpret line graphs. It could offer user independence as well as the ability to obtain any information contained in the graph, including each data point within a complex graph, which is not possible with sonification.. This article thus reports the careful design and user-based evaluation of iGraph-LITE, a novel Assistive Technology (AT) designed to help blind and visually impaired individuals interact with graphical representations of line graphs using natural language through key commands and a Text-To-Speech (TTS) engine. The remainder of the paper is organized as follows. First, we present a preliminary study designed to address the kinds of questions people who are blind may ask of graphs, and the vocabulary that trained statisticians use spontaneously to explain simple graphs, as well as the words visually impaired users will understand. That study formed the basis for iGraph-LITE's lexicon. Next, we describe the general architecture of iGraph-LITE, followed by the implementation of its navigation module. This is followed by two formative usability studies testing the original, and then the improved, version of the tool that incorporated the lessons learned from the first usability study. A small field test of the tool is then presented that aimed to determine how well iGraph-LITE would match the needs of blind users working with graphs in their job. The final study tested the vocabulary that sighted graph experts and novices use when describing and explaining line graphs to someone else; none of these participants were formally trained statisticians. A set of recommendations based on lessons learned in all the studies are described in the final discussion and conclusions.. To the best of our knowledge, this is the most comprehensive empirical study to date of people who are blind interacting with graphs through natural language. The stimuli and materials used, including the iGraph-LITE navigator versions that were current at the time of the studies and the datasets, are freely available in the hopes that other researchers might find them useful for replication and extension. 7 Several important observations are worth discussing. First, the presentation of a graph description in a systematic, predictable format enabled the construction of a mental representation of it. Second, the sequence in which the statistician provided information in the descriptions in Session 2 closely resembled that in which participants requested information in Session 1. It was therefore adopted for iGraph-LITE. However, it was also apparent that participants were unable to construct a complete and accurate model of the graph from the statistician's descriptions alone. In order to refine their emerging mental models, they needed to ask follow-up questions, suggesting that the iGraph-LITE tool would need to allow users to interrogate graphs in addition to providing a static description of each graph. Finally, the importance of the vocabulary chosen to describe a graph was highlighted. Taken together, these results underscore the importance of using appropriate language and provide information in a specific order when describing graphs that cannot be seen. The results were analyzed in several ways. First, the graph characteristics participants mentioned that were also contained in the iGraph-LITE description and command set were determined. Second, the frequency with which these were noted was ascertained for each of the three participant-groups to uncover potential and systematic differences between novices and experts and between people representing different disciplines. Finally, the vocabulary used to describe various aspects of the test graphs was noted.. Graph explanations were transcribed ad verbatim to identify items of information that corresponded with iGraph-LITE's lexicon. Due to occasional technical glitches, recordings could not be retrieved for 10 of the 624 explanations, leaving a sample of 614 for the analysis. Since participants were able to see the to-be-explained graphs, some of the commands offered by iGraph-LITE were not relevant here. For example, commands used to "increase the speed of speech" and to "move one point right with only point value given" could not be assessed. Table VII outlines the nine characteristics identified in the analysis that are also contained in iGraph-LITE.. The frequency of occurrence of these was noted as shown in Figure 5 . Each item was only counted once per participant per graph even if a given utterance was repeated in an explanation. Due to the missing data, the figure shows percentages rather than raw numbers.. -Graph Title. Business and psychology experts provided the graph title for almost every graph (n = 144/158 = 91% and n = 158/176 = 90%, respectively), whereas novices only did so in 36% (n = 82/226) of the graphs. When the graph title was paraphrased, it was coded as a summary. This was true for 38% (n = 54/144) of business experts' explanations, for 34% (n = 53/158) of psychology experts, and for 63% (n = 52/82) of novices' explanations. However, novices' summaries were incorrect in 23% (n = 12/52) of the cases. Novices' summaries omitted pertinent information included in the title, and their attempts to paraphrase changed the meaning of the graph in some way. For business experts, the title was the first item of information in all but two instances (n = 142/144 = 99%), for psychology experts it was first in 95% (n = 150/158) of all instances, and for novices, in 34% (n = 28/82) of all instances. -Axis Labels. Business experts gave axis labels (scale and Unit in Figure 5 ) in 42%. (n = 67/158) of the cases; psychology experts in 26% (n = 45/176) of cases, and novices in 20% (n = 46/226). Generally, these were mentioned immediately after the graph title. Business experts referred to the axes as "X-Axis" and "Y-Axis" three times more often than calling them "horizontal axis" and "vertical axis", whereas psychology experts always referred to the axes as X-and Y-axes. -Comparisons and Point Specific Information. Comparisons of data points showed that participants occasionally discussed a particular data point in relation to another, for example, "... increased from 2005 to 2006", and at other times they noted point-specific data, for example, "low percentage in 2005". Business experts discussed both comparisons and point-specific explanations in 76% (n = 120/158) of the cases. Interestingly, psychology experts dwelled on point specific information far more often than providing comparisons of the data points. Psychology experts provided point-specific information for 97% (n = 170/176) of all graphs and data comparisons in 77% (n = 135/176) of the cases. Novices provided point-specific information only in 53% (n = 119/226) of the time, relying more on comparisons, which they provided 78% (n = 176/226) of the time, slightly more than the experts. -Highest/Lowest Points. Lowest and highest points were rarely mentioned at all.. -Beginning/End Information. Beginning and end points of the graph were coded when they were specifically referred to, for example, as in "initially India had a low percentage in the first year, but ended up high in the last year". They were not coded if these points were mentioned more generally, for example, "India started low, increased in the next year, and increased again in the final year". The former shows how iGraph-LITE's Beginning a and End f commands could be implemented. Generic descriptions would not benefit from using the a / f commands but would be classified as a comparison between data points. As Figure 5 shows, these were also mentioned very rarely.. All the nine types of data that corresponded to iGraph-LITE commands were thus mentioned by all three participant-groups, although the frequency of occurrence varied substantially both between groups and for the various data types. Apparently, sighted and visually impaired experts seem to agree on the importance of the graph title, information about the graph axes, and the data points, as well at as on the sequence in which to report these. 2.1.1. Participants. Two sighted statisticians and three legally, noncongenitally blind participants (2 male, 1 female) with limited or no residual vision were recruited via word of mouth. All five participants were Statistics Canada employees who encountered graphs regularly at work. To read graphs, the visually impaired participants relied either on screen readers rendering the raw data tables from which the graph was generated, decomposing the numbers in the accompanying data tables, or else they asked colleagues for help. One of the sighted statisticians took part in the first session and the other in the second session in order to obtain a wide, yet precise, vocabulary as possible. Two researchers were present: one acted as a facilitator, the other observed and took notes throughout. The statisticians were editors of Statistics Canada's The Daily bulletin; the three visually impaired participants were all avid readers of The Daily. All volunteered their services, receiving no compensation for participation in the study. The two sessions took place in the Human-Oriented Technology Lab (HOTLab) at Carleton University, Ottawa, Canada. Each session took approximately 1.5 hours.. 5.1.1. Participants. Ten legally blind (4 congenital, 6 noncongenital; five males, five females; mean age = 35.5) and ten sighted people (five males, five females; mean age = 32.8), were recruited from existing contacts and through Carleton University's Paul Menton Centre for students with special needs. All participants reported having used at least two types of graphs (e.g., line, bar, scatter, pie, etc.) in the past. They were tested individually in sessions lasting approximately one hour in a laboratory or in a quiet place convenient to the participant. Participants were offered $20 for their participation. Throughout the experiment, key presses were automatically time-stamped via iGraph-LITE's key-logging capability. Response time was calculated as the time difference between the start of a question and the end of the answer to it. The number of commands used was analyzed from the key logging, and performance was assessed by the number of correct answers to the experimental questions. The number of commands used to answer each question was also calculated..

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


A Survey of Automated Techniques for Formal Software Verification Abstract-The quality and the correctness of software are often the greatest concern in electronic systems. Formal verification tools can provide a guarantee that a design is free of specific flaws. This paper surveys algorithms that perform automatic static analysis of software to detect programming errors or prove their absence. The three techniques considered are static analysis with abstract domains, model checking, and bounded model checking. A short tutorial on these techniques is provided, highlighting their differences when applied to practical problems. This paper also surveys tools implementing these techniques and describes their merits and shortcomings.Index Terms-Bounded model checking (BMC), model checking, predicate abstraction, software verification, static analysis.

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


Relay selection protocols for relay-assisted free-space optical systems We investigate transmission protocols for relayassisted free-space optical (FSO) systems, when multiple parallel relays are employed and there is no direct link between the source and the destination. As alternatives to all-active FSO relaying, where all the available relays transmit concurrently, we propose schemes that select only a single relay to participate in the communication between the source and the destination in each transmission slot. The selection is based on the channel state information obtained either from all or from the last used FSO links. Thus, the need for synchronization of the relays' transmissions is avoided, while the slowly varying nature of the atmospheric channel is exploited. For the considered relay selection and all-active relaying schemes, novel closed-form expressions for the outage performance are derived, assuming the versatile Gamma-Gamma channel model. In addition, based on the derived analytical results, the problem of optimizing the optical power resources of the FSO links is addressed. Optimal and more computationally attractive suboptimal solutions are proposed that lead to a power efficient system design. Numerical results for equal and non-equal length FSO links illustrate the merits of the proposed relay selection protocols compared to the all-active scheme and demonstrate the significant power savings offered by the proposed power allocation schemes. We investigated several transmission protocols for cooperative FSO systems for the Gamma-Gamma channel model. Alternative protocols to the all-active relaying scheme were proposed, which activate only a single relay in each transmission slot. This offers considerable benefits in terms of implementation complexity, since it avoids the need to synchronize the transmissions of multiple relays. In particular, two different types of relay selection protocol were proposed: select-max and DSS. Select-max relaying offers significant performance gains compared to the all-active scheme at the expense of requiring the CSI of all the available links. DSS relaying has identical performance to select-max relaying for N = 2, but it does not offer performance gains when N > 2, since it exploits only the two relays with the minimum max-equivalent distance; however, it can be considered as a less complex alternative to select-max, due to its limited CSI requirements. Furthermore, the problem of allocating the power resources to the FSO links was addressed, in order to account for the distance-dependent nature of atmospheric effects, and optimal and more computationally attractive suboptimal solutions were derived for each considered relaying protocol. Numerical results were provided, which clearly demonstrated the improvements in power efficiency offered by the proposed power allocation schemes.

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


A compliance based design problem of structures under multiple load cases In this paper, we introduce the "envelope strain energy" problem where we minimize the volume integral of the worst case strain energy of each point of the structure. We also prove that in the case of sizing optimization of statically nonindeterminate 2 trusses, this compliance method gives the same optimal design as the stress based design method. Consider a structure made of linearly elastic material.. Depending on the objective function and constraints, two popular problems of finding the optimal design are (a) the minimization of the weight of the structure under stress constraints -usually the yield restriction, (b) the minimization of compliance i.e. the work of the external loads. For sizing optimization of trusses, interesting simplifications occur for the single loading case. It has been proved that the optimal layout is the same for both problems (a) and (b). Note, however, that the cross sectional areas (apart from non-negativity). should not be constrained.This is discussed in detail by Achtziger (1992 Achtziger ( , 1996 .. For multiple load cases an arising issue for the compliance methods, is which energy quantity should be the objective function. There are two types of compliance methods; the weighted average compliance method and the worst-case compliance. By using very simple examples (Figure 1 ), Rozvany (2001b) proved that in truss optimization, these compliance methods lead to different optimal layouts when compared to that obtained from stress constrained problem. Moreover, the results are awkward from the aspect of stiffness. E.g. in the case of the structure of Fig. 1b the bar which is subjected to a four times higher load would be expected to have a four times greater cross sectional area than the other bar.. The purpose of this note is to propose a new type of compliance-based objective function for the design of structures, namely the envelope strain energy method.. We minimize the integral of the highest strain energy density at every point of a structure. We show that if a truss is statically non-indeterminate, the suggested problem coincides with that of the minimization of the volume under stress constraints. Therefore, this compliance when used as an objective, overcomes the problems raised by the bench-marks of Rozvany (2001b) .. The general case of trusses is also discussed.. 2 The general form of the envelope strain energy problem Consider a structure V whose optimality depends on the definition of the geometry and material parameters χ. Assume also that the structure is subjected to arbitrarily varying load fields P (t) within a load domain L, where t is a pseudo-time parameter. According to the proposed envelope strain energy method, the following problem has to be solved:. where σ, ε and u are the stresses, strains and displacements respectively. Also C ijkl is the elasticity tensor, S eq is the set of stresses which can carry the loads, X is the set of constraints to which the parameters χ are subjected (including the volume constraint).. In the worst-case compliance, the problem will have the form min max. s.t. the same constraints as in (1). (2) This is different from (1) where the maximum is taken from point to point, whereas in (2) it is taken over the volume integral. The envelope strain energy as an objective function in structural optimization is proposed for the first time.. This compliance is believed to be able to give more plausible optimal layouts as the objective function takes into account the influence of all load cases. For the case of sizing optimization of trusses, it has been proved that at least for statically non-indeterminate trusses, the optimal layout would be similar to the one of the stress constrained problem. Therefore, this compliance overcomes the problems raised by the bench-marks of Rozvany (2001b) .. The resulting numerical optimization problem is complicated as it is non-convex. Whether this problem could Fig. 1 The two examples from Rozvany (2001b) . The structures are subjected to alternate loading. In both examples the two bars have the same properties (Young's modulus, yield strength and length). The envelope strain energy method results in similar optimal layouts to the stress constrained method. According to Rozvany (2001b) , for the structure (a) the weighted average compliance results to ξ 1 = 0586V and ξ 2 = 0.414V . For the structure (b) the worst-case compliance results to ξ 1 = 0.0588V and ξ 2 = 0.9412V . The worst case compliance is a lower bound of the envelope strain energy. Their values will coincide if in all points of the structure, the highest strain energy is caused for the same load case.. Regarding sizing optimization of trusses; as we can see e.g., in Ben-Tal and Nemirovski (2001) or Bendsøe (1995) , the compliance problems (single loading, worst case compliance and weighted average compliance) are initially non-convex. However after some manipulation they can be transformed into convex ones. An interesting alternative is the use of the complementary energy as given by Bendsøe (1995) . In this case we only express the equilibrium in terms of stress. The equilibrium in terms of displacements and stiffness matrix arises after applying the Karush-Kuhn-Tucker conditions. However this does not occur if we try to minimize the envelope of complementary energy subjected to the equilibrium constraints in terms of axial forces.. Physically, the problem of the envelope strain energy takes into account all the load cases both in the objective function and the constraints. On the other hand the problem of the worst-case compliance results in a layout which is optimal only for the worst case.. This means that the structure will not be optimal if other load cases are applied.

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


Quantum algorithms using the curvelet transform The curvelet transform is a directional wavelet transform over R n , which is used to analyze functions that have singularities along smooth surfaces (Candès and Donoho, 2002) . I demonstrate how this can lead to new quantum algorithms. I give an efficient implementation of a quantum curvelet transform, together with two applications: a single-shot measurement procedure for approximately finding the center of a ball in R n , given a quantum-sample over the ball; and, a quantum algorithm for finding the center of a radial function over R n , given oracle access to the function. I conjecture that these algorithms succeed with constant probability, using one quantum-sample and O(1) oracle queries, respectively, independent of the dimension n -this can be interpreted as a quantum speed-up. To support this conjecture, I prove rigorous bounds on the distribution of probability mass for the continuous curvelet transform. This shows that the above algorithms work in an idealized "continuous" model. One of the most remarkable demonstrations of the power of a quantum computer is Shor's algorithm for factoring and discrete logarithms [25] . This has motivated many researchers to try to generalize its key components-the quantum Fourier transform over ZN , and the algorithm for period-finding-to solve other problems [13] . In particular, this motivated the study of the quantum Fourier transform and the hidden subgroup problem (HSP) on non-Abelian groups, as a route to solving certain lattice problems and the graph isomorphism problem [23, 3, 24] .. In this paper we study a different generalization of the Fourier transform, namely the curvelet transform over R n [10] . This is a kind of "directional" wavelet transform, which can resolve features over the spatial and frequency domains simultaneously. A curvelet basis function resembles a wavepacket, with high-frequency oscillations in one direction (like a plane wave e i k· x , as in the Fourier transform on R n ), but which is also supported on a small region of space (unlike the plane wave). We show that this leads to fast quantum algorithms for some new classes of problems, outside the framework of the HSP. To the best of our knowledge, this is the first attempt to design quantum algorithms based on the curvelet transform.. Intuitively, the curvelet transform is helpful in analyzing functions on R n that are discontinuous along (n − 1)-dimensional surfaces. If a function f is discontinuous along a surface S, then its curvelet transform Γ f will be "large" at those locations ( b, θ), where b is a point on S and θ is the vector normal to S at b. The set of all such pairs ( b, θ) is called the "wavefront set" of f .. The basic model for a quantum algorithm using the curvelet transform is as follows: first prepare a quantum state x∈R n f ( x)| x , which is a weighted superposition of points in R n ; then apply the quantum curvelet transform, to get the state b, θ Γ f ( b, θ)| b, θ ; and finally measure b and θ. For the time being, we ignore implementation issues, such as how to discretize R n and how to compute the quantum curvelet transform efficiently. The more basic question is whether we can find functions f such that we can prepare the initial state efficiently, and such that a measurement in the "curvelet basis" yields useful information.. One example consists of letting f be the indicator function of a ball in R n . We can efficiently prepare a uniform superposition over points in a ball, using the techniques of [2, 17] . (This is called "quantum-sampling," and it can be done more generally, e.g., for convex bodies.) Then, measuring in the curvelet basis extracts information about the center of the ball.. Another example consists of choosing f to be the indicator function of a spherical shell in R n . This is motivated by the problem of finding the center of a radial function on R n .. Let G be a radial function, centered around some unknown point c. Prepare a uniform superposition over a large region of space, then compute G( x) and measure it; this produces a uniform superposition over one of the level sets of G, which is a spherical shell centered at c. Then, measuring in the curvelet basis extracts information about the location of c. The goal of this paper is to make this intuition precise. We can interpret Γ f as a wavefunction, and we want to show that its probability mass |Γ f | 2 is concentrated near the wavefront set. We can prove this for the continuous curvelet transform, for the two cases of interest, where f is the indicator function of a ball or a spherical shell in R n . In these cases, ( b, θ) is near the wavefront set with high probability. This implies that the line { b + λ θ | λ ∈ R} passes near the center of the ball or spherical shell.. Next, we give an efficient implementation of a quantum curvelet transform. (This is a discrete version of the transform described above, acting on superposition states.) Then we propose polynomial-time quantum algorithms for two problems: (1) given a single quantum-sample over a ball in R n , find the center of the ball, with accuracy ±∆ where ∆ is a constant fraction of the radius of the ball; (2) given oracle access to a radial function f that is centered around some unknown point c ∈ R n , find the point c exactly (i.e., with accuracy ±∆ in time poly(log 1 ∆ ), assuming that the function f fluctuates on sufficiently small scales).. For the first problem, we conjecture that our quantum procedure succeeds with constant probability, while the best classical procedure succeeds with probability that is exponentially small in n. Classically, this problem is hard because the volume of a ball in R n is concentrated near its surface. But this same fact is helpful to the quantum curvelet transform, which works by finding a line normal to the surface of the ball.. For the second problem, we conjecture that our quantum algorithm uses only a constant number of queries, whereas any classical algorithm requires Ω(n) queries. Intuitively, this is because the curvelet transform uses constructive interference to find a direction in R n from just one query. We then prove that these algorithms work in an idealized "continuous" model -this follows from our rigorous results on the continuous curvelet transform. However, we do not have a rigorous analysis of the effects caused by discretization, though we can argue that these should be small.. These examples demonstrate that one can use the curvelet transform to obtain a quantum speed-up. These examples are artificially simple, in order to allow a rigorous analysis. But the underlying idea-using the curvelet transform to find normal vectors to a surface-should work on more complicated geometric objects. We introduced the curvelet transform as a tool for quantum algorithms, and demonstrated how it can solve problems involving geometric objects in R n . We showed that: (1) for functions with radial symmetry, the continuous curvelet transform concentrates probability mass near the wavefront set; (2) a quantum curvelet transform (which is a discrete approximation of the continuous curvelet transform) can be implemented efficiently; (3) this leads to quantum algorithms for approximately finding the center of a ball in R n , given a single quantum-sample state, and for exactly finding the center of a radial function in R n , using O(1) oracle queries.. There are several ways in which these results might be extended. Perhaps one can adapt these quantum algorithms to solve more general problems, like finding the center of an ellipsoid. Perhaps the quantum speed-up can be amplified using a recursive construction, as in [4, 18] .. A general open problem is to understand the behavior of the curvelet transform on more complicated shapes. Can one prove that the probability mass of the curvelet transform is concentrated near the wavefront set, for arbitrary functions on R n ? That would generalize the results of this paper, [10] and [7] . Also, can one rigorously bound the approximation of the continuous curvelet transform by a discrete one?. Another problem is to find new quantum algorithms based on the curvelet transform. For example, can one construct a curvelet transform over F n q , that could help to solve hidden polynomial problems [12] ? Are there quantum states with "wavefront" features, from which the curvelet transform could extract useful information? Some candidates are quantum-sample states over convex polytopes [2, 17] , and states produced by the evolution of a quantum walk.. One might also try to use the output of the curvelet transform in a more sophisticated way. In this paper, we simply measured the output state, and we made very little use of the scale variable a, which measures the "sharpness" of the wavefront discontinuity.

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


Hierarchical Clustering of Self-Organizing Maps for Cloud Classification This paper presents a new method for segmenting multispectral satellite images. The proposed method is unsupervised and consists of two steps. During the rst step the pixels of a learning set are summarized by a set of codebook vectors using a Probabilistic Self-Organizing Map (PSOM, 9]) In a second step the codebook vectors of the map are clustered using Agglomerative Hierarchical Clustering (AHC, 7] ). Each pixel takes the label of its nearest codebook vector. A practical application to Meteosat images illustrates the relevance of our approach. Classi cation of remote sensed imagery is usually supervised. One of the problem with cloud classi cation is the di culty of getting a great number of labeled samples which represent the diversity of all possible situations. As supervised learning uses only labeled samples for determining the classi er parameters and for assessing the classi er performance, it can lead to biased results: some classes may b e not represented or under sampled.. In this paper a fully unsupervised approach is proposed. The method is based on Probabilistics Self-organizing Maps 9, 1] and works in two steps. The rst steps approximates the distribution of the pixels to beclassi ed using a topological map. Hierachical clustering is then used for labeling the neurons of map. Section 3 describes the proposed methodology. A real numerical experiment is proposed in section 4. The last section discusses the limits and possible improvments of our classi er. The neural network based method we h a ve described in this paper works well compare to classical k-means and produce automatically coherent results. The approach makes it very easy to have di erent level of classi cation....

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


Real-time volumetric shadows using 1D min-max mipmaps To compute single scattering in scenes with occluders (left) we compute a depth image from the camera, and a shadow map from the light. After epipolar rectification, each row of the shadow map is a 1D heightfield. We optimize the computation of the scattering integral by using an efficient data structure (a 1D min-max mipmap, center) over this heightfield. This data structure helps compute the scattering integral for all camera rays in parallel. Our method can render complex high-quality scenes with textured lights (right) in real-time (55 FPS).Light scattering in a participating medium is responsible for several important effects we see in the natural world. In the presence of occluders, computing single scattering requires integrating the illumination scattered towards the eye along the camera ray, modulated by the visibility towards the light at each point. Unfortunately, incorporating volumetric shadows into this integral, while maintaining real-time performance, remains challenging.In this paper we present a new real-time algorithm for computing volumetric shadows in single-scattering media on the GPU. This computation requires evaluating the scattering integral over the intersections of camera rays with the shadow map, expressed as a 2D height field. We observe that by applying epipolar rectification to the shadow map, each camera ray only travels through a single row of the shadow map (an epipolar slice), which allows us to find the visible segments by considering only 1D height fields. At the core of our algorithm is the use of an acceleration structure (a 1D minmax mipmap) which allows us to quickly find the lit segments for all pixels in an epipolar slice in parallel. The simplicity of this data structure and its traversal allows for efficient implementation using only pixel shaders on the GPU. In real world scenes, moisture or dust in the air often results in visible volumetric shadows and beams of light (Figure 1 , right) known as "god rays" or "crepuscular rays." Rendering these light scattering effects is often essential for producing compelling virtual scenes. Simulating all scattering events is prohibitively expensive, especially for real-time applications, and approximations are used instead. The "single-scattering" model [Blinn 1982 ] greatly simplifies rendering, while still producing realistic effects. In this model, a light ray travels from a source, and may get scattered into the eye at any point in the participating medium, while attenuating along the path. This simplification has allowed participating media with shadows to make its way into modern computer games. Like a lot of previous work, we further assume that the scattering medium is homogeneously distributed through the scene. This assumption could be relaxed somewhat, as discussed in Section 4.3.. The simplest method for rendering single scattering is ray marching. A ray is cast from the camera eye through each pixel and the scattering integral is approximated by marching along that ray and checking if each sample is lit or shadowed using a shadow map. To generate high-quality images, however, many samples are needed and several methods for accelerating this process have been published in the last couple of years. Our key insight is that we can apply a simple acceleration structure to intersect camera rays with the shadow map, which we treat as a height field. Furthermore, we use epipolar rectification of the shadow map to transform the 2D height field into a collection of independent 1D height fields, one for each epipolar slice. We also use singular value decomposition to approximate the smoothly varying terms of the scattering integral, avoiding an analytical solution and allowing us to support textured lights. Our main contribution is using a simple but fast acceleration structure (a 1D min-max mipmap, Figure 1 , middle) to find the lit segments for all pixels in the image in parallel. This procedure is similar to the work by Baran et al. [2010] ; however, our actual scattering integral computation, which is the key step of the algorithm, is both much simpler to implement and faster on a GPU. We have presented a real-time algorithm for rendering volumetric shadows in single-scattering media. Overall, we achieve a significant speedup or better quality compared to the state of the art. Our key insight was to apply a simple acceleration structure to intersect camera rays with the shadow map, which we treated as a height field. We furthermore used epipolar rectification of the shadow map to reduce the problem of intersecting with a 2D height field to intersecting with 1D height fields. Our main contribution was using a 1D min-max mipmap to find the lit segments for all pixels in the image. This data structure sacrifices the worst-case guarantees provided by Baran et al. [2010] , but its simplicity allows us to better exploit the parallel processing capabilities of the GPU by processing all camera rays simultaneously. We showed that our technique scales well to large shadow map resolutions and, due to good use of the GPU, even to scenarios with highly complex visibility functions. The resulting algorithm is simple to implement and only requires features available on current game consoles. There have been several papers written on solving the singlescattering integral (semi)-analytically [Sun et al. 2005; Pegoraro and Parker 2009; Pegoraro et al. 2010 ], but they necessarily ignore shadowing, which is often required for realism and is the effect on which we concentrate. Other methods, such as volumetric photon mapping [Jensen and Christensen 1998; Jarosz et al. 2008] and line space gathering [Sun et al. 2010 ] compute solutions to more difficult scattering problems, such as volumetric caustics or multiple scattering, but even with GPU acceleration they are far from realtime on complex scenes. Max [1986] described how to compute the single-scattering integral by finding the lit segments on each ray using shadow volumes intersected with epipolar slices. The integral on each lit segment is computed analytically. Epipolar sampling [Engelhardt and Dachsbacher 2010] speeds up ray marching by computing it only at depth discontinuities along image-space epipolar lines. The scattered radiance at all other points is interpolated along these lines, but this can cause temporally-varying artifacts, as discussed in prior work [Baran et al. 2010] . Wyman and Ramsey [2008] use shadow volumes to cull ray marching in unlit areas. Hu et al. [2010] recently presented an algorithm for interactive volumetric caustics, using Wyman and Ramsey's [2008] method for single scattering. Though this method works well for simple occluders, it becomes slow in the presence of complex visibility boundaries. Several methods [Dobashi et al. 2000; Dobashi et al. 2002] compute the scattering integral by constructing slices at different depths, rendering the scattering at these slices, and using alpha-blending to combine them. Imagire and colleagues [2007] use a hybrid approach that incorporates both slices and ray marching.. The algorithm of Billeter et al. [2010] is similar to that of Max [1986] , but generates the shadow volume from the shadow map and uses the GPU rasterizer to compute the lit segments. This latter method is exact up to the shadow map resolution. It is very fast for low-resolution shadow maps, but slows down significantly as the shadow map resolution approaches 4096 2 and the number of vertices in the shadow volume overwhelms the pipeline. Unfortunately, the large and complex scenes we target require such high-resolution shadow maps to avoid aliasing. For high-resolution shadow maps, Billeter et al. perform online decimation of the shadow volume, but this is expensive and we did not observe a significant performance benefit from this in our experiments. Like Billeter et al., we also compute the lit segments, but while their outer loop is over the shadow volume elements, our outer loop is over pixels. This precludes the need for sending a large number of vertices to the GPU and allows us to handle high-resolution shadow maps with ease. Additionally, unlike their method, we support textured lights, and our method can be combined with epipolar sampling [Engelhardt and Dachsbacher 2010] for further acceleration, although we have not tested this.. The algorithm of Baran et al. [2010] , (which we call "incremental integration"), uses epipolar rectification to reduce scattering integration to partial sums on a rectilinear grid and uses a partial sum tree to accelerate this computation. While this method has good worst-case upper bounds and is very fast on the CPU, it requires an incremental traversal of multiple camera rays in a particular order, making it difficult to utilize the full parallelism provided by a GPU. Implementing their method on a GPU also requires using a GPGPU API, such as CUDA or OpenCL. Unfortunately, as of this writing, these are not supported on all graphics cards, such as those found in current game consoles. In contrast, our method sacrifices worst-case guarantees, but allows all camera rays to be processed in parallel using only features found in DirectX 9 pixel shaders. We also do not require camera rectification, avoiding the need to process twice as many camera rays as pixels (due to the non-uniform sampling in polar coordinates) and reducing aliasing. Overall, we achieve a significant speedup at slightly better quality, even on highcomplexity scenes, like a forest, which is a worst-case scenario for our algorithm.. Min-max mipmaps have previously been used for accelerating soft shadows [Guennebaud et al. 2006] , global illumination [Nichols and Wyman 2009] , as well as ray tracing geometry images [Carr et al. 2006 ] and height fields [Mastin et al. 1987; Musgrave et al. 1989; Tevs et al. 2008 ]. In our case, thanks to rectification, we only need 1D min-max mipmaps, whose traversal is simple and efficient. Also, unlike the other raytracing applications, we need all intersections between the height field and the ray, not only the first. Our technique uses the following high-level per-frame procedure:. 1. Render a depth map from the camera and a shadow map from the light. 2. Perform epipolar rectification on the shadow map (Section 3.2). 3. Compute a low-rank approximation to all but the visibility terms in the scattering integral (Section 3.2). 4. For each row of the rectified shadow map, compute a 1D minmax mipmap (Section 3.3). 5. For each camera ray, traverse the min-max mipmap to find lit segments and accumulate the scattering integral. 6. If the epipole is on or near the screen, compute the scattering near the epipole using brute force ray marching.. This pipeline is similar to that of incremental integration [Baran et al. 2010] ; our technical contribution is to eliminate the dynamic data structure (partial sum tree) used for integration, replacing it with a static min-max mipmap, which is simpler, allows all rays to be processed in parallel, and avoids the need for camera rectification.. In the rest of this section we define the problem, briefly describe the common elements shared with incremental integration, and describe in detail how we incorporate min-max mipmaps for integration.

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


Adaptive anisotropic meshing for steady convection-dominated problems Obtaining accurate solutions for convection-diffusion equations is challenging due to the presence of layers when convection dominates the diffusion. To solve this problem, we design an adaptive meshing algorithm which optimizes the alignment of anisotropic meshes with the numerical solution. Three main ingredients are used. First, the streamline upwind Petrov-Galerkin method is used to produce a stabilized solution. Second, an adapted metric tensor is computed from the approximate solution. Third, optimized anisotropic meshes are generated from the computed metric tensor by an anisotropic centroidal Voronoi tessellation algorithm. Our algorithm is tested on a variety of two-dimensional examples and the results shows that the algorithm is robust in detecting layers and efficient in avoiding non-physical oscillations in the numerical approximation. We are interested in constructing numerical methods for solving partial differential equations whose solutions contain steep boundary and interior layers. In these layers, the solution varies much more quickly in some directions than it does in others. However, it is not always known a priori where these layers are located or in which directions the solution varies most quickly. A numerical method should detect the layers automatically and be robust and efficient in resolving the layers without causing non-physical oscillations in the numerical approximations. In this paper, we consider, as a model problem, the singularly perturbed convection-diffusion equation in two dimensions:. where X & R 2 is a bounded polygonal domain with boundary C; 0 < a 6 1 is a given constant diffusion coefficient, vðxÞ 2 ½W 1;1 ðXÞ 2 is a given convective/velocity field, f ðxÞ 2 L 2 ðXÞ is a given source function, and g 2 H 1 2 ðCÞ is a given boundary function. We use standard notations for Sobolev spaces; see e.g., [1] . The boundary C can be divided into three parts:. inflow boundary C À ¼ fx 2 C : v Á n < 0g; characteristic boundary C 0 ¼ fx 2 C : v Á n ¼ 0g;. where n denotes the unit outward normal vector to C.. Problem (1) models the transport of a quantity u through diffusion and convection processes. It arises in many science and engineering problems including pollutant or heat transport in a flowing fluid, in which case u denotes the concentration of the pollutant or the temperature, respectively. Several other examples of the application of (1) are given in [30] . In addition, (1) also serves as a prototype for a wider class of problems in which diffusion and convection processes play a central role. In fact, in [30] , the problem (1) is identified as the most widespread fundamental sub-problem in science and engineering.. Solving (1) becomes challenging when convection dominates diffusion, i.e., when a ( kvk. In such cases, the solution usually exhibits very thin layers across which the derivatives of the solution are large. The layers can be classified into four main types:. Regular boundary layers -appear at the outflow boundary C þ where the velocity field v is not parallel to C. Interior layers -appear due to discontinuities in the boundary data at the inflow boundary C À ; the discontinuities are propagated across the domain along the vector lines of the velocity field v.. When convection dominates diffusion, the solution of (1) has two parts, a smooth one and a rapidly varying one; the latter part describes the type of the boundary layer [15] . Regular boundary layers have width of OðaÞ; this is due to the significant difference between solutions of (1) and of the reduced equation ((1) with a ¼ 0) at points near the outflow boundary. On the other hand, parabolic boundary layers are thicker in that they have width of Oð ffiffiffi a p Þ. Interior layers have properties similar to the parabolic boundary ones in that they also have width of Oð ffiffiffi a p Þ. In cases where the solution contains steep layers, standard Galerkin finite element methods or central finite volume methods yield inaccurate oscillatory results unless the mesh is fine enough (relative to the ratio a kvk ). In one dimension, it has been proved [30] that for linear finite elements on a uniform grid, non-physical oscillations occur when the mesh Peclet number Pe ¼ kvkh 2a. is greater than unity. This situation, however, is still not fully understood in two or more dimensions [13, 34] . The difficulties are partly due to the many partial differential equation issues related to the smoothness of the solution, the compatibility of the data, and the geometry of the domain.. One common approach to solving Eq. (1) is to use a stabilizing scheme to enhance the stability of a standard method. Popular methods include upwinding [18] , Galerkin least-squares [22] , and streamline upwind Petrov-Galerkin (SUPG) [3] methods. If a simulation is effected using uniform meshes, a lot of computational work is required but, in some cases, oscillations still appear near the layers [24] . As a result, non-uniform meshes such as those referred to as Bakhvalov and Shishkin type meshes [15] have been developed to adapt to the layers and improve the numerical approximation. However, the construction of the B-and S-meshes requires a priori knowledge of the locations and structures of the layers. In practice, it is impossible to know about all the non-smooth behavior of the solution. Hence, methods that adaptively generate meshes to capture the layers are of very substantial interest.. In adaptive mesh generation, a posteriori error estimators are used to detect regions of large error for subsequent mesh refinement [2, 23, 38] . The refined meshes can be isotropic (regularlyshaped elements) or anisotropic (stretched elements). However, despite the advantage of reducing the computational cost, there are problems with using an a posteriori error estimator for equations of the type (1). First, it is difficult to achieve both the upper and lower bounds predicted by the error estimator; moreover, the error estimator gives no indication of the quality of the mesh. Consequently, non-physical oscillations still exist and convergence rates are low.. Most recent efforts directed at constructing adaptive anisotropic meshes are based on a stabilized scheme and some mesh modification strategy [31] . Such efforts are still in the very early stages of development. According to the survey article [36] , there has been no adaptive anisotropic mesh generation method for the two-dimensional convection-diffusion equations that comes with a guaranteed bound for the error in the computed solution.. The method introduced in this paper attempts, in the context of convection-dominated problems, to robustly, efficiently, and automatically detect layers and produce accurate approximate solutions that do not exhibit non-physical oscillations. The construction of the method is based on three observations:. A good choice of stabilized method can lead to small discretization errors and rapid convergence.. An optimized anisotropic meshing scheme can reduce the computational cost and improve the accuracy of the solution by not only placing more nodes in layer regions, but by also distributing them in such a way that mesh elements are stretched along the layers. The stabilized method and the optimized meshing scheme can be tied together by a metric tensor that can be determined from the approximate solution of the stabilized method and then used to generate the mesh.. This motivates us to efficiently construct an adaptive algorithm that involves three main ingredients: a good stabilized method, a reliable metric tensor, and an optimized meshing scheme. The resulting algorithm effectively and robustly solves (1) on a general domain and automatically deals with different types of layers present in a solution. Here, we briefly discuss the choices we make for the three ingredients.. Stabilized scheme -Standard Galerkin methods are unstable for convection-diffusion equations when convection dominates diffusion. We choose to use the streamline upwind Petrov-Galerkin (SUPG) method [3] . Even though the SUPG is not monotone (i.e., it does not satisfy a discrete maximum principle), it is globally stable and has good higher-order accuracy in regions where the solution is smooth. Furthermore, the SUPG method is easy to implement and does not require higher-order or complicated weighting functions. SUPG adds extra diffusion to a standard discretization, but only along the streamlines, i.e., along directions parallel to v. However, finding the optimal stabilization terms to completely diminish non-physical oscillations is still an open problem. Therefore, in practice, it might be impossible to achieve optimal convergence rates (i.e., second-order convergence for the L 2 -error and first-order convergence for the H 1 -error when using linear elements) if the solution possesses steep layers. A recent trend is to improve the convergence rate by adapting the mesh using approximate solutions of the stabilized scheme [8] .. Metric tensor -Adaptive anisotropic mesh refinement has the advantage of improving the accuracy of the solution (particularly in layer regions) while reducing computation cost relative to methods using isotropic meshes. A suitable anisotropic mesh has to satisfy two principles: alignment and equi-distribution. Alignment guarantees that mesh elements are aligned with the geometry of the solution and can have large aspect ratio. Equi-distribution forces the estimated error to be distributed uniformly over the mesh elements. These two principles are important in mesh adaptation to control the size, shape, and orientation of mesh elements. In our adaptive algorithm, we use a metric tensor to serve as a guide to align the mesh with the anisotropy of the computed solution. Metric tensors that are useful for anisotropic grid generation are discussed in, e.g., [4] [5] [6] 11, 10, 20] . We use a metric tensor developed in [20] , mainly because it is derived by minimizing the upper bound of the interpolation error on a mesh satisfying the equi-distribution and alignment conditions. The metric tensor is determined from the approximate solution (more to the point, from the Hessian matrix of the computed solution) obtained on a mesh and is then used to define a metric from which a new mesh can be constructed.. Anisotropic mesh generator -Several anisotropic mesh generators in two dimensions are available for research purposes. Two examples are the BL2D [29] and the BAMG [17] packages that create two-dimensional isotropic or anisotropic meshes and can be integrated into an adaptive process. Anisotropic mesh generators in three dimension are obviously more complex and are usually found only in commercial software. We study our own mesh optimization method so that we instead need software that determines a triangulation of a set of points directly from the metric tensor, without any internal optimization; we use the Simmetrix [35] soft-ware package for this purpose. For the mesh optimization process, we use anisotropic centroidal Voronoi tessellations (ACVT) [11, 12, 33] . Given a metric tensor, ACVT distributes the nodes by minimizing a cost function so as to improve element quality and reduce sizing distortion. The nodes are the mass centers (centroids) of associated Voronoi regions with respect to the metric determined from a metric tensor. The process of moving the initial nodes to the optimal positions is effected by the generalized Lloyd iteration method. ACVT with an input of the metric tensor returns high-quality meshes to solve convection-dominated problems.. Our study is based on constructing an optimal adaptive strategy that can automatically refine, stretch, and orient the mesh elements so that the approximate solution of (1) can be computed more efficiently and accurately. The rest of the paper is organized as follows. The model problem is introduced and discretized by the SUPG scheme in Section 2. In Section 3, we discuss the metric tensor we use; see [20] for its derivation. Section 4 contains some theoretical and algorithmic discussions about ACVTs. In Section 5, the adaptive algorithm is presented. In Sections 6 and 7, we present the results of computational experiments with known and unknown exact solutions, respectively. Possible extensions are discussed in Section 8. Our adaptive anisotropic mesh algorithm has substantially improved the numerical approximation for steady-state convection-diffusion problems. It works well on both diffusion-dominated and convection-dominated problems. The results converge at a quasi-optimal or optimal rate (depending on the characteristics of the layers) and with low computational cost. Due to the efficiency and robustness of our algorithm, non-physical oscillations in the numerical solutions in the layers are not present. Since adaptive anisotropic meshes are used in our algorithm, any local phenomena in the solutions (for example, layers, singularities, etc.) are captured automatically. This capability will allow us to explore more practical and complicated problems in future.. We will continue optimizing our schemes and algorithms to obtain better numerical approximation. Mesh modification techniques such as edge swapping and local smoothing will be explored. These techniques are designed to prevent the elements from getting too thin and causing an increase in matrix conditioning and in interpolation or discretization errors. Comparing the effectiveness of the metric tensor (7) with those discussed in [4] [5] [6] is certainly also called for.. Furthermore, implementing the adaptive algorithm in three dimensions is another possibility due to two reasons. First, Simme- trix can generate three-dimensional tetrahedral meshes. Second, the other ingredients (stabilization scheme, metric tensor, and ACVT) can also be generalized to three dimensions. Although the core of the three-dimensional algorithm will be similar to the two-dimensional one, the implementation for three-dimensional mesh generation will likely be quite challenging. Our studies will also be extended to the time-dependent case. We believe that our achievements in the stationary problem make this task very tractable. We are also interested in constructing the adaptive algorithm for the incompressible Navier-Stokes equation.. Understanding its linearized simplified version, i.e., the convection-diffusion equation, gives us more insights on how to apply the SUPG formulation for the Navier-Stokes equations with respect to the mesh adaptation.

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


Fault Tolerance in Distributed Systems Using Fused Data Structures Abstract-Replication is the prevalent solution to tolerate faults in large data structures hosted on distributed servers. To tolerate f crash faults (dead/unresponsive data structures) among n distinct data structures, replication requires f þ 1 replicas of each data structure, resulting in nf additional backups. We present a solution, referred to as fusion that uses a combination of erasure codes and selective replication to tolerate f crash faults using just f additional fused backups. We show that our solution achieves OðnÞ savings in space over replication. Further, we present a solution to tolerate f Byzantine faults (malicious data structures), that requires only nf þ f backups as compared to the 2nf backups required by replication. We explore the theory of fused backups and provide a library of such backups for all the data structures in the Java Collection Framework. The theoretical and experimental evaluation confirms that the fused backups are space-efficient as compared to replication, while they cause very little overhead for normal operation. To illustrate the practical usefulness of fusion, we use fused backups for reliability in Amazon's highly available key-value store, Dynamo. While the current replication-based solution uses 300 backup structures, we present a solution that only requires 120 backup structures. This results in savings in space as well as other resources such as power. Given n primaries, we present a fusion-based technique for fault tolerance that guarantees OðnÞ savings in space as compared to replication with almost no overhead during normal operation. We provide a generic design of fused backups and their implementation for all the data structures in the Java Collection framework that includes vectors, stacks, maps, trees, and most other commonly used data structures. We compare the main features of our work with replication, both theoretically and experimentally. Our evaluation confirms that fusion is extremely space efficient while replication is efficient in terms of recovery, load on the backups and the size of the messages that need to be sent to the backups. We wish to explore alternate techniques for fusion with a focus on erasure codes such as LDPC codes [5] and LT codes [10] that offer different tradeoffs between the various system parameters.. Many real world systems such Amazon's Dynamo or Google's MapReduce framework use replication extensively for fault tolerance. Using concepts presented in this paper, we can consider an alternate design using a combination of replication and fusion-based techniques. We illustrate this in Section 6 by presenting a simple design alternative for Amazon's data store, Dynamo. In a typical Dynamo cluster of 100 hosts our solution requires only 120 backup structures as compared to the existing set up of 300 backup structures, without compromising on other important QoS parameters such as response times. Thus fusion achieves significant savings in space, power, and other resources.

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