BirdVis: Visualizing and Understanding Bird Populations . Tag cloud lenses in BirdVis are used as a tool to explore and understand relative habitat preferences suggested by a species distribution model over space, time, and across species. Here, we show occurrence maps for the Indigo Bunting. The lenses cover three different regions on three different dates of the breeding season of 2009: May 4, June 22, and August 24, 2009. They show important differences in habitat preferences across these regions as well as how the preferences change over time within a region. The ability to interact with these visualizations, by changing regions and dates, and comparing different bird species, provides an unprecedented tool for scientists to understand bird distribution and consequently obtain insights about the environment and how it changes over time. The supplemental video gives an overview of different features and visualizations provided by BirdVis.Abstract-Birds are unrivaled windows into biotic processes at all levels and are proven indicators of ecological well-being. Understanding the determinants of species distributions and their dynamics is an important aspect of ecology and is critical for conservation and management. Through crowdsourcing, since 2002, the eBird project has been collecting bird observation records. These observations, together with local-scale environmental covariates such as climate, habitat, and vegetation phenology have been a valuable resource for a global community of educators, land managers, ornithologists, and conservation biologists. By associating environmental inputs with observed patterns of bird occurrence, predictive models have been developed that provide a statistical framework to harness available data for predicting species distributions and making inferences about species-habitat associations. Understanding these models, however, is challenging because they require scientists to quantify and compare multiscale spatial-temporal patterns. A large series of coordinated or sequential plots must be generated, individually programmed, and manually composed for analysis. This hampers the exploration and is a barrier to making the cross-species comparisons that are essential for coordinating conservation and extracting important ecological information. To address these limitations, as part of a collaboration among computer scientists, statisticians, biologists and ornithologists, we have developed BirdVis, an interactive visualization system that supports the analysis of spatio-temporal bird distribution models. BirdVis leverages visualization techniques and uses them in a novel way to better assist users in the exploration of interdependencies among model parameters. Furthermore, the system allows for comparative visualization through coordinated views, providing an intuitive interface to identify relevant correlations and patterns. We justify our design decisions and present case studies that show how BirdVis has helped scientists obtain new evidence for existing hypotheses, as well as formulate new hypotheses in their domain. In the face of global warming and recent environmental disasters, nature conservation has received substantial attention in recent years.. The study of birds is an important tool for this purpose, since birds engage in the most spectacular long-distance migrations of any animal on the planet and demonstrate the biological integration of seemingly disparate ecosystems around the globe. They are unrivaled windows into biotic processes at all levels and are proven indicators of ecological well-being. This is one of the reasons that avian data is one of the richest and most important sources of distributional data for ecology and conservation. However, the vast majority of avian studies have been restricted to a single season, most often the breeding season, and to specific regional spatial scales. As a result, these studies do not fully reflect the limiting factors and important processes that govern these populations, a critical deficiency for conservation planning and ecological understanding.. In order to overcome these limitations and improve the understand- ing of the broad-scale dynamics of continent-scale bird migrations, scientists from the Cornell Lab of Ornithology (CLO) have developed a statistical model called Spatio-Temporal Exploratory Model (STEM) [12] . STEM uses bird observation data from the eBird project [10] to predict bird distribution in large spatial and temporal scales. STEM analyses provide the first empirical view of populationlevel movement on a weekly basis across a range of bird species. However, it is very difficult to directly extract the most important ecological information from STEM model output, since like many machinelearning models, the structure of STEM is itself complex necessitating extensive post-modeling analyses to gain insights. These analyses require several trial-and-error steps, where scientists explore variations in bird populations and the importance of model parameters (e.g., habitat) across multiple space-time windows.. Although scientists in this domain recognize the importance and make use of visualization techniques [21, 42] , the detailed information STEM provides about species occurrence variation over space and time poses new challenges. Currently, the use of visualization in this domain is limited to static plots, map views, and jpeg animations created using R [34] . Some examples are shown in Figure 2 . In order to answer even simple questions about a single species, several plots and maps are created by the modeling expert, which are then manually composed (e.g., using PowerPoint) for the ornithologists to review. The large number of visualization leads to a cognitive overload, making it hard to identify patterns and correlations among them. This problem is compounded for analyses that involve crossspecies comparisons that are essential for coordinating conservation and extracting important ecological information. Furthermore, when the ornithologists formulate new hypotheses, the offline process needs to be repeated: new images are generated and composed so that the hypotheses can be tested. The lack of interactivity makes this process both time-consuming and cumbersome.. To address this problem, we have designed BirdVis, a new interactive visualization tool that supports the analysis of spatio-temporal bird distribution models. BirdVis was developed as part of a collaboration among computer scientists, statisticians, ornithologists, and biologists. The system is the first to provide an array of visualizations that can be combined to give insights into the different aspects of large-scale dynamic bird distribution models. An intrinsic aspect of displaying dynamic distributions is the separation of signal and noise. There are two basic problems: 1) Model predictions are imperfect, especially when predicting small occurrence rates. So, in order to focus on ecological signal it is necessary to obscure noisy artifacts. However, doing this is complicated by the second problem; 2) Occurrence rates differ greatly from region to region, through time, and among species. This makes it difficult to visualize the dynamics and make comparisons. Ultimately, this means that to perform comparisons, it is necessary to manually tune two or more images. To support the exploration of these dynamic distributions, BirdVis provides a series of visual representations (and compositions thereof) that aim to simplify the identification of correlations and changes in the presence of noise. These help ecologists and biologists learn from the signals and extract the most relevant pieces of information from the model analysis. They are also instrumental for the statisticians to study the noise, enabling them to better understand and improve the model. Another important aspect of BirdVis is that it enables the combination of different pieces of information through visualizations that present them in a succinct way. One example is illustrated in Figure 1 . In this figure, we use color-mapped maps to show bird occurrence probability. Furthermore, by utilizing a new visualization abstraction, which we call Tag Cloud Lenses (TCLs), in the same image, we are able to show the importance of different habitats in different seasons and regions. BirdVis also includes a series of operations that support specific requirements for bird distribution analyses, including the ability drill down into specific regions while exploring correlations among different model parameters. Since searching for patterns requires a trial-and-error process, BirdVis provides different mechanisms for comparing multiple visualizations side-by-side and to interactively manipulate these visualizations.. In this paper, we describe the design and implementation of BirdVis. We discuss the specific visualization requirements for the exploration of dynamic bird distribution models, and how these have shaped up the design of BirdVis. We also describe a series of visual representations that leverage well-known visualization techniques and provide an intuitive and interactive way for scientists to explore bird occurrence predictions. These include the ability to interactively change colormaps and to visualize occurrence probability variations, in addition to the raw probabilities. We also propose the use of tag clouds to represent habitat associations, and introduce a new tool that combines tag clouds and magic lenses, giving scientists the ability to interactively inspect how habitat preferences vary over space and time. BirdVis was used by domain experts to carry out a series of analysis. We report the results of their initial evaluation, the new insights they have obtained as well as limitations they have identified. BirdVis has already been deployed at CLO and is being used by the members of that lab. Not only has BirdVis made it easier (and reduced the amount of time required) to perform common analyses, but it has also enabled new ways to look at the data and compare different scenarios. We should note that although BirdVis was developed for and has been used to explore the results of STEM, its visualizations and features can also be utilized for other bird distribution models and for similar data sets, that require multivariate and multiscale spatio-temporal analyses such as for example, national patterns of air pollution. The combination of the different visual components provided by BirdVis gives scientists the ability to navigate through and explore all dimensions of their data sets: space, time, species, probability occurrences and predictor importance (habitat association). These components were designed to support a set of queries and tasks identified as critical by the ornithologists and biologists who analyze the STEM predictions, and the statisticians who have developed and calibrate the model. An initial evaluation of BirdVis by these experts has shown that the unprecedented flexibility afforded by the tool to explore and visualize bird population-level movement on a weekly basis across a range of bird species is promising. They were able to both confirm existing hypotheses as well as formulate new ones. The BirdVis prototype has been deployed at the Cornell Ornithology lab and is already being used, on a regular basis, by the scientists in that lab.. The initial evaluation has also uncovered some limitations. Since the TCLs use tag clouds as a basic component, they inherit both the . We can observe a shift in the prevalence of NLCD class Cultivated Crops as an occurrence predictor, the retention of Deciduous Forest, and Pasture becoming important for the species. These changes reflect dietary shifts, as the species moves from a primarily insect diet during breeding, to one based mostly on seeds during migration and winter. By using tag cloud lenses synchronized across the two views, it is possible to analyze how habitat preference changes over time.. advantages and limitations of tag clouds. As we have discussed above, the ability to intuitively convey relative importance for predictors is beneficial, and this was the main motivation for us to use tag clouds. However, tag clouds have well-known problems. Notably, the length of the tags can influence their perceived sizes [45] . In this paper, we have focused on rectangular lenses. One interesting direction we would like to pursue in future work is to use more general lenses shape and understand how to respond to the more general underlying queries at interactive rates.. Another interesting direction we plan to explore is how to represent trends. The ability to visualize how habitat associations vary over time is key to discovering regions when and where these associations are stationary. Stationary regions are contiguous pieces of land where all habitat predictor importance throughout a year follow similar curves when compared to curves of neighboring areas. Ecologists studying climate change are now realizing how important it is to understand where and when these habitat-occurrence relationships are stationary. When modeling bird distributions, if a model developed for one area is transferred to another stationary area, the results become spurious extrapolations. With the tag cloud lenses in BirdVis, it is possible to get evidence of stationary regions: by moving the lenses in a near by region, if the tag relative sizes do not change much, we are able to identify a region as stationary. But while TCLs offer a means to continuously explore the spatial dimensions of the data, they only support exploration over discrete moments in the temporal dimension. We would like to investigate the use of techniques such as the ones proposed by Lee et al. [22] to represent trends in tag cloud lenses. STEM data is the first empirical spatio-temporal view of populationlevel movement on large spatial and temporal scales. BirdVis represents our first attempt at developing an interactive visualization tool for exploring the STEM predictions. Visualizations currently used to analyze bird distribution patterns convey high-level, often static information (see Figure 2 )-they do not support interactive exploration. For example, to prevent collision between birds and aircrafts, ShamounBaranes et al. [40] have developed a Web-based tool to visualize bird avoidance models. Their system uses static images to present model results and it does not support interactive exploration of the data.. There has been substantial work on techniques for spatio-temporal visualization [2, 20] . Although some of the existing systems provide a general framework, because they have evolved from domain-specific applications, they often focus on visualization techniques used to address the requirements of a specific domain. For example, the systems proposed by Guo et al. [14] and Chen et al. [9] were developed to analyze the market of American technology companies. The main focus was to understand how the market evolved by summarizing the relevant information by state and year. Their methods, however, do not scale for country-level aggregation, and hence, are not applicable for data with high resolution in space and time, such as the STEM results.. A number of systems have been proposed to visualize weatherrelated data [18, 29, 33] , which similar to STEM's, consist of spatiotemporal data the is the average of results of many simulations of a model. Some features from these systems are present in BirdVis, including map views, colormaps, brushing and coordinated views [37] . However, we had to develop new visual representations for the exploration of dynamic distributions. As we discuss in Section 4.2, while analyzing the importance of predictors, the exact values of these variables is not important: scientists need to understand the relative differences among them. Consequently, colormaps, contours and glyphs are not sufficient. In BirdVis, we employ tag clouds as a more effective means to display the relative importance of predictors.. We also introduce tag cloud lenses (Section 4.2), a technique that combines ideas from magic lenses [4] and tag maps [19] . Tag cloud lenses provide a novel way to explore multivariate spatio-temporal data, suitable for understanding relative differences among those variables. Magic Lenses have inspired the development of analogous interfaces and interaction methods in many domains: spatio-temporal querying for video data [39] , augmented virtual environments [7] , exploration of geo-referenced Wikipedia content using mobile devices [17] , and Label Lenses [11] , to name a few. Since its introduction by Milgram and Jodelet [24] , tag clouds have been extensively explored to convey geography-related data. Tag Maps [1, 19] have been used to produce summaries of a collection of geo-referenced photographs. Wood et al. [46] and Slingsby et al. [41] used a mash-upbased approach to build visualizations using tag maps over the Web. These techniques, however, are used for discrete data and display tags in the exact location of the data entry. As a result, they do not apply in our scenario, where data is defined continuously over space. We use a tag cloud to summarize the information inside a given region-the location of the tags inside a region does not have any spatial meaning. To the best of our knowledge, this is the first work that combines Magic Lenses and tag clouds (tag maps). The eBird Project and Bird Observation Data. eBird [10, 26, 43] is a citizen science project, launched in 2002 by the Cornell Lab of Ornithology at Cornell University and the National Audubon Society, whose goal is to gather and share real-time standardized bird observation data over the Web. The eBird data set contains observations of 9091 species, over 90% of the world's bird species, and submissions from 226 countries. It is unique among broad-scale bird monitoring projects in that it collects observations made throughout the year. The eBird participants follow a protocol where time, location, and counts of birds are all reported in a standardized manner. Furthermore, tied to each observation are covariates that quantify search effort and describe the surrounding environment. STEM. The STEM model [12] was developed to overcome important limitations of previous bird population studies. STEM consists on a semi-parametric machine learning model designed to provide a statistical framework that harnesses available data for predicting species distributions and makes inferences about species-habitat associations. In essence, given the static and noisy eBird data, which is sparsely distributed in space and time, STEM produces bird occurrence estimations in large spatial and temporal scales (continent-wide and inter-annual) using a multiscale strategy to differentiate between local and global-scale spatio-temporal structure. This is achieved by creating a randomized ensemble of overlapping local models, each applied across a restricted geographic and temporal extent, called spatiotemporal pixel, or stixel for short. A user-specified predictive model accounts for local variation as a function of local predictor values. Decision Trees (DTs) are used as the predictive model [5] . Predictions are made for explicit location-time pairs by taking the mean across all of the overlapping local models that include that location-time. Thus, local patterns are allowed to "scale up" via ensemble averaging to larger scales. This combines the bias-reducing properties of local models with the variance-reducing properties of randomized ensembles. The Data Set: STEM Predictions. For the generation of the data used in this paper, STEM was applied using eBird reports as a source of bird presence as well as of bird absence information. eBird participants indicate when and where they have recorded a species-species that are not present in a set of observations (for a given time and location) are considered to be absent. We considered 622,124 observations reported from 107,295 unique locations, and 22 predictors. Four of the predictors were effort variables included in the analysis to capture the variation in detection rates (the hours spent searching, the kilometer length of the transect, observation time of day, and the number of people in the search party).. To account for habitat selectivity each observation was linked to remote-sensing data from the U.S. 2001 National Land Cover Database [13] (NLCD), where land-cover can be one of 16 types (i.e., Barren Land, Cultivated Crops, Developed High, Developed Low, Developed Med, Emergent Wetlands, Deciduous Forest, Evergreen Forest, Mixed Forest, Grassland, Ice Snow, Pasture, Shrub scrub, Woody Wetlands, Developed Open, Open Water) at a 30-meter cell resolution. From this information, the percentage of coverage and habitat composition was computed for each of the land-cover classes in a 1.5km pixel (square 2.25ha) centered on the location of each observation. The NLCD classes were also used as predictors. Finally, the last predictor was the elevation at the observation site 1 . For each species studied, presence-absence data was analyzed from observations collected during the six-year period 2004-2009 within the conterminous U.S.. This analysis produced one daily occurrence map per week, generated for all 52 weeks in 2009. An occurrence map consists of bird occurrence probability estimations in 130,769 locations selected from a geographically stratified random design based on a grid of 30 km pixels. Variation in detectability associated with observation effort is controlled by assuming that all effort predictors (search time, transect length, time of day, and number of observers) were constant and additively associated with the true occurrence probability. Thus, occurrence maps show the estimated probability that a single eBird participant will detect the species on a search for a given time range (e.g., from 7-8AM) while traveling a predefined distance (e.g., 1km) on a give day (e.g., 03/04/2009). Another outcome of these predictions was spatio-temporally explicit measures of predictor importance (PI). The importance of a Decision Tree predictor is computed as the sum of the empirical improvement in the Decision Tree splitting criterion due to this predictor [5] . The predictor importance over an ensemble of trees is defined as the sum of predictor importance values for each tree in the ensemble [16] . In STEM, roughly speaking, the PI can be intuitively interpreted as the strength of the association between observed species occurrence/absence of a bird and the given predictor variable. This measure has no units. In this work, we use only the PI values for the 16 NLCD predictors, since as explained in Section 4 we are interested in understanding how these values relate to the actual bird habitat usage. BirdVis was implemented in C++, and its graphical user interface was written in OpenGL and Qt. BirdVis is tightly integrated with R [34] . It uses R interface packages to C++: Rcpp and RInside. The spatiotemporal cubes used by BirdVis are stored as R data files and we use R for all data handling tasks. An important benefit of this approach is that we can leverage the R infrastructure and algorithms (e.g., to deal with matrix data). Furthermore, because our collaborators use R for their current analyses, it makes it easier for us to integrate them into BirdVis.. Both the spatial and temporal resolution of the data sets can be configured in the input file, consequently, results of model evaluation in different scales can be visualized and compared. Furthermore, in the data file, the user can define two kinds of variables: variables that are depicted using colormaps and variables that are queried by the tag cloud lenses. The number of variables of the latter type and the tags used by BirdVis can also be configured in the data files, allowing the user to include different sets of predictors, and thus, enabling the application of BirdVis in other domains.

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


Interaction protocols for cross-organisational workflows Workflow technologies are widely used in industry and commerce to assist in the specification, execution and completion of well defined processes within organisations. As industrial and commercial relations have evolved, based on advances on information and communications technologies, cross-organisational workflow integration has become an important issue. Since organisations can have very different workflows, the creation of compatible workflows so that organisations can collaborate and/or carry out mutual transactions automatically in an integrated fashion can be a very complex and time consuming process. As a consequence, the development of technologies to support the creation and execution of compatible workflows is a most relevant issue. In the present article we introduce the JamSession coordination platform as a tool to implement cross-organisational workflow integration. JamSession is declarative and based on algebraic specification methods, and therefore workflow integration implemented using this platform can profit from formal behavioural analysis, based on which desired features and properties can be verified and/or obtained. Workflow process definitions form an important part of organisational knowledge bases, as they specify how activities are sequenced and who is responsible for carrying out each activity within an organisation. Workflow technologies are widely used in industry and commerce to assist in the specification, execution and completion of well defined processes within organisations (WfMC (1995) ). With the advances in communication technologies, electronic business is on the increase and there is a need for efficient and effective workflow tools to support all sorts of business transactions. However, since organisations can have very different workflows, the creation of compatible workflows so that organisations can collaborate and/or carry out mutual transactions automatically in an integrated fashion can be a very complex and time consuming process. As a consequence, the development of technologies to support the creation and $ This work has been partially funded by FAPESP and Microsoft Research through the JamSession project. The authors thank Dr. Shaheen Fatima for comments and suggestions on early versions of the present article. execution of compatible workflows is a most relevant issue. A company can have many business partners, and the interactions between the company and its partners can be either ad hoc or on a permanent basis. Therefore, it is critical that a flexible approach is used for workflow integration, lest the required overhead to set up the collaboration can overcome the benefit from the corresponding mutual transactions.. The main thrust of this article is on the execution of workflow interactions across organisational boundaries -heretofore referred to as cross-organisational workflows. Such interactions should be flexible and reliable, as well as distributed and loosely coupled. Loose coupling ensures that organisations require little or no knowledge about each others' internal activities, and thus a greater freedom for changing their internal processes without affecting the overall collaboration. A distributed approach for the management of interactions ensures that organisational resources remain independent and, therefore, organisations have greater control over their processes. Distributed coordination mechanisms for cross-organisation workflows (e.g. Chen (2008) ) have shown to be more effective than centralised ones, since the latter usually entail tighter coupling (van der Aalst (1999); Schulz and Orlowska (2004) ; Biegus and Branki (2004) ).. Recently, a platform has been proposed for the integration and coordination of heterogeneous computational resources (da Silva (2011) ). It has been named JamSession, after the standard practice of jazz musicians inaugurated around [1940] [1941] [1942] [1943] [1944] [1945] [1946] [1947] [1948] [1949] [1950] in New York (USA), who got together in certain specific pubs to form new and innovative band formations after their hired performances. The JamSession platform aims at being for software components what those pubs were for the jazz musicians, namely a meeting point where previously existing components can get together to form new and innovative service systems. The main features of JamSession are its (1) formal and declarative foundations, (2) simplicity and (3) usability. JamSession is based on the construction and execution of Knowledge-based Interaction Protocols (KBIPs), which can be designed using a straightforward and user-friendly graphical language which is also part of the platform. The platform is compact and lightweight so it can be implemented using low computational resources.. In this article, we show how JamSession can be used to implement the integration of workflows, thus being an ideal tool for the specification and execution of crossorganisational workflows. The goal is to show a set of KBIPs which can be used to mediate the interaction between organisational workflows, based on which we illustrate the applicability of JamSession for cross-organisational workflow integration. The mediation must ensure that the workflows remain decoupled and independent -except, of course, for the synchronous dependency characterised by control flow patterns. Furthermore, we require that a separation of concerns and responsibilities is built in the protocols, so that each organisation builds the interaction protocols capable of directly exchanging information with its internal workflow -this way ensuring required trust and security levels.. Hence, the contributions of this article correspond to the introduction of JamSession as a tool for cross-organisational workflow integration, with the features of being formally verifiable, easy to use and sufficiently flexible as to provide an environment for the specification and execution of integration patterns which ensure proper separation of concerns and responsibilities across collaborating organisations.. For the sake of completeness, the next section provides an overview of research that has been carried out to address the problem of compatible workflow generation and execution, in the context of cross-organisational workflow integration. An informal but complete description of the JamSession platform is provided in Section 3, with illustrative examples of how it works. The central section in this article is section 4, in which we show how cross-organisational workflows can be coordinated through the use of KBIPs. To this end, we consider two of the three main patterns for workflow collaboration described by Chen (Chen (2008) ), namely the hierarchical pattern and the peer-to-peer pattern. In Section 5 we sketch out how JamSession protocols for cross-organisational workflows can be formally verified, using coloured Petri nets. We conclude the article with some remarks and plans for future work.

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


Optimal design of aircraft structures with damage tolerance requirements Abstract Damage tolerance analysis (DTA) was considered in the global design optimization of an aircraft wing structure. Residual strength and fatigue life requirements, based on the damage tolerance philosophy, were investigated as new design constraints. The global/local finite element approach allowed local fatigue requirements to be considered in the global design optimization. AFGROW fatigue crack growth analysis provided a new strength criterion for satisfying damage tolerance requirements within a global optimization environment. Initial research with the ASTROS program used this damage tolerance constraint to optimize cracked skin panels on the lower wing of a fighter/attack aircraft. For an aerodynamic and structural model of this type of aircraft, ASTROS simulated symmetric and asymmetric maneuvers during the optimization. Symmetric maneuvers, without underwing stores, produced the highest stresses and drove the optimization of the inboard lower wing skin. Asymmetric maneuvers, with underwing stores, affected the optimum thickness of the outboard hard points. Subsequent design optimizations included DTA and von Mises stress constraints simultaneously. In the configuration with no stores, the optimization was driven by the DTA constraint and, therefore, DTA requirements can have an active role to play in preliminary aircraft design.

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


Introduction to the special issue on teaching and learning in information retrieval Abstract We present an overview of the special issue in this paper. The main objective is to provide information for lecturers on how to improve the student experience, using current knowledge in the field. To this end we present an overview of six papers covering areas as diverse as tools and methods used to support teaching and learning, pedagogical challenges in teaching mathematics for search, etc. Information retrieval (IR) is a research area that has generated a great deal of interest over recent years, largely due to the growth in Internet use and the need to deploy web search engines in order to find information. The many problems which have been identified since the inception of the discipline in the early 1950s (Mooers 1951) have been solved or are being tackled by thousands of researchers around the world. New advances in the field are spread following the usual scientific channels: by publication and/or presentations in seminars, journals, conferences, forums, workshops and books. Disseminating information in this way keeps researchers abreast of new developments in the field.. The knowledge gained is having a significant impact due to the widespread use of IR tools for finding information for both personal and business use either explicitly or implicitly, Therefore, it is very important that all types of students including undergraduate and postgraduate students as well as primary and secondary schoolchildren have a basic knowledge of the discipline, not just to conduct research, but also as a way of learning how search engines work and to resolve their own information needs. In terms of the field of computing, IR is a useful subject which can be used to reinforce the knowledge acquired in other subjects, such as programming, algorithms and data structures, user interface design etc. In particular, postgraduate students who carry out research in the area require knowledge of the fundamental aspects of the subject, as they may be building new solutions on top of them. So while it is important to disseminate advances gained by research in this field it is also important for the subjects vitality to understand pedagogic approaches, i.e. teaching and learning in IR. The better we inform our students, the better chance they have of undertaking quality research and they can become more effective searchers.. This special issue together with the two editions of the International Workshop on Teaching and Learning of Information Retrieval published in (MacFarlane et al. 2007 (MacFarlane et al. , 2008 , informs the readership with examples of what colleagues are doing to improve the teaching and learning of IR, and to be a forum to discuss the present and future of this field. Interested lecturers may use these examples to improve their courses and to innovate with new ideas. The overall objective is to improve the student learning experiences, so they can get a better understanding of IR, independently of the educational level (primary, secondary or tertiary). This special issue demonstrates that IR is not only a vibrant research area, but is also a field with a very high connection to teaching. Example of how lecturers think about how to better deliver this subject to students of any type are presented, largely in the LIS or CS areas, and how the range of pedagogic tools is very wide. In our view this material is a useful contribution to the development of the subject as a whole.

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


Nonprocedural query processing for databases with access paths ABSTRACT : The use of "rules of inference " in database systems with access paths--e.g., CODASYL and IMS databases--is proposed to allow nonprocedural querying of the database systems. The kinds of access paths for which these rules of inference are required are isolated. It is shown that the rules of inference required for a CODASYL or an IMS database depend on the configurations of the edges in a diagram of the database. The definition of a database must leave nothing to the imagination of the user.. If it does, each user is free to supply his own interpretation to those parts of the database which have not been unambiguously specified. The result will be, at best,, that the user is misled as to what the response to his queries mean. At worst, the integrity of the database will be violated by inconsistent updating.. In this paper, it is shown that existing database systems require the user to place his own interpretation on those facts which are not explicitly stored in the database, but which may be deduced from facts which are explicitly stored. The facts which are explicitly stored are unambiguously defined due to definitions of dataitems, sets, segments, relationships, etc. But there is no provision for specifying the rules by which facts may be deduced. This problem impedes the development of truly nonprocedural query languages by requiring the user to supply the reasoning by which the facts are deduced. The reasoning must be supplied in the form of a procedure which navigates the access paths in the database or in a simpler form, such as an expression in the relational calculus.. For the same reason, the construction of logical views from a physical database also depends on the user to supply a technique for forming the logical view from the physical database.. This problem can be rectified by provision of "inferential rules " in the database definition. The rules are used, in the place of user-provided techniques, to infer facts not explicitly stored in the database from those which are explicitly stored.. In fact, an algorithm for inferring facts 160 from a relational database system, using such inference rules, has been developed by Minker [8] . The rules should be stored as data in the database, to avoid ambiguity arising from different users ' views of what may be deduced from the database.. This problem is in fact the "connection trap" described by Codd Such an algorithm is described in section v. Minker's algorithm can then be used to perform inferences on the facts recovered by this algorithm.. The specification of inference rules for the appropriate access paths in a database system will then allow unambiguous traversal of the database for queries specifying data-items in widely separated parts of a database.. Similarly, it will a.LLow unambiguous construction of logical views from physical databases by treating references to the Logical views as queries and processing them as above (see Stonebraker [9] ). sal of the database.. If any inferences are to be performed in responding to a query, the rules for performing the inferences must be supplied by the user (ordinarily); or, in Minker's algorithm, the rules of inference are part of the database definition.. Minker uses the example shown in Figure 1 to illustrate his algorithm for performing inferences in a relational database.. The notation used here differs somewhat from Minker's.. A relationship "Rname" over domains "Doml", "Dom2",...,"Domn" is written: The definition of a database may allow each individual user his own interpretation of some of the relationships which can be recovered from the database.. This can result in misunderstanding of the responses to queries and to inconsistency in the updating of the database.. To avoid this problem, each relationship that can be recovered from the database must be defined, either as a primitive relationship, independent of the other relationships in the database, or as an inferred relationship, in terms of how it may be inferred from the other relationships in the database.. These two kinds of relationships can be distinguished from each other in the CODASYL and IMS database models by the configurations of the access paths from which primitive relationships are constructed.. In general, a "traversal rule" can be defined which describes the primitive access paths of a database.. Relationships constructed from these access paths must be defined as primitives of the database.. ALL other relationships must be defined as rules of inference. The analysis of the roles of access paths in this paper depends on an analysis of the underlying relationships.. The relationships used here are the same as those defined by Codd in the relational database model [4] :. A RELATIONSHIP is a time-varying relation over a set of domains. In a question-answering system, the inference rules can be used to deduce the relationships which are the answers to the queries.. The use of inference rules to respond to queries on CODASYL and IMS databases [3, 7] is analysed in this paper. There are Languages for traversing the access paths in these databases; for example, CODASYL's DML and IBM's DL/L. These languages, however, may require that an intricate procedure be written to respond even to a single query [2] . In particular, there are the relational algebra [S]; Query-by-Example [lo] ; and SEQUEL [L] .. These languages are all nonprocedural, i.e., no programs need be written to respond to queries; however, they do require, that the user supply any inferential reasoning required in finding the response to a query. In general, this takes the form of specifying the relations to be examined and the operations to be'performed on the relations. Dolk and Loomis [6] have also proposed an algorithm for nonprocedural access to a CODASYL database.. The responses supplied by this algorithm to queries may be misleading if the user interprets any part of the database differently from the designer, because the rules for making inferences are not specified either in the database or by the user. database, all queries must be expressed, and the responses to the queries found, by using domain-names and relation-names only.. No access paths are available for traver- The response to a query is found by first searching the extensional data to find the answer. Then, if the answer was not found in the extensional data, the intensional data is searched for a rule which will transform the query to a new wry.. The same procedure is repeated for all queries thus generated, until an answer is found, or no more transformations are possible.. The importance-of the rules of inference in determining the answer to a query can be seen by considering the following change to the above rules of inference:. ( "Who is the father of ll?". is "The father of 11 is unknown." Similarly, the query "Who is the mother of 5?" elicits the response "The mother of 5 is unknown." when the first set of rules is used, but the response "The mother of 5 is 4." when the second set of rules is used. where SING(X) denotes the set of singleton sets over a set X:. is a subset of the powerset of domain (A). Thus, if we have a stored database, then for each access path in the database definition, a relationship may be constructed from the database. Let f denote the mapping belonging to the access path which is currently stored in the database. Let A denote the file which is the domain of f. Let Bl ,...,Bn be the files involved in the range of f.. The mapping f might be defined as follows:. where POW(X) denotes the powerset of a set X, i.e., the set of all subsets of X. Then the following construction gives the relationship corresponding to f:. 1. For each record in A, convert A to first normal form. Then use f to find the set of records (or the set of tuples of records) related to the record in A.

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


Optimal instruction scheduling using integer programming Abstract { This paper presents a new approach to local instruction scheduling based on integer programming that produces optimal instruction schedules in a reasonable time, even for very large basic blocks. The new approach rst uses a set of graph transformations to simplify the datadependency graph while preserving the optimality of the nal schedule. The simpli ed g r aph results in a simpli ed integer program which can be solved much faster. A new integerprogramming formulation is then applied to the simpli ed graph. Various techniques are used to simplify the formulation, resulting in fewer integer-program variables, fewer integer-program constraints and fewer terms in some of the remaining constraints, thus reducing integer-program solution time. The new formulation also uses certain adaptively added c onstraints (cuts) to reduce solution time. The proposed optimal instruction scheduler is built within the Gnu Compiler Collection (GCC) and is evaluated experimentally using the SPEC95 oating point benchmarks. Although optimal scheduling for the target processor is considered i n t r actable, all of the benchmarks' basic blocks are o ptimally scheduled, including blocks with up to 1000 instructions, while total compile time increases by only 14%. Instruction scheduling is one of the most important compiler optimizations because of its role in increasing pipeline utilization. Conventional approaches to instruction scheduling are based on heuristics and may produce schedules that are suboptimal. Prior work has considered optimal instruction scheduling, but no approach has been proposed that can optimally schedule a large number of instructions in reasonable time. This paper presents a new approach t o o p t i m a l instruction scheduling which uses a combination of graph transformations and an advanced integer-programming formulation. The new approach produces optimal schedules in reasonable time even for scheduling problems with 1000 instructions.. This research was supported by Equator Technologies, Mentor Graphics' Embedded Software Division, Microsoft Research, the National Science Foundation's CCR Division under grant #CCR-9711676, and by the University of California's MICRO program.

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


Finding sparse cuts locally using evolving sets A local graph partitioning algorithm finds a set of vertices with small conductance (i.e. a sparse cut) by adaptively exploring a large graph G, starting from a specified vertex. For the algorithm to be local, its complexity must be bounded in terms of the size of the set it outputs, with at most a weak dependence on n, the number of vertices in G. Previous local partitioning algorithms find sparse cuts using random walks and personalized PageRank. In this paper, we introduce a randomized local partitioning algorithm that finds a sparse cut by simulating the volume-biased evolving set process, which is a Markov chain on sets of vertices. We prove that for any set of vertices A that has conductance at most φ, and for at least half of the starting vertices in A, our algorithm will output (with probability at least half) a set of conductance O(φ 1/2 log 1/2 n). The complexity of a local partitioning algorithm is measured by its work/volume ratio, which is the ratio between the computational complexity of the algorithm on a given run, and the volume of the set output. We prove that for our algorithm, the expected value of the work/volume ratio is O(φ −1/2 polylog(n)). The best previous local partitioning algorithm, due to Andersen, Chung, and Lang, has the same approximation guarantee but a larger work/volume ratio of O(φ −1 polylog(n)). As an application of our local partitioning algorithm, we construct a fast algorithm for finding balanced cuts. The resulting algorithm takes as input a graph and a fixed value of φ, has complexity (m + nφ −1/2 )) · O(polylog(n)), and returns a cut with conductance O(φ 1/2 log 1/2 n) and volume at least v φ /2, where v φ is the volume of the largest set in the graph with conductance at most φ. A local graph partitioning algorithm solves a targeted version of the classic sparsest cut problem; it finds a set with small conductance by adaptively examining a small subset of the input graph near a specified starting vertex. These algorithms are useful for finding a target cluster near an interesting vertex in a large graph, and for quickly finding a collection of many small clusters. Local partitioning algorithms have been applied to probe the community structure of social and information networks [10, 2, 13] , and have been used as subroutines to design fast algorithms for other partitioning problems [21, 23] .. Spielman and Teng introduced the first local partitioning algorithm with the following remarkable approximation guarantee and bound on its complexity [21, 23] . Their algorithm has a bounded work/volume ratio, which is the ratio between the work performed by the algorithm on a given run (meaning the number of operations or computational complexity), and the volume of the set it outputs. It also has a local approximation guarantee, which states (roughly) that if the starting vertex is contained in a set with conductance at most φ, then the algorithm will output a set with conductance at most f (φ). To find such a set, their algorithm computes a sequence of vectors that approximate the sequence of probability distributions of a random walk from the starting vertex. The support of these vectors is kept small by removing tiny amounts of probability mass at each step. The original version of their algorithm has an approximation guarantee of f (φ) = O(φ 1/3 log 2/3 n) and a work/volume ratio of O(φ −5/3 polylog(n)) [21] . An updated version has local approximation guarantee O(φ 1/2 log 3/2 n) and work/volume ratio O(φ −2 polylog(n)) [23] . Andersen, Chung, and Lang [1] introduced a local partitioning algorithm that computes a single personalized PageRank vector rather than a sequence of random walk distributions. Their algorithm has the approximation guarantee O(φ 1/2 log 1/2 n) and an improved work/volume ratio of O(φ −1 polylog(n)).. The evolving set process (ESP) is a Markov chain whose states are subsets of the vertex set of a graph. Its transition rule is a simple procedure that grows or shrinks the current set. Morris and Peres used the ESP, and the closely related volume-biased evolving set process (volume-biased ESP), to bound the mixing time of Markov chains in terms of their isoperimetric properties [18] . The volume-biased ESP is equivalent to the strong stationary dual of a random walk, which was introduced earlier by Diaconis and Fill [9] . Further applications of evolving sets were described in [16, 17] . In all of these results, evolving sets were used as analytical tools rather than algorithms.. In this paper, we design a local partitioning algorithm called EvoCut based on evolving sets. Our algorithm simulates the volume-biased evolving set process until a certain stopping time is reached, then outputs the resulting set. We prove that the algorithm has local approximation guarantee O(φ 1/2 log 1/2 n) and expected work/volume ratio O(φ −1/2 polylog(n)). To prove the local approximation guarantee, we bound the rate of growth of the sets in the volume-biased ESP; we prove a lower bound that depends on the conductance of the sets observed by the process, and an upper bound that depends on the conductance of certain sets that contain the starting vertex. To bound the work/volume ratio, we introduce an efficient method for simulating the volume-biased ESP that updates the vertices on the boundary of the current set and ignores vertices in the interior. The work required to generate a sample path using this method is proportional to the cost of the sample path, which depends on the boundaries of the sets observed and the difference between successive sets. Using a martingale argument, we prove that the expected ratio between the cost of a sample path and the volume of the set output is O(φ −1/2 polylog(n)), which bounds the work/volume ratio of our algorithm. The main theorem about EvoCut, which gives a precise statement of its work/volume ratio and local approximation guarantee, is stated in Section 1.1. In Table 1 , we compare EvoCut with existing local partitioning algorithms.. One application of our local partitioning algorithm is a fast algorithm for finding balanced cuts. Spielman and Teng showed how to find a balanced cut in nearly linear time by repeatedly removing small sets from a graph using local partitioning [21] . Applying their technique with our local partitioning algorithm yields an algorithm EvoPartition that has complexity (m + nφ −1/2 ) · O(polylog(n)). It outputs a set of vertices whose conductance is O(φ 1/2 log 1/2 n) and whose volume at least half that of any set with conductance at most φ (where φ is an input to the algorithm). This algorithm is faster by a factor of roughly φ 1/2 than any existing algorithm that provides a nontrivial approximation guarantee for the balanced cut problem, although several algorithms provide stronger approximation guarantees. The fastest previously known algorithms for finding balanced cuts are due to Arora-Kale [4] and Orecchia et al. [19] . These produce cuts with conductance O(φ log n), and their complexity is (m + min(n/φ, n 3/2 )) · O(polylog(n)), which is dominated by the cost of solving polylogarithmically many single-commodity flow problems.. In section 2, we review the basic properties of the ESP and volume-biased ESP. In section 3, we show how to find cuts with small conductance by generating sample paths from the volume-biased ESP. In section 4, we describe an algorithm for simulating the volume-biased ESP. We then construct EvoCut and prove the main theorem about its work/volume ratio and local approximation guarantee. In section 5, we describe the balanced cut algorithm EvoPartition. algorithm work/volume ratio approximation Nibble [21] O(φ −5/3 polylog(n)) O(φ 1/3 log 2/3 n) Nibble [23] O Here n = |V | is the number of vertices in the graph.

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


Lie Group Variational Integrators for the Full Body Problem We develop the equations of motion for full body models that describe the dynamics of rigid bodies, acting under their mutual gravity. The equations are derived using a variational approach where variations are defined on the Lie group of rigid body configurations. Both continuous equations of motion and variational integrators are developed in Lagrangian and Hamiltonian forms, and the reduction from the inertial frame to a relative coordinate system is also carried out. The Lie group variational integrators are shown to be symplectic, to preserve conserved quantities, and to guarantee exact evolution on the configuration space. One of these variational integrators is used to simulate the dynamics of two rigid dumbbell bodies. The full body problem studies the dynamics of rigid bodies interacting under their mutual potential, and the mutual potential of distributed rigid bodies depends on both the position and the attitude of the bodies. Therefore, the translational and the rotational dynamics are coupled in the full body problem. The full body problem arises in numerous engineering and scientific fields. For example, in astrodynamics, the trajectory of a large spacecraft around the Earth is affected by the attitude of the spacecraft, and the dynamics of a binary asteroid pair is characterized by the non-spherical mass distributions of the bodies. In chemistry, the full rigid body model is used to study molecular dynamics. The importance of the full body problem is summarized in [7] , along with a preliminary discussion from the point of view of geometric mechanics.. The full two body problem was studied by Maciejewski [12] , and he presented equations of motion in inertial and relative coordinates and discussed the existence of relative equilibria in the system. However, he does not derive the equations of motion, nor does he discuss the reconstruction equations that allow the recovery of the inertial dynamics from the relative dynamics. Scheeres derived a stability condition for the full two body problem [20] , and he studied the planar stability of an ellipsoid-sphere model [21] . Recently, interest in the full body problem has increased, as it is estimated that up to 16% of near-earth asteroids are binaries [13] . Spacecraft motion about binary asteroids have been discussed using the restricted three body model [22] , [2] , and the four body model [23] .. Conservation laws are important for studying the dynamics of the full body problem, because they describe qualitative characteristics of the system dynamics. The representation used for the attitude of the bodies should be globally defined since the complicated dynamics of such systems would require frequent coordinate changes when using representations that are only defined locally. General numerical integration methods, such as the Runge-Kutta scheme, do not preserve first integrals nor the exact geometry of the full body dynamics [4] . A more careful analysis of computational methods used to study the full body problem is crucial.. Variational integrators and Lie group methods provide a systematic method of constructing structure-preserving numerical integrators [4] . The idea of the variational approach is to discretize Hamilton's principle rather than the continuous equations of motion [17] . The numerical integrator obtained from the discrete Hamilton's principle exhibits excellent energy properties [3] , conserves first integrals associated with symmetries by a discrete version of Noether's theorem, and preserves the symplectic structure. Many interesting differential equations, including full body dynamics, evolve on a Lie group. Lie group methods consist of numerical integrators that preserve the geometry of the configuration space by automatically remaining on the Lie group [5] .. Moser and Vesselov [18] , Wendlandt and Marsden [25] developed numerical integrators for a free rigid body by imposing an orthogonal constraint on the attitude variables and by using unit quaternions, respectively. The idea of using the Lie group structure and the exponential map to numerically compute rigid body dynamics arises in the work of Simo, Tarnow, and Wong [24] , and in the work by Krysl [8] . A Lie group approach is explicitly adopted by Lee, Leok, and McClamroch in the context of a variational integrator for rigid body attitude dynamics with a potential dependent on the attitude, namely the 3D pendulum dynamics, in [9] .. The motion of full rigid bodies depends essentially on the mutual gravitational potential, which in turn depends only on the relative positions and the relative attitudes of the bodies. Marsden et al. introduce discrete Euler-Poincaré and Lie-Poisson equations in [14] and [15] . They reduce the discrete dynamics on a Lie group to the dynamics on the corresponding Lie algebra. Sanyal, Shen and McClamroch develop variational integrators for mechanical systems with configuration dependent inertia and they perform discrete Routh reduction in [19] . A more intrinsic development of discrete Routh reduction is given in [10] and [6] . Eight different forms of the equations of motion for the full body problem are derived. The continuous equations of motion and variational integrators are derived both in inertial coordinates and in relative coordinates, and each set of equations of motion is expressed in both Lagrangian and Hamiltonian form. The relationships between these equations of motion are summarized in Fig. 7 . This commutative cube was originally given in [6] . In the figure, dashed arrows represent discretization from the continuous systems on the left face of the cube to the discrete systems on the right face. Vertical arrows represent reduction fromSubstituting (16) into the above equation, we obtain δX = −η 2 R T 2 (x 1 − x 2 ) + R 2 (δx 1 − δx 2 ), = −η 2 X + χ, where the reduced variation χ : [t 0 , t f ] → R 3 is defined to be χ = R 2 (δx 1 − δx 2 ).. From the definition of Ω = RΩ 1 and (10), S(δΩ) is given by. Substituting (42) and (17) which is equivalent to (45). The variation δV 2 can be derived in the same way, and S(δΩ 2 ) is given in (17) .

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


Interval completion with few edges We present an algorithm with runtime O(k 2k n 3 m) for the following NP-complete problem [8, problem GT35]: Given an arbitrary graph G on n vertices and m edges, can we obtain an interval graph by adding at most k new edges to G? This resolves the long-standing open question [17, 6, 24, 13] , first posed by Kaplan, Shamir and Tarjan, of whether this problem could be solved in time f (k) · n O(1) . The problem has applications in Physical Mapping of DNA [11] and in Profile Minimization for Sparse Matrix Computations [9, 25] . For the first application, our results show tractability for the case of a small number k of false negative errors, and for the second, a small number k of zero elements in the envelope.Our algorithm performs bounded search among possible ways of adding edges to a graph to obtain an interval graph, and combines this with a greedy algorithm when graphs of a certain structure are reached by the search. The presented result is surprising, as it was not believed that a bounded search tree algorithm would suffice to answer the open question affirmatively. The running time of our algorithm can probably be improved somewhat. Our goal was to show that the k-Interval Completion problem was FPT. Known techniques did not seem to work for this case, as interval graphs do not have a finite set of forbidden subgraphs, and moreover they have arbitrarily large forbidden subgraphs that could be made interval with the addition of a single edge. Still, we were able to handle this situation by means of a clever deployment of the bounded search tree technique.. Could it possibly be the case that for any hereditary graph class which is recognizable in polynomial time the kcompletion problem for this graph class might be FPT? This seems too good to be true, but we know of no counterexamples, and leave it as an interesting question for future work.. For example, what about perfect graphs?

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


Adaptive nearest neighbor search for relevance feedback in large image databases Relevance feedback is often used in refining similarity retrievals in image and video databases. Typically this involves modification to the similarity metrics based on the user feedback and recomputing a set of nearest neighbors using the modified similarity values. Such neatest neighbor computations are expensive given that typical image features, such as color and texture, are represented in high dimensional spaces. Search complexity is a critical issue while dealing with large databases and this issue has not received much attention in relevance feedback research. Most of the current methods report results on very small data sets, of the order of few thousand items, where a sequential (and hence exhaustive search) is practical. The main contribution of this paper is a novel algorithm for adaptive nearest neighbor computations for high dimensional feature vectors and when the number of items in the database is large. The proposed method exploits the correlations between two consecutive nearest neighbor searches when the underlying similarity metric is changing, a&filters out a significant number of candidates in a two stage search and retrieval process, thus reducing the number of l/O accesses to the database. Detailed experimental results are provided using a set of about 700,000 images. Comparison to the existing method shows an order of magnitude overall improvement. In recent years, there has been considerable work on the use of low level visual features for content based image and video retrieval. Much of this work focus on feature extraction and on combining multiple image features, such as color and texture, for effective retrieval. Classic examples are the IBM's QBIC [ 131 and the Virage image search engine [l] . While the low level features Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. are quite effective in "similarity" retrieval, the similarity is not necessarily at a semantic level. This has been generally acknowledged in the image retrieval literature. In this work an adaptive search scheme for computing nearest neighbors of a given query in the context of relevance feedback is presented. During relevance feedback iterations, the underlying similarity metric is changing. The proposed method exploits the correlations between the nearest neighbors in successive iterations to filter out a large number of otherwise potential candidates in a two phase search process. The method is tested on a large image database and a significant performance improvement is demonstrated. The proposed method thus facilitates iterative learning in large databases so that the scalability of the learning algorithms can be better understood. While we discuss the proposed algorithm in the context of approximation based index structures, similar modifications can be made to tree based index structures as well. Also, it can be extended to cases where the weight matrix in the relevance feedback update is not diagonal. In this section, we demonstrate the effectiveness of the proposed approach over a large image database.

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


Object-oriented construction of a multigrid electronic-structure code with Fortran 90 We describe the object-oriented implementation of a higher-order finitedifference density-functional code in Fortran 90. Object-oriented models of grid and related objects are constructed and employed for the implementation of an efficient one-way multigrid method we have recently proposed for the density-functional electronic-structure calculations. Detailed analysis of performance and strategy of the one-way multigrid scheme will be presented. In recent years, the usefulness of the real-space technique based on three-dimensional uniform grid and accurate forms of finite-difference formula has been demonstrated for the electronic-structure calculations [1] [2] [3] [4] [5] [6] . Since all the computations are performed in real space, the major part of the calculations are local operations, which makes the algorithm easily parallelized and implementation of order-N algorithm [7] transparent. This is in contrast to plane wave method methods which rely upon global fast Fourier transforms. Furthermore, since the Laplacians and potential-wave functions multiplications are respectively evaluated by the finite-difference operation on the wave functions and a simple one-dimensional vector multiplications on the fly, explicit storage of the Hamiltonian matrix elements can be avoided and the matrix diagonalization can be efficiently performed by iterative diagonalization methods such as conjugate gradient method.. Although there has been great emphasis on the algorithmic developments in the realspace electronic-structure calculation schemes, we feel that the issue of the code construction and organization has been relatively neglected. Recently, we have proposed an efficient and easy-to-implement one-way multigrid algorithm which results in significant enhancement in computation speed for grid-based iterative electronic-structure calculations [8] . In spite of the advantage of the multigrid in general [9, 10, 12] , it requires complications of coding and organization of data structure because it involves several grid levels and data transfer between them. In such a situation, we found the modern programming construction paradigm, object-oriented 1 programming [13] can be useful. Our original code was written in Fortran 90 [14] with heavy recycling of our previous planewave codes written in Fortran 77, in conventional non-object-oriented programming style, with the purpose of typical scientific programming, namely the quick implementation of a physical idea. Although we tried to keep the code maintainable and clear, it quickly became long and messy with each addition of function and implementation of an idea. We recognized that the complexity of the conventional programming style is an obstacle, or at least a complication, especially for the implementation of multigrid. Hence, we restructured the code by introducing object-oriented modeling concepts, and in this work we will report our experience of this transition and the implementation of the multigrid method with the newly designed code. Although objectoriented programming should be most straightforward in object-oriented languages such as C++, it is in principle also possible in non-object-oriented languages [13] , and especially relatively easy with Fortran 90 which supports many ingredients of object-oriented coding. Object-oriented scientific programming using Fortran 90 has been of much interest in recent years [15] [16] [17] [18] [19] , and this paper will add additional information to this discussion. In addition, since grid-based simulations are common in other scientific and engineering computations, we expect our work is a helpful guide for the code construction in those fields.. The outline of the current paper is as follows. In Sec. II, we first describe the electronicstructure calculation scheme within the Kohn-Sham density-functional theory, and our methodology based on the higher-order finite difference formulation. In Sec. III, we review the key concepts of object-oriented methodologies, and describe the introduction of object-oriented concepts into our grid-based program written in Fortran 90. In Sec. IV, we briefly review the multigrid theory, and describe the one-way multigrid scheme which we have recently proposed [8] . Implementation of the one-way multigrid method is discussed, and especially the simplification induced by the object-oriented design is emphasized. The impressive enhancement of computational efficiency due to the introduction of the one-way multigrid method has been demonstrated in our previous publication, and here more detailed analysis of performance test and multigrid strategy will be reported. The current work will be summarized in Sec. V.

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


Predicates for line transversals to lines and line segments in three-dimensional space When an observer is in a 3D scene, a topological change in the view arises when the line of sight is tangent to four objects. If we consider polyhedral scenes, the relevant lines of sight are transversals to some edges of the polyhedra. In this paper we investigate predicates about visibility events arising in this context. Namely, we consider the predicates for counting the number of line transversals to lines and segments in 3D and the predicate for determining whether a line of sight is intersected by a triangle. We also consider a predicate that order these visibility events in the rotating plane-sweep algorithm of Brönnimann et al. (2007) We present a new approach for solving these predicates and show that the degree of the resulting procedures are significantly smaller than the naive approach based on Plücker coordinates. All the degrees are considered here in the Cartesian coordinates of the points defining the lines and segments. In particular, we present a procedure of degree 12 (resp. 15) for determining the number of transversals to four (resp. five or more) segments. We present procedures of degree 15 for the occlusion predicate and of degree 36 for the ordering predicate. In comparison, the degree of the standard procedure based on the Plücker coordinates for solving these predicates range from 36 to 168 . The computation of visibility between objects in threedimensional space is one of the main problems of computer graphics, useful for hidden parts elimination, umbra and penumbra computations, radiosity methods. . . [5] . The visibility skeleton of a set of polyhedra can be computed by sweeping the space by a plane rotating around each edge of the scene in O(n 2 k 2 log n) time for a scene of k convex polyhedra of total complexity n [1] . In this sweeping algorithm an event corresponds to a line stabbing four edges of the scene. As any geometric algorithm, visibility computation relies on basic geometric tests called predicates involving a small number of input objects; the answer of a predicate is discrete, typically it is a sign +/ − /0 that can be interpreted by something like inside/outside/on boundary or above/below/same height. Going from the geometric formulation of a predicate (is an object above another?) to an actual implementation consists in finding one (or several) polynomial(s) in the parameters describing the objects such that the sign (or a combination of the signs) of the polynomial(s) gives the answer to the geometric question.. For a given geometric problem, what a good design is for a predicate remains a difficult question. Between several polynomial formulations, the set of polynomials with lowest maximal degree is often preferred since the degree of a polynomial is closely related to the precision of the computation needed to evaluate exactly this polynomial, and such exact evaluation may be needed to solve robustness issues using the exact computation paradigm [10] . Notice that this study is restricted to predicates implemented by computing the sign of polynomials; divisions, modular operations, factorizations are not considered here.. For our visibility problems, the predicates needed include: -the existence of a stabbing line to four edges (or more edges to take degeneracies into account), -the fact that a triangle occludes or not a stabbing line and -the comparison of such stabbing lines in the sweep order.

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