A blocked QR-decomposition for the parallel symmetric eigenvalue problem In this paper we present a new stable algorithm for the parallel QR-decomposition of "tall and skinny" matrices. The algorithm has been developed for the dense symmetric eigensolver ELPA, whereat the QR-decomposition of tall and skinny matrices represents an important substep. Our new approach is based on the fast but unstable CholeskyQR algorithm [1] . We show the stability of our new algorithm and provide promising results of our MPI-based implementation on a BlueGene/P and a Power6 system. Finding the eigenvalues and eigenvectors of a symmetric matrix is a widespread problem in linear algebra. If the symmetric matrix is dense, the most suited proceeding is to (1) reduce the matrix to symmetric tridiagonal form, (2) solve the tridiagonal eigensystem and (3) if eigenvectors are desired, transform the eigenvectors of the tridiagonal eigensystem back to those of the dense matrix. Thereby, the reduction to tridiagonal form is the bottleneck of the whole algorithm in terms of runtime [2] . A detailed analysis of the parallel tridiagonalization can be found in [3] . There are two major reasons limiting the performance. On the one hand, a huge amount of operations (∼ 50%) has to be performed using memory bound matrix-vector operations (BLAS2), limiting the sequential performance of the algorithm. On the other hand, a high number of messages limits the scalability of the parallel execution on distributed memory systems.. In our recent publications ( [4] , [5] ) we presented a parallel symmetric eigensolver where the tridiagonalization is done in two steps leading to staggering results in both, absolute performance and scaling behavior. The implementation is meanwhile publicly available as a library under the name ELPA [6] .. The two-step tridiagonalization was originally presented in [7] . At first, the full symmetric matrix of size n is reduced to symmetric banded form with (semi)bandwidth b. In a second step the banded matrix is reduced to tridiagonal form. Except of lower order terms, the first step Parallel algorithm Flops on critical path Messages Comm. volume PDGEQRF 3 log(P ) log(P ) n 2 2 log(P ) Table 1 : Out of [9] : Performance model of selected parallel QR-decomposition algorithms. n × m stands for the size of the matrix, P for the number of parallel processes. PDGEQRF represents the ScaLAPACK QR-decomposition, based on the classical Householder approach.. can entirely be done using matrix-matrix operations (BLAS3). The second step uses BLAS2 but requires asymptotically less operations compared to step one (6n 2 b vs. 4/3n 3 ). Algorithm 1 outlines the band reduction of a symmetric matrix A. The algorithm consists Algorithm 1 Symmetric band reduction. Q, R ← QRDecomposition(A (col+b:n,col:col+b−1) ) We have presented a new blocking strategy for the parallel QR-decomposition which significantly reduces the synchronization requirements. The algorithm has been developed for the parallel symmetric eigensolver ELPA, but can be used wherever a scalable QR-decomposition of tall and skinny matrices is required. Moreover, the implementation can be used as a basic building block for the QR-decomposition of general rectangular matrices.. In each step, the algorithm generates and applies k Householder transformations instead of one. This reduces the number of messages for the execution on a distributed memory system. We have defined a stability criterion for the algorithm. If this criterion is not fulfilled, we switch back to lower blocking such that numerical stability is guaranteed.. Benchmarks on a BlueGene/P and a Power6 system have shown that the new implementation clearly outperforms the QR-decompositions in ScaLAPACK (routine PDGEQRF) and ELPA.. 11

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


Improving operational effectiveness of tactical master plans for emergency and elective patients under stochastic demand and capacitated resources This paper develops a two-stage planning procedure for master planning of elective and emergency patients while allocating at best the available hospital resources. Four types of resources are considered: operating theatre, beds in the medium and in the intensive care units, and nursing hours in the intensive care unit. A tactical plan is obtained by minimizing the deviations of the resources consumption to the target levels of resources utilization. Some capacity is reserved for emergency care. To deal with the deviation between actually arriving patients and the average number of patients on which the tactical plan is based, we consider the option of planning a higher number of patients (overplanning). To adapt the tactical plan to the actual stream of elective patients, we also consider flexibility rules. Overplanning and flexibility leads to a weekly schedule of elective patients. This schedule is modified to account for emergency patients. Scheduled elective patients may be cancelled and emergency patients may be sent to other hospitals. Cancellations rules for both types of patients rely on the possibility to exceed the available capacities. Several performance indicators are defined to assess patient service/dissatisfaction and hospital efficiency. Simulation results show a trade-off between hospital efficiency and patient service. We also obtain a rank of the different strategies: overplanning, flexibility and cancellation rules.Keywords: operation theatre planning, intensive and medium care, emergency and elective patients, overplanning, cancellation rules, operational schedule of patients, master surgical schedule. Master surgical plans can contribute to a balanced use of resources such as beds, operating theatres and nursing staff. Beliën and Demeulemeester (2007) propose a three-stage procedure for developing effective operating room (OR) schedules with a multi-resource perspective: allocation of OR time to surgical specialties at strategic level, development of a master surgery schedule at tactical level and scheduling individual patients at operational level. Van Oostrum et al. (2008) build their two-phase decomposition approach around surgical procedure types: defining the mix of procedures to be performed and scheduling the surgery types. Both studies report on improved performance on the use of resources by using a cyclic master surgical plan.. However, the operational performance can differ strongly from the expected performance of the tactical plan for several reasons. One reason is that the tactical master plan needs to be translated into an operational plan used for scheduling the patients; the operational plan may deviate from the tactical plan due to short-term availability of resources or due to the need to schedule more patients because of an unacceptable rise in waiting time. Another reason can be emergency admissions, because they have priority to elective admissions. What happens when there are more emergencies arriving than expected? This may place more demand on intensive care (IC) beds. It may be necessary to cancel elective patients that will need an IC bed after the surgical procedure. Thus, the balanced use of resources of the master schedule may result in a much poorer performance on operational level. In this study we will consider the questions of how to develop more robust tactical plans and how to translate those plans into operational plans. First we will summarize the literature tackling this issue. Then we will introduce our approach to this problem. Harper (2002) already emphasized the need for patient classification techniques for a better management of hospital resources. He develops a simulation model designed to assess the impact of the flow of emergency and elective patients over the use of three major resources: beds, operating theatres and medical staff. Simulation models are used for their predictive value as in the work of Ridge et al. (1998) which evaluates in particular the bed occupancy level when setting to some value the transfer rate of emergency patients to other hospitals. Emergency transferal as a way to manage patient overflow also is analysed in the paper of Litvak et al. (2008) . The authors consider several regional hospitals that jointly reserve a number of beds in their intensive care unit for emergency patients. The authors develop an analytical approach to compute the number of regional beds to be reserved for any acceptance rate and show that cooperation leads to a higher acceptance rate with a lower number of reserved beds. One way to deal with overflow is to develop operational strategies to gain capacity. To that purpose, Cochran and Roche (2009) design a split patient flow model to treat lower acuity patients in a separate queue from higher acuity patients waiting for a bed.. On a more tactical level, the available capacity has to be divided over the elective patients and the emergencies. Dealing with emergency patients may amount to determine the level of capacity required to operate a pattern of elective patients so as to keep the deferral rate as low as possible. For instance, Utley et al. (2003) use generating functions to estimate the bed needs depending on overall levels of elective admissions and emergency arrivals. Lamiri et al. (2008) develop a stochastic model for operating room planning to deal with both an elective and emergency demand for surgery. The objective is to assign elective patients to periods so as to minimize the sum of elective patient related costs and overtime costs of operating rooms.. The purpose of this paper is two-fold. First we design an optimisation approach to determine a tactical plan with reserved capacity for emergency patients. Then we develop operational strategies to deal with the actual flow of elective and emergency patients on a weekly and daily basis. We will illustrate our approach with data related to thoracic surgery, using a setting from a Dutch Thorax Centre described hereafter. We consider several groups of patients according to their demand profile on resources; each of these groups being homogeneous in terms of the use of four main resources: operating theatres, beds in intensive care unit, beds in medium care unit and nursing staff. The groups can be linked to pathology categories or procedure types.. In the medium-run, operating theatre management requires a plan for all elective patients to be operated over a given horizon, generally four weeks, in order to allocate at best the major resources while not exceeding the available capacity. Part of this capacity is reserved for emergency patients. The problem is modelled as a mixed integer program the objective function of which consists in minimizing a weighted sum of deviations of resources consumptions to the target levels of resources utilization in order to obtain a smooth allocation of patients over the planning horizon. The resulting tactical plan is used to derive a weekly operational schedule for elective patients (see Figure 1) . The actual operational performance will be influenced by actual lengths of stay and by emergency arrivals. In this planning phase, the only remaining control option is to cancel some operations. This final daily plan will be described as the execution plan. In this paper, we have presented a mixed integer program to obtain a tactical plan that accounts for emergency patients by reserving capacities for these patients. Overplanning and flexibility rules were proposed to derive an operational plan from the tactical plan. To deal with daily emergency patients, we have developed a daily scheduling algorithm with cancellations rules for both elective and emergency patients. Simulation results show an obvious trade-off between patients' dissatisfaction and hospital inefficiency: increasing patient satisfaction can only be made at the expense of a decreasing hospital efficiency. Strategies behind patient satisfaction involve overplanning, intermediate flexibility (with an increased satisfaction for electives only) and soft cancellation rules (i.e. allowing for capacity excess). Such strategies lead to schedule changes and capacity excess, two components of hospital inefficiency.. Further improvements may be brought to our daily scheduling algorithm. Cancellations of elective patients are currently implemented by scanning patients category by category. However less cancellation with a better capacity allocation could be obtained by considering several combinations of elective patients as candidate for cancellations. Comparison of the proposed tactical and operational strategies with existing ones could be implemented. First, existing strategies should be adapted to our hospital context. Comparisons of strategies are indeed tedious to implement due to a lack of unifying framework that implies a high degree of customization in the design of strategies. In our paper, we have utilized Cplex to obtain a tactical plan. But most hospitals are not equipped with such a software. We could instead develop heuristics to obtain a tactical plan. This would give rise the opportunity to assess the impact of the quality of the tactical plan on the performance of our strategies.. Capacity of the operating theatre during the current night shift and day shift, respectively (in hours); Utilization of operating rooms during the current night shift and day shift, respectively (in hours);. Other resources capacity for the current day under examination;. Other resources utilization in the current day; Table A1 . Notations. It should be noted that sets AOP, DEA, RDE, RNE and SEP are of the form where is the number of patients in category i (to be) operated in the different sets. Dealing with emergency arrivals implies a comparison between the projected resource consumption required to operate both the emergency and elective patients and the available resources. This may lead to cancelling operations by postponing some planned elective patients and/or by sending some emergency patients to other hospitals. In the latter case, we assume that only emergency patients arriving during the day may be sent to another hospital whereas night emergency arrivals are all admitted for operation.. Each time a patient is operated, we provide an estimation of his length of stay in IC ( ) and in MC ( ). We consider these lengths of stay as deterministic. For patients in the set AOP that have been operated, the consumption of IC and MC resources is no longer based on probabilities. Let be the number of patients from category c, operated on day t-j that are (still) in the IC unit on day t:. The number of occupied beds in IC on day t is: .. For the patients in MC, we do not need any information on the categories; the number of patients in MC on day t is (10) Here we do not take into account the preoperative stay of patients that will be operated on day as we do not know yet the exact number of these patients due to the postponement rule that we apply in the daily scheduling algorithm. Below the algorithm is described step by step.

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


Keypoint recognition using randomized trees In many 3-D object-detection and pose-estimation problems, run-time performance is of critical importance. However, there usually is time to train the system, which we will show to be very useful.Assuming that several registered images of the target object are available, we developed a keypoint-based approach that is effective in this context by formulating wide-baseline matching of keypoints extracted from the input images to those found in the model images as a classification problem. This shifts much of the computational burden to a training phase, without sacrificing recognition performance. As a result, the resulting algorithm is robust, accurate, and fast-enough for frame-rate performance.This reduction in run-time computational complexity is our first contribution. Our second contribution is to show that, in this context, a simple and fast keypoint detector suffices to support detection and tracking even under large perspective and scale variations. While earlier methods require a detector that can be expected to produce very repeatable results in general, which usually is very time-consuming, we simply find the most repeatable object keypoints for the specific target object during the training phase.We have incorporated these ideas into a real-time system that detects planar, non-planar, and deformable objects. It then estimates the pose of the rigid ones and the deformations of the others. In many 3-D object-detection and pose estimation problems ranging from Augmented Reality to Visual Servoing, run-time performance is of critical importance. However, there usually is time to train the system before actually using it. Furthermore 3-D models, or multiple images from which such models can be built, tend to be available. As shown in Figures 1 and 2 , we describe here a technique designed to operate effectively in this context by shifting much of the computational burden to the training phase so that run-time detection becomes both fast and reliable.. Our approach, like many others, relies on matching interest points extracted from training images and those extracted from input images acquired at run-time under potentially large perspective and scale variations. What is new is to formulate this wide-baseline matching problem as a classification problem. More specifically, we consider the set of all possible appearances of each individual object keypoint as a class, which we refer to as the view-set. During training, given at least one image of the target object, we extract interest points and generate numerous synthetic views of their possible appearance under perspective distortion, which are then used to train a classifier. It is used at run-time to recognize the keypoints under perspective and scale variations by deciding to which view-set, if any, their appearance belongs. We advocate the use of randomized trees [2] as the classification technique, because they naturally handle multi-class problems and are robust and fast, while remaining reasonable easy to train.. Not only is this approach more principled than many earlier ones, but it yields a reduction in run-time computational complexity, which is our first contribution. Our method does away with having to compute ad hoc descriptors, rectify patches, and search for nearest-neighbors, which are time-consuming steps common in earlier methods [29] , [30] , [3] , [20] , [18] , [28] , [16] , [22] .. Another contribution is to show that, in this context, a simple and fast keypoint detector suffices for operation even under large perspective and scale variations, which results in a further increase in performance. While earlier methods require detectors that can be depended upon to produce very repeatable results, which can be very time-consuming, we simply find the most repeatable object keypoints for the specific target object during the training phase,. In the remainder of the paper, we first discuss related work and formulate wide-baseline matching as a classification problem. We then discuss the building of our view-sets and our use Fig. 1 . Detection of a book in a video sequence: As shown by the white outline, the book is detected independently and successfully in all frames at 25Hz in 640×480 images on a standard PC, in spite of partial occlusion, cluttered background, motion blur, large illumination and pose changes. In the last two frames, we add the inevitable virtual teapot to show we also recover 3-D pose.. of randomized-trees to perform the classification. Finally, we present our results. For planar objects such as the books of Figures 1 and 13 and the mouse pad of Figure 12 , we first use RANSAC to estimate an affine transformation between the reference image and the input image. It is then refined by robust least-squares estimation. As can be seen in the figures and the video sequences accessible on our website, the pose estimation is robust to illuminations changes, scale changes, occlusions, and some image blur. As shown in Figure 14 , we also applied our method for the detection of a sail over a 4000 thousand frame video taken with a home camcorder during a regatta. Despite the bad condition-the sail is not very textured, it moves in and out of the field of view, the camera motion is very jerky and the illumination changes all the time-the sail is detected in all frames where a sufficient portion of the sail is seen.. Our implementation has been tested on numerous objects under different lighting conditions using a simple webcam, and an executable can be downloaded from our website. It runs at 25 frames per second on a 2.8 GHz PC.. Figures 2 and 18 show detection results for the stuffed tiger for which a quickly built 3-D Fig. 14 . Detecting a sail. Four frames from a 4000 frame video acquired using a home camcorder during a regatta. Even though the camera jerks, the zoom changes and the lighting conditions are poor, the sail is detected in all frames, such as those shown above, where a sufficient portion of the sail is seen. model. We use a P3P algorithm and RANSAC to robustly estimate its pose. The object object is successfully detected from different sides, different distances and both from below and above.. We compared our results with those obtained using the executable that implements the SIFT method [16] kindly provided by David Lowe. As shown in Figures 16 and 17 , when there is little distortion, the SIFT approach yields a few more matches. However, when too much perspective distorts the object image, it produces far fewer, while our approach is not perturbed.. To be fair, we note again that this robustness comes at the cost of a training stage that SIFT does not require. If training is possible, as suggested in [16] and demonstrated in [26] , SIFT can be made more robust to distortions by using multiple views of the target object, storing all the SIFT features from these views, and matching against all of them. This does not significantly increase the matching time when approximate nearest-neighbor k-D tree search is used. It remains, however, less computationally effective than ours, which depends only on a gives a few more matches, but when too much perspective distorts the object image, it gives only few matches, while our approach is not perturbed.. limited number of pixel intensity comparisons.. As shown Figures 19 and 20 , our method can also be used to detect deformable objects and estimate their deformation at 10 frames per second on a 2.8 GHz PC. As described in [25] , objects are modeled by deformable meshes. The keypoints positions are expressed as weighted sums of the mesh vertices in the model image and change as the mesh is deformed. Fitting then amounts to minimizing a criterion that is the sum of two terms. The first is a robust estimate of the square distances of the keypoints in the model image to that of the corresponding ones in the input image. The second is a quadratic deformation energy [10] . This quadratic term allows the use of a semi-implicit minimization scheme that converges even when the initial estimate is very far from the solution, which, in our context, is what happens when the object is severely deformed. When combined with an appropriately defined robust estimator for the keypoint distances and optimization schedule, this approach to minimization allows real-time detection in under 100 milliseconds while being robust to large deformations, severe occlusions, and changes in lighting. In the area of automated 3D object detection, we can place existing approaches on a continuum ranging from purely "Global" ones to purely "Local" one. The former typically use machine learning techniques while the latter usually rely on less principled methods. A number of practical techniques, such as the coarse to fine method proposed in [9] , combine the strengths of both kinds of methods. We will argue that our approach also does this by applying machine learning techniques for the recognition of local parts, while providing an accurate 3D pose. For clarity's sake, in this section, we nevertheless classify approaches as either global or local according to which aspect dominates.. Global approaches use statistical classification techniques to compare an input image to several training images of an object of interest and decide whether or not it appears in this input image. The methods used range from relatively simple methods such as Principal Component Analysis and Nearest Neighbor search [24] to more sophisticated ones such as AdaBoost and classifiers cascade to achieve real-time detection of human faces at varying scales [9] , [31] . These approaches focus on recognizing instances of generic classes without providing an accurate 3D pose estimation. Some of them can handle tens of instances of the object class in one image [8] and is shown to achieve robustness to occlusion and clutter. However, to be effective in our context, the feature extraction and characterization should also be insensitive to viewpoint and illumination changes.. As proposed in [14] , scale-invariant extraction can be achieved by taking the local extrema of a Laplacian-of-Gaussian pyramid in scale-space as feature points. To increase computational efficiency, the Laplacian can be approximated by a Difference-of-Gaussian [15] . More recent work has focused on achieving affine invariant region detection to handle large perspective distortions as well. [3] , [28] , [20] used an affine invariant point detector based on the Harris detector, where the affine transformation that equalizes the two eigenvalues of the auto-correlation matrix is evaluated to rectify the patch appearance. [30] achieves invariance by fitting an ellipse to the local texture. [18] proposes a fast algorithm to extract Maximally Stable Extremal Regions. [22] gives an extensive study on these affine invariant regions detectors.. Given the extracted feature points, various local descriptors have been proposed [29] , [23] .. Among these, the SIFT descriptor [16] has been shown to be one of the most effective [21] .. It relies on local orientation histograms and tolerates significant local deformations. In [22] , it is applied to rectified affine invariant regions to achieve perspective invariance. In [26] , a similar result is obtained by training the system using multiple views of a target object, storing all the SIFT features from these views, and matching against all of them. [11] performs Principal Component Analysis on such local orientation histograms, which appears to improve the reliability of this representation. However, such descriptors can be costly, and whatever the chosen descriptor is, matching is performed by nearest-neighbor search, which tends to be computationally expensive, even when using an efficient data structure [4] .. By contrast, in earlier work [13] , we argued that formulating wide-baseline matching as a classification problem let us shift much of the computational burden to a training phase. This reduces the cost of online matching while increasing its robustness. In this early work, we used PCA as the classification technique. Here, we advocate further reducing the run-time computational complexity by using Randomized Trees instead. They have been extensively used for character recognition [2] and more recently for image classification [17] . They require additional training in exchange for increased run-time efficiency because they let us replace projection in the eigenspace and nearest-neighbor search by simple binary tests on image graylevels.. Classification as a technique for wide baseline matching has also been explored in parallel to our own work [19] . In this approach, the training set is iteratively built from incoming frames.. While this is well-adapted for applications that do not allow for a training stage, this approach was not designed to allow recognition from views that are very different from those already seen.. Furthermore, it uses kernel PCA, which is even more computationally expensive than PCA-based classification. the N keypoints k i . In other words, we want to find for p(k input ) its class label Y (p) ∈ C = {−1, 1, 2, . . . , N }, where the −1 label denotes all the points that do not belong to K. Since Y cannot be directly observed, we build a classifierŶ such as P (Y (p) =Ŷ (p)) is small.

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


Forecasting with a noncausal VAR model We propose simulation-based forecasting methods for the noncausal vector autoregressive model proposed by Lanne and Saikkonen (2012) . Simulation or numerical methods are required because the prediction problem is generally nonlinear and, therefore, its analytical solution is not available. It turns out that di¤erent special cases of the model call for di¤erent simulation procedures. Simulation experiments demonstrate that gains in forecasting accuracy are achieved by using the correct noncausal VAR model instead of its conventional causal counterpart. In an empirical application, a noncausal VAR model comprised of U.S. in ‡ation and marginal cost turns out superior to the best…tting conventional causal VAR model in forecasting in ‡ation. The conventional vector autoregressive (VAR) model has become a standard tool in various …elds of applications. In economics and …nance the VAR model is typically used in structural analysis to study the dynamics and interrelationships between variables of interest. Another application of the VAR model is forecasting. For instance, economic decision makers, such as central banks and investors in …nancial markets, aim to forecast key macroeconomic and …nancial time series to assess the future state of the economy and investment opportunities.. The conventional causal VAR model has a moving average representation in terms of its present and past error terms. A characteristic feature of this model is that its error terms are not predictable by past values of the involved time series.. In contrast, the moving average representation of the noncausal VAR model recently considered by Davis and Song (2010) and Lanne and Saikkonen (2012) also involve future error terms. In addition to theoretical advancements these authors demonstrate the practical usefulness of the noncausal VAR model in economic and …nancial applications. As discussed by Lanne and Saikkonen (2012) , an important economic application of the noncausal VAR model is checking the validity of widely used test procedures based on the causal VAR model in testing economic hypotheses, especially in models involving expectations.. As yet, the development of the noncausal VAR model is at its early stages and even the literature of univariate noncausal autoregressive models is scant (see Breidt et al. (1991) , Rosenblatt (2000) , Davis and Song (2010) , Saikkonen (2011, 2012) and the references therein). The object of this paper is to devise forecasting techniques for the noncausal VAR model of Lanne and Saikkonen (2012) . In addition to computing forecasts these techniques are also needed in computing impulse response functions, and hence in conducting structural analysis within the noncausal VAR model. Thus, our contribution should widen the applicability of the noncausal VAR model in empirical research.. In the causal VAR model, forecasting is simple in that explicit formulas are available. In the noncausal VAR model the situation is di¤erent because the pre-1 diction problem is, in general, nonlinear and, consequently, forecasts cannot be obtained without resorting to numerical methods. Further discussion on this point is provided by Lanne, Luoto, and Saikkonen (2012b) who develop a simulationbased forecasting method for the univariate noncausal AR model proposed by Lanne and Saikkonen (2011) . It turns out that forecasts of the considered noncausal VAR model can be computed analogously only when a suitable condition on the structure of the model holds. One case where the required condition always holds is the purely noncausal VAR model whose moving average representation only involves present and future error terms. In general, the required condition states that a certain parameter matrix involving the autoregressive coe¢ cients of the model is nonsingular. Due to estimation errors this nonsingularity always holds in practice but, to avoid potential problems with nearly singular cases, we develop a forecasting technique which does not depend on the structure of the model. To achieve this robustness, more demanding computations based on importance sampling are needed (see, e.g., Geweke (1996) for a general discussion of importance sampling).. We examine the properties of our forecasting techniques by means of Monte Carlo simulations which also provide guidance for some user-chosen quantities needed in the application of these techniques. The simulations conducted demonstrate that our forecasting techniques perform well and that the correct noncausal VAR model outperforms its causal counterpart in forecast accuracy.. An empirical application to in ‡ation forecasting illustrates the practical usefulness of our forecasting techniques. This application is partly inspired by the work of Lanne, Luoma, and Luoto (2012a) and Lanne et al. (2012b) who …nd that the univariate noncausal AR model outperforms its conventional causal counterpart in forecasting U.S. in ‡ation. We consider a bivariate system consisting of in ‡ation and the real marginal cost that has often been employed in monetary economics, especially in studies related to the New Keynesian Phillips Curve (see, e.g., Gali and Gertler (1999) , Nason and Smith (2008) , and the references therein). Our results are similar to those obtained by Lanne et al. (2012a Lanne et al. ( , 2012b in that a non-causal VAR model provides the best in-sample …t and outperforms the best-…tting causal VAR model in out-of-sample forecasting.. The rest of the paper is structured as follows. Section 2 describes the noncausal VAR model of Lanne and Saikkonen (2012) and brie ‡y discusses statistical inference. Section 3 develops the forecasting techniques of the paper, while Section 4 illustrates their performance by means of Monte Carlo simulations. Section 5 presents the empirical application. Section 6 concludes. Finally, some technical details are collected in three appendices. In this paper, we have developed forecasting methods for the noncausal VAR model of Lanne and Saikkonen (2012) . To our knowledge, this is the …rst attempt to make forecasting in noncausal VAR models practically feasible. Due to the nonlinear nature of the prediction problem explicit formulas to compute forecasts are not available and, therefore, our forecasting methods exploit simulation-based techniques. The needed techniques turned out to be more complex than in the univariate case of Lanne et al. (2012b) with the extent of complexity depending on the structure of the model. However, according to the simulation experiments conducted, the proposed forecasting methods perform quite well even in the most complicated case, where importance sampling is employed. They also appear feasible in practice, as illustrated by our empirical application where noncausal VAR models performed well in comparison with their causal counterparts.. By making forecasting in the noncausal VAR model of Lanne and Saikkonen (2012) feasible in practice this paper has paved the way for developing methods for structural analysis within these models, including the computation of impulse response functions. Lanne and Saikkonen (2012) . . . .. Here, as well as elsewhere, N k = 0 for k < (n 1) r. Furthermore, the matrices. Note that in the pure noncausal case only the matrices N j ; j 0, are relevant and the preceding equations apply with N j = 0; j < 0. Because the matrices j ; j = 1; :::; (n 1) r, are functions of the parameters 1 ; :::; r the preceding equations show how the coe¢ cient matrices N j can be computed as functions of the autoregressive parameters.. De…ne the matrix = 2 6 6 6 6 6 6 6 6 6 4 (sn sn) :. Then, using the de…nition of the matrix N k (see the beginning of Section 3.2.1). we have. First we demonstrate that the rows of the in…nite dimensional matrix [N 0 N 1 ] are linearly independent. As the spectral density matrix of y t is positive de…nite there can be no exact linear dependences between the components of the data vector y. Thus, as the vector z is obtained from y by a nonsingular linear transformation (see the discussion preceding (10)) it follows that there can be no exact linear dependences between the components of z. Hence, the same is true for z 3 = (v 1;T s+1 ; :::; v s;T ) and, as v k;T s+k = P 1 j= k+1 N j T s+k+j , we have 2 6 6 6 4. 2 6 6 6 6 6 6 6 6 6 4 T s+1. . . .. . . . Now we can proceed as in Hannan and Deistler (1988, p. 44-45 . Note that the preceding discussion also shows that the matrix N 0 must be nonzero because otherwise we would have N k = 0 for all k 0, implying that the The results show that there is a clear improvement in forecasting accuracy when the number of simulated realizations m increases from 10 000 to 100 000 or 200 000. This can be seen especially in the …rst variable (y 1t ). The improvement is much smaller when m increases from 200 000 up to 500 000. Tables 3 and 4 report results similar to those in Table 2 obtained for the VAR(1; 1) model with the two forecasting procedures developed in Sections 3.2.1 and 3.2.2. Whether importance sampling is used (Table 3) or not (Table 4) has only a minor e¤ect on the MSFEs and the determinants of the MSFE matrices.. By and large, forecasts based on the correct assumption of the nonsingularity of the matrix N 0 are slightly more accurate. As in the case of the VAR(0; 2) model, a clear improvement in forecasting accuracy is achieved by increasing the number of simulated realizations from 10 000 to 100 000 or 200 000 whereas further increases in the value of this parameter have only a marginal impact. Altogether the results. of Tables 2-4 suggest that, in practice, m = 200 000 is a reasonable choice. This is much more than needed in the univariate case where Lanne et al. (2012b) found the choice m = 10 000 to be su¢ cient. As a small illustration of the potential consequences of (incorrectly) using the forecasting procedure of Section 3.2.2 when the matrix N 0 is singular we consider the bivariate VAR(1; 1) model with the coe¢ cient matrices given in Footnote 1 (see the beginning of Section 3.2). Table 6 falsely relying on the nonsingularity assumption and employing the forecasting procedure of Section 3.2.2 is not critical. More evidence on this matter is needed, however, before any far-reaching conclusions can be drawn.. We also examined a fourth-order model to see how the two forecasting procedures derived in Section 3.2 perform in a higher-order case. The DGPs are again estimated from the same data (AIC suggests order four for causal models with t-distributed errors). Of the (Gaussian) fourth-order models, a VAR(1; 3) model maximizes the likelihood function. However, according to estimation results, this model appears overparameterized and does not perform well in terms of residual diagnostics. As the parameters 1;12 and j;12 , j = 1; 2; 3, are rather imprecisely estimated we restrict them to zero. These restrictions correspond to those used in the VAR(0; 2) and VAR(1; 1) models above, and when they are imposed a reasonable …t is obtained. Thus, we used this restricted VAR(1; 3) model as a DGP in the higher-order case. The auxiliary density function ' ( 2 ) needed in importance sampling was chosen as described at the end of Section 3.2.2 (in this case, four times the density function of the bivariate t-distributed error term t ). Qualitatively the simulation results were similar to those obtained with the VAR(1; 1) model (details are available upon request). In particular, whether importance sampling was used or not had no substantial e¤ect on the forecasting accuracy, and compared to the causal VAR(4) model the forecasts were more accurate.

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


A GP algorithm for efficient synthesis of GM-C filters on a hexagonal FPAA structure This work presents an approach based on Genetic Programming for the synthesis of continuous-time analog filters on a field-programmable analog array. A multi-objective algorithm is used to synthesize both the topology and parameter values of Gm-C filter structures to be instantiated on the FPAA based on a given filter specification. The presented algorithm is highly adapted to the underlying hardware platform, with the goal of making an efficient crossover of high-quality building blocks possible without biasing certain types of schemata. By manipulating of the program tree in the instantiation phase, it is assured that the resulting synthesized structure fits within the physical constraints of the underlying hardware platform. Since many years, the idea of reconfigurable analog hardware platforms, analogous to FPGAs in the digital domain, has been a topic of active research. The goal of these FieldProgrammable Analog Arrays (FPAAs) is to bring the flexibility of their digital counterparts to the analog world, allowing analog designers to use rapid prototyping techniques to shorten the typically full-custom, expensive and timeconsuming analog design process. Evolutionary algorithms offer a solution by which filters can be synthesized directly from the specification, possibly directly onto the target hardware, taking into account all available reconfigurable elements to build custom filter solutions. When compared to the GA in [1] , the presented GP algorithm reaches a higher fitness in the same number of evaluations. Trials were run with both algorithms for two selected example filter specifications. Fig. 2 shows the comparison of mean best fitness over 10 subsequent runs for both algorithms applied to both of the test problems. The number of evaluations was originally set to 1200, but could be reduced to 400 for the lowpass problem without a significant reduction of the solution quality in case of the GP algorithm.

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


Automating the implementation of Kalman filter algorithms AUTOFILTER is a tool that generates implementations that solve state estimation problems using Kalman filters. From a high-level, mathematics-based description of a state estimation problem, AUTOFILTER automatically generates code that computes a statistically optimal estimate using one or more of a number of well-known variants of the Kalman filter algorithm. The problem description may be given in terms of continuous or discrete, linear or nonlinear process and measurement dynamics. From this description, AUTOFILTER automates many common solution methods (e.g., linearization, discretization) and generates C or Matlab code fully automatically. AUTOFILTER surpasses toolkit-based programming approaches for Kalman filters because it requires no low-level programming skills (e.g., to "glue" together library function calls). AUTOFILTER raises the level of discourse to the mathematics of the problem at hand rather than the details of what algorithms, data structures, optimizations and so on are required to implement it. An overview of AUTOFILTER is given along with an example of its practical application to deep space attitude estimation. Once the mathematical models for a state estimation problem have been formulated, there is usually a significant amount of implementation work that has to be done before those models and their associated estimator can be tested. This is true even if existing libraries/toolkits are used to support implementation because such libraries still require "glue" code to be written to allow the library functions to work together. Testing usually suggests refinements to the models and/or the estimator that in turn results in additional coding effort. The goal of the AUTOFILTER project is to develop techniques and tools that substantially reduce the time and effort needed to develop reliable implementations of state estimators. AUTOFILTER is a knowledge-based tool that, given a high-level mathematical description of the process dynamics and measurements, can automatically generate a C or Matlab implementation that will compute a statistically optimal estimate of a specified state vector under the model assumptions. In particular, AUTOFILTER generates Kalman filter implementations and has so far been used on a number of applications and case studies concerning spacecraft attitude estimation and control. AUTOFILTER surpasses existing coding techniques (including the use of toolkits) for this class of problems because:. -analysts using AUTOFILTER need not be concerned with low-level implementation details; -analysts need not be concerned with some problem solving methods (e.g., linearization) because AUTOFILTER carries them out automatically; -changes in the model require no additional coding because AUTOFILTER just re-generates code for the updated model.. A Kalman filter [Brown and Hwang 1997 ] is a recursive algorithm for calculating the best estimate of a state vector, x , based on noisy measurements, z. The state vector contains variables of interest that will be estimated, for example, position and velocity. The Kalman filter estimate of this state vector incorporates knowledge given as a model of the process under analysis and a model of the relationship between the state vector and the measurements. AUT-OFILTER generates Kalman filter implementations from a description of these models and a description of x and z. Figure 1 gives an overview of the AUT-OFILTER tool. The problem description defines the physical characteristics of the problem in terms of the process model and measurement model. The process model can be defined in the usual way as a differential equation of the form d dt x (t) = f (x (t), t) + g(x (t), t)w(t). where f, g are functions, x (t) is the state vector, and w(t) is the Gaussian white process noise, with mean and covariance defined by In this article, we have presented AUTOFILTER, a code generation system to automatically synthesize Matlab/C/C++ code for state estimation from a compact and concise specification. Using a schema based approach combined with a powerful symbolic mathematics module, AUTOFILTER can automatically convert the process and measurement model (given as a set of differential equations) into a Kalman filter algorithm. We have demonstrated the capabilities of AUTOFILTER on a case study within the realm of NASA: the state-estimation module for the Deep Space I spacecraft. AUTOFILTER can produce code that performs the appropriate state estimation task, and which easily can be incorporated into a target software architecture.. One extension area for AUTOFILTER would be to incorporate recent improvements to the Kalman filter algorithm, for example, an unscented Kalman filter [Wan and van der Merwe 2000] . Current specifications rely on the fact that process and measurement noise is a white Gaussian noise. This assumption is a direct prerequisite in order to instantiate a Kalman filter. We are planning to extend AUTOFILTER such that it can handle cases with non-Gaussian noises. In such cases, modern filter algorithms, for example, particle filter [Doucet et al. 2001] , will automatically be generated.. Another area of extension will address the handling of sensor data. In most real applications, the state estimation module contains code to deal with sensor failures or to handle multiple sensor modes (e.g., used for different stages of a descent and landing process). A conservative extension of the AUTOFILTER specification language will allow us to specify sensor failures and sensor modes.. State estimation is a safety critical component of most flight software. Any error in specification, design, or implementation can lead to mission failures or even loss of life. Therefore, we are currently extending AUTOFILTER to support certification and review of the generated code. This means that it is not sufficient to just synthesize the code. Rather, we are developing a set of extensions for the synthesis system that can support a rigorous code review:. -the synthesized code is highly commented. In the current version, roughly one third of the lines of code are automatically generated comments. The structure and layout of the code is designed in such a way that the code reviewer can understand the code and easily relate it to the specification. An HTML version of the code can also be generated. It supports interactive navigation through the code.. -AUTOFILTER can generate a detailed design document. This design document combines all important pieces of information that show up during the synthesis process. Besides hyper-links to the specification and all generated artifacts (code, log files, etc), this document gives a detailed description of the interface and explicitly calls out detailed assumptions and design decisions.. We are confident that with an extended domain coverage and with certification support, the AUTOFILTER system will be a valuable tool for many state estimation problems in aircraft or spacecraft design or in robotics.

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


The Tiled Bitmap Forensic Analysis Algorithm Abstract-Tampering of a database can be detected through the use of cryptographically strong hash functions. Subsequently, applied forensic analysis algorithms can help determine when, what, and perhaps ultimately who and why. This paper presents a novel forensic analysis algorithm, the Tiled Bitmap Algorithm, which is more efficient than prior forensic analysis algorithms. It introduces the notion of a candidate set (all possible locations of detected tampering(s)) and provides a complete characterization of the candidate set and its cardinality. An optimal algorithm for computing the candidate set is also presented. Finally, the implementation of the Tiled Bitmap Algorithm is discussed, along with a comparison to other forensic algorithms in terms of space/time complexity and cost. An example of candidate set generation and proofs of the theorems and lemmata and of algorithm correctness can be found in the appendix, which can be found on the Computer Society Digital Library at http://doi.ieeecomputersociety Forensic analysis commences when a crime has been detected, in this case the tampering of a database. Such analysis endeavors to ascertain when the tampering occurred, and what data were altered.. Elsewhere, we proposed several forensic analysis algorithms [7] . The present paper expands upon that work by presenting the Tiled Bitmap Algorithm, which is cheaper and more powerful than prior algorithms. This algorithm employs a logarithmic number of hash chains within each tile to narrow down the when and what.. Checking the hash chain values produces a binary number; it is the task of the algorithm to compute the preimage of bitwise AND functions of that number. This produces a candidate set which identifies all the potentially corrupted granules. We showed that the running time of the algorithm is linear in the length of time the database has been in existence and linear in the size of the computed candidate set. We also note that previous algorithms do not handle multiple corruption events well, whereas the Tiled Bitmap Algorithm can independently analyze corruption events occurring both in different tiles and multiple corruption events occurring within a single tile. However, the Tiled Bitmap Algorithm suffers from false positive results while prior algorithms (Monochromatic, RGB, and Polychromatic) do not.. In the later parts of the paper, we analyzed completely the behavior of the candidate sets and developed an optimal algorithm to produce these candidate sets. We then introduced a constant-time algorithm which is preferable in the case when the target binary number is a suffix of another binary number for which a candidate set already exists. Finally, we compared prior forensic algorithms with the Tiled Bitmap Algorithm, providing a thorough space and time complexity analysis. We discussed the implementation of the algorithms and experimentally validated their cost. The Tiled Bitmap Algorithm uses additional chains (which incur a logarithmic runtime factor) to detect multiple corruption events, while requiring fewer requests of an external notarization server.. The ultimate goal is an algorithm that retains the logarithmic performance (of the additional chains) of the Tiled Bitmap Algorithm while further simplifying the analysis within a tile, furthering narrowing the bounds on when the tampering occurred, and providing additional forensic information, such as the direction of the tampering, i.e., whether the information was backdated or postdated. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. W IDESPREAD news coverage of collusion between auditors and the companies they audit (e.g., Enron and WorldCom) helped accelerate recent passage of federal laws (e.g., Health Insurance Portability and Accountability Act: HIPAA [12] , Sarbanes-Oxley Act [13] ) that mandate better controls on electronic data. Compliant records are those required by myriad laws and regulations to follow certain "processes by which they are created, stored, accessed, maintained, and retained" [2] .. We previously proposed an innovative approach in which cryptographically strong one-way hash functions allow the detection of a corruption event (CE), which is any event that corrupts the data and compromises the database. The corruption event could be due to an adversary, including an auditor or an employee or even an unknown bug in the software (be it the DBMS or the file system or somewhere in the operating system), or a hardware failure, either in the processor or on the disk [10] . Tamper detection is accomplished by hashing data manipulated by transactions and periodically validating the audit log database to detect when it has been altered. Validation involves sending the hash value computed over all the database to an external notarization service, which will indicate whether that value matches one previously computed. Should tampering have occurred, the two hash values will not match.. At this point, all that is known is that at some time in the past, data somewhere in the database have been tampered. Forensic analysis is needed to ascertain when the tampering occurred, and what data were altered. Knowing the "when" and "what" can give indirect clues to the CIO and CSO that would perhaps allow them to ultimately determine who the adversary is and why the corruption was done. The identification of the adversary is not explicitly dealt with.. Validation provides a single bit of information: has the database been tampered with? To provide more information about when and what, we hash the data of various sequences of transactions during validation. The database transactions are hashed in commit order creating a hash chain. Then, during forensic analysis of a subsequent validation that detected tampering, those chains can be rehashed to provide a sequence of truth values (success or failure), which can be used to narrow down "what. " We have elsewhere [7] proposed the Monochromatic, RGB, and Polychromatic forensic analysis algorithms. These algorithms differ in the amount of work necessary during normal processing (computing additional hash chains during periodic validation) and the precision of the when and what estimates produced by forensic analysis. Here, we introduce a more efficient algorithm, the Tiled Bitmap Algorithm.. We first present the threat model, then the Tiled Bitmap Algorithm by way of an example. This algorithm requires what we term as the candidate set. We then consider the more general problem of characterizing the candidate set, which can be utilized to produce two approaches for computing that set. This is followed by an evaluation of the implemented algorithm. We end with a discussion of previous work and a summary. access, at which point he has access to everything: the DBMS, the operating system, the hardware, and the data in the database. We still assume that the notarization and validation services remain in a trusted computing base. This can be done by making them geographically and perhaps organizationally separate from the DBMS and the database [5] , thereby effecting correct tamper detection even when the tampering is done by highly motivated insiders. (A recent FBI study indicates that almost half of attacks were by insiders [1] .) To prevent spoofing between the DBMS and the validator, it is possible to use a combination of Trusted Platform Modules (TPMs), mutual authentication, and a secure communication channel. The specifics of this scheme are beyond the scope of this paper.. The basic mechanism described in the next section provides correct tamper detection. If an adversary modifies even a single byte of the data or its time stamp, the independent validator will detect a mismatch with the notarized document, thereby detecting the tampering. The adversary could simply reexecute the transactions, making whatever changes he wanted, and then replace the original database with his altered one. However, the notarized documents would not match in time. Avoiding tamper detection comes down to inverting the cryptographically strong one-way hash function. An extensive presentation of the approach, performance limitations, tamper detection, threat model, and other forensic analysis algorithms can be found elsewhere [8] , [10] . There has been a great deal of work on records management, and indeed, an entire industry has arisen to provide solutions for these needs, motivated recently by SarbanesOxley [13] and other laws requiring compliant record storage. In this context, a "record" is a version of a document. These systems utilize magnetic disks (as well as tape and optical drives) to provide WORM storage of compliant records. We wish to extend the concept of Computer forensics is now an active field, with more than 50 books published in the last 10 years. However, these books are generally about preparing admissible evidence for a court case, through discovery, duplication, and preservation of digital evidence. There are few computer tools for these tasks, in part due to the heterogeneity of the data. One substantive example of how computer tools can be used for forensic analysis is Mena's book [6] .. Goodrich et al. introduce new techniques for using mainmemory indexing structures for data forensics [3] . They encode authentication information in the way a data structure is organized (not in the stored values) so that alterations can be detected. Their techniques are based on a new reduced-randomness construction for nonadaptive combinatorial group testing, using message authentication codes (MAC) built using cryptographically strong, one-way hash functions. In the database context, we have introduced in previous papers the approach of using cryptographic hash functions to detect database tampering [10] and of introducing additional hash chains to improve forensic analysis [7] . To the best of our knowledge, there are no other competing forensic analysis algorithms for highperformance databases.. Strachey has considered table lookup to increase the efficiency of bitwise operations [11] . He provides a logarithmic time/logarithmic space algorithm for reversing the bits in a word. Our second algorithm requires only constant time, but the table must be of exponential space.. Enumerating all solutions (preimages) is a key step in formal verification. Sheng and coworkers have developed efficient preimage computation algorithms [4] , [9] . These algorithms are similar to the ones introduced in this paper in that they all enumerate all possible solutions. The formal verification algorithms differ in that they are computing preimages of a state transition network, rather than of bitwise AND functions, as in our paper.

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


Semi-Automatic Composition of Situational Methods Situational methods are approaches to the development of software systems that are designed and constructed to fit particular circumstances that often refer to project characteristics. One common way to create situational methods is to reuse method components, which are the building blocks of development methods. For this purpose, method components have to be stored in a method base, and then retrieved and composed specifically for the situation in hand.Most approaches in the field of situational method engineering require the expertise of method engineers to support the retrieval and composition of method components. Furthermore, this is usually done in an ad-hoc manner and for pre-defined situations. In this paper, we propose an approach, supported by a tool, that creates situational methods semi-automatically. This approach refers to structural and behavioral considerations and a wide variety of characteristics when comparing method components and composing them into situational methods. The resultant situational methods are stored in the method base for future usage and composition.Based on our experimental study of the approach, we claim that it provides correct and suitable draft situational methods, which human evaluators have assessed as relevant for the given situations. Method engineering deals with the design, construction, and adaption of approaches, techniques, and tools for the development of information and software systems (Brinkkemper, 1996) . Siau, Long, and Ling (2010) claim that development methods are one of the key factors for the success of information systems development. However, since projects vary in their characteristics, standard development methods in a textbook or manual may require specific adaptations so that they will support all software development properly. Situational method engineering (SME), which is a sub-field of method engineering, focuses on in-house construction of organization-or project-specific development methods (Kumar and Welke, 1992; Brinkkemper, 1996; Domíngueza and Zapata, 2007; Henderson-Sellers and Ralyté, 2010) . The main terms used in SME are method components, situations, and situational handled in these frameworks and approaches.. In order to guide the retrieval and composition of situational methods, the method components are associated with various situational characteristics, i.e., features that characterize certain situations. Examples of situational characteristics mentioned in the literature are: type of development, stakeholder cohesion or contention, project scale, distribution of project organization, domain experience of development team, degree of novelty, technical complexity, management complexity, architectural risk, incremental method evolution, company conditions, and organizational culture (Park, Na, Park, and Sugumaran, 2006; van de Weerd, Versendaal, and Brinkkemper, 2006) . Mirbel and Ralyté (2006) propose what they term a 'reuse frame' for aggregating different situational characteristics relevant to a single critical development aspect. According to their proposal, situational characteristics are primarily divided into human-related, organizational, and application domains. The different characteristics in the reuse frames are organized in a tree of successively refined aspects, such that the actual characteristics appear in the leaves of the tree. A software development organization may adopt only the portion of this tree that fits its requirements.. While the different approaches in situational method engineering concentrate on providing representation and measuring aids to assist method engineers to create situational methods, these methods are usually actually composed and created manually by method engineers, who base their work on their experience and understanding of the situations and of the various method components. Furthermore, they usually compose the methods utilizing structural considerations only, in an ad-hoc manner, and for pre-defined situations. In this work, we present an approach, supported by a tool, the objective of which is to retrieve the most suitable method components for given situations and compose them semi-automatically into situational methods. The method components and resultant situational methods are represented in an XML-based notation, visualized by Object-Process Methodology (OPM) (Dori, 2002) , and stored in a method base. Four similarity metrics, which refer to both the structural and the behavioral aspects of the method components as well as to additional metainformation regarding their role and essence, are identified. Having calculated the similarity between different method components, the approach defines two structural composition operations (merging and generalization) and five behavioral composition operations (sequential, concurrent, incremental, iterative, and alternative compositions) that can be used for creating situational methods. An experimental study of the suggested approach has shown that the popular aggregation and specialization mechanisms are supported at a satisfactory level, yielding situational methods that suit the given situations.. The main contribution of the study is two-fold. First, it enhances the retrieval and the composition of method components with both structural and behavioral aspects, and utilizes them in a semi-automatic manner, thus providing method engineers with a systematic tool.. Secondly, the study compares the recommendations of humans (advanced and graduate students of information systems) and of an automatic tool for the same situations, and analyzes the differences between them and the possible reasons for these differences.. The structure of the rest of the paper is as follows. First, we provide an overview of the approach, presenting its method component model. We then elaborate on retrieval issues and the composition capabilities of the approach in separate sections. A report of our experience with the approach follows. Finally, we refer to related work, highlight the benefits and shortcomings of the suggested approach, summarize the work, and suggest future research directions. Retrieving method components and composing them into situational development methods are time-consuming, error-prone, and subjective tasks. To make these tasks more systemic, different heuristic methods have been proposed for determining similarity metrics between method components. These approaches generally measure the closeness between entities of different conceptual schemas by evaluating the common properties and links with other entities. , for example, define semantic and structural criteria for measuring the similarity between method components. The similarity between product-related components is measured using name affinity metrics and links calculation. The process models of the method components are represented as maps that provide a non-deterministic ordering of intentions and strategies. When measuring the similarity between these maps, the semantic affinity and structural similarity between intentions and sections (i.e., intentionstrategy-intention edges) are taken into consideration. Further, Ralyté and Rolland suggest two strategies for assembling method components: association and integration. Association is applicable for method components that correspond to different functionalities and do not have common elements, while integration is suitable for method components that have similar engineering goals, but provide different ways to satisfy them. In addition to these strategies, extension-based and paradigm-based operations can be performed. In comparison to this work, our approach refers to behavioral and meta-informational considerations when retrieving relevant method components, and allows additional composition possibilities, namely concurrent, iterative, and incremental compositions.. The Situation-Success-Scenario (S3) model (Harmsen, Lubbers, and Wijers, 1995) lists aggregated situation factors, performance indicators, and scenario aspects. The method components are then selected in four steps: (1) determination of the project goal, (2) determination of a preliminary scenario, (3) adaptation of the preliminary scenario, resulting in a project scenario, and (4) selection of the method components containing the aspects of the project scenario. All tasks are performed manually by method engineers or project managers. Mirbel (2006) provides ways to qualify each method component using meaningful keywords for the critical organizational, technical, and human-related aspects. This is done in order to allow each project to share its best practices with other projects without imposing a unique organization-wide method on all of them. Similarity metrics are proposed for measuring the distances between a given situation, which is specified as a set of at least one pertinent keyword and forbidden keywords, and a method component reuse context, depicting the situations to which the method component is applicable. Kornyshova et al. (2007) introduced multi-criteria techniques for improved guidance in the retrieval of method components. These techniques allow the selected method components to be prioritized according to multiple criteria in order to guide the method engineers in the final selection process. As opposed to mono-criterion approaches, this approach allows a more indepth analysis of problems that takes various aspects into consideration. Two groups of techniques are used: outranking and weighting. Outranking techniques are inspired by the theory of social choice and serve as a means for indicating the degree of dominance of one alternative over the other. Weighting techniques assign weights to the different decision criteria. A project characteristics typology is suggested in order to identify all the relevant critical aspects. The final selection is then realized using similarity metrics that measure the distances between different work products and various work units. The approach does not take into consideration the structure and behavior of the method components.. Pirro (2009) compares several approaches for assessing similarity, according to the source of information they exploit. Ontology-based approaches (e.g., Rada, Mili, Bicknell, and Blettner, 1989; Hirst and St-Onge, 1998 ) assess semantic similarity by counting the number of nodes or edges separating two concepts. These approaches suffer from the limitation that, in order to perform properly, they require consistent and rich ontologies. Information theory approaches (e.g., Lin, 1998; Rodríguez and Egenhofer, 2002) exploit the notion of information content, defined as a measure of the informativeness of concepts and computed by counting the occurrence of words in large corpora. The drawbacks here are that these approaches require time-consuming analysis of corpora, and that Information Content values usually depend on the kind of corpora being considered. Hybrid approaches (e.g., Li, Bandar, and McLean, 2003) combine multiple information sources. They typically require some "configuration knobs" to be adjusted (e.g., weights used to set the contribution of each information source). In order to evaluate it, the proposed approach has been implemented as a tool called ADOM-ME. This tool enables the creation, modification, retrieval, and composition of method components that are stored in a method base. The experimental method base consisted of 244 structural and behavioral method components, organized in 15 OPM models, which were derived from four well known methods, namely XP (Beck and Andres, 2004) , Scrum (Schwaber and Beedle, 2002) , RUP (Kruchten, 2000) , and OPF (Firesmith and HendersonSellers, 2001 ). The selection of these methods was not arbitrary: XP and Scrum represented "agile" methods, while RUP and OPF represented "traditional" ones. The method components were taken from different development phases, including business modeling, requirements analysis, software design, and software implementation. Having analyzed the characteristics of this method base, we set the different weights and thresholds as described in Table 4 ; the reasons for setting these values are presented in the fourth column. The exhibition set similarity weight 0.4 The weight of the relation set similarity was reduced with respect to the other weights, since the method components used were rarely structurally related.. w agg The aggregation set similarity weight 0.4 w rel The relation set similarity weight 0.2 w inp The input set similarity weight 0.33 Equal values were assigned to these weights, since no bias was detected. w out The output set similarity weight 0.33 w tri. The trigger set similarity weight 0.33 hTh The high threshold for defining "very similar" components 0.60 These values were experimentally set, after running different queries on the method base and analyzing the tool's results. sTh. The low threshold for defining "similar enough" components 0.55. We compared the results received from the ADOM-ME tool with the recommendations of humans for the same different situation queries in order to evaluate our retrieval and composition considerations. Due to difficulties in conducting such a comparison in industrial settings, because it would require considerable time, effort, and resources (Carver, Jaccheri, Morasca, and Shull, 2003) , the human recommenders who participated in this comparison were a dozen advanced undergraduate (final year) and graduate information systems students at the University of Haifa, Israel, who took a seminar in method engineering in the academic year [2008] [2009] . The students were familiar with method engineering and situational method engineering concepts and activities, as well as with OPM. We further claim that the academic and industrial background of these students render them comparable to junior method engineers. The students were familiar with all the method components in the method base and had worked with them during the semester on different occasions. The rest of this section elaborates on the comparison settings, results, conclusions, and validity threats.

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