Towards the fast and robust optimal design of Wireless Body Area Networks Wireless body area networks are wireless sensor networks whose adoption has recently emerged and spread in important healthcare applications, such as the remote monitoring of health conditions of patients. A major issue associated with the deployment of such networks is represented by energy consumption: in general, the batteries of the sensors cannot be easily replaced and recharged, so containing the usage of energy by a rational design of the network and of the routing is crucial. Another issue is represented by traffic uncertainty: body sensors may produce data at a variable rate that is not exactly known in advance, for example because the generation of data is event-driven. Neglecting traffic uncertainty may lead to wrong design and routing decisions, which may compromise the functionality of the network and have very bad effects on the health of the patients. In order to address these issues, in this work we propose the first robust optimization model for jointly optimizing the topology and the routing in body area networks under traffic uncertainty. Since the problem may result challenging even for a state-of-the-art optimization solver, we propose an original optimization al- Experiments on realistic instances indicate that our algorithm performs better than a state-of-the-art solver, fast producing solutions associated with improved optimality gaps. In the last decade, wireless sensor networks have attracted a lot of attention and have represented a major research topic both from a theoretical and an applied point of view. Real-life applications of such networks have greatly enlarged and now span from environmental monitoring to preventive machinery maintenance and from security applications to intelligent building management, just to make a very few examples.. A Wireless Sensor Network (WSN) is a network of small portable wireless devices, the sensors, which are distributed over an area to (cooperatively) collect data about some phenomena and then forward the data through wireless links to one or more collectors, commonly called sinks. The sinks can store the data or transmit them to other networks, where the data are then processed. For an exhaustive introduction to theory and applications of WSNs, we refer the reader to the survey [35] .. Thanks to recent technology advances in the field of portable medical sensors, WSNs have been also adopted in healthcare applications: besides the remote monitoring of health conditions of hospital inmates, WSNs can also support remote assistance of patients and can be used for evaluating sport training or conducting large in-field medical studies (see [27] for an overview).. In this work, we focus attention on a topic related to healthcare applications of WSNs: the design of body area networks. A Body Area Network (BAN) (also called body sensor network or wireless body area sensor network) is a WSN where a number of wireless sensors (biosensors) are placed over or inside the body of a person to collect biomedical data. The biosensors transmit the data to one or more sinks to be stored and/or processed and/or be transmitted to another network. An example of BAN is depicted in Figure 1 . Designing a BAN essentially consists in deciding the topology of the network and how data are routed from the biosensors to the sinks. BANs are not confined just to healthcare applications, but are used also in other contexts, such as sport and military training and interactive gaming. For a detailed introduction to BANs, we refer the reader to the survey [13] . Here we recall major features of a BAN that are relevant to our study. Though being a WSN, the design and the management of a BAN pose specific challenges coming from the use of sensors on the human body and require solutions and approaches that are sensibly different with respect to the traditional ones used for general WSNs [13] . A major question in a BAN is represented by propagation conditions of wireless signals along and through the human body, which are very peculiar and associated with high propagations losses (see [11] for a detailed discussion). High propagation losses could in principle be tackled just by increasing the power emitted by the transmitting devices, like usually done in the design of wireless networks [15] . However, this cannot be done in a BAN for two main reasons:. • power emissions must be kept low to strictly respect Specific Absorption Rates (SARs) imposed by health regulatory bodies, to avoid damages to human tissues caused by radio signals and related overheating (see, e.g., [33] );. • higher power emissions imply higher energy consumption, which in turn leads to shorter lifetime of the batteries in BAN devices. Preserving the charge of batteries is a crucial objective in BANs, since the batteries are not easily replaceable and rechargeable as this negatively impacts on the comfort of patients (in the case of in-body sensors, for example, a surgical operation would be required) [11, 13] .. These two points highlight a major challenge in the design of a BAN: minimizing the total energy consumed for wireless transmission and sensor functioning. We note that this challenge is also peculiar to the design of other WSNs, but in the case of BANs is really crucial. In order to reduce energy consumption, a common solution in BANs and generally in WSNs is to introduce relays, which are wireless devices acting as intermediate nodes between the sinks and the sensors. The relays support transmissions over shorter distances and thus reduce energy consumption. As pointed out in many publications, such as [11, 24, 23, 22] , relays allow to greatly overcome the energy inefficiency of single-hop routing, where all sensors directly transmit to the sink, and of multi-hop routing, where some sensors act as hotspots receiving and retransmitting data. We refer the reader to Figures 2 and 3 for a visualization of the differences between the three types of routing. Though there is a conspicuous technical literature about BANs, concerning in particular the characterization of propagation conditions and the definition of routing protocols (see, for example, [13, 23, 11] ), the problem of optimally designing a BAN through the solution of an optimization model has been practically neglected. To the best of our knowledge, [22] is the only work that has used mathematical optimization to model and solve a BAN design problem. This fact is stressed by the same author of [22] , where the design problem is formulated as a mixed integer linear program where multiple-path routing and relay placement is established in order to minimize the total cost of deployment of a BAN. The resulting problem is solved by direct application of a commercial Mixed Integer Linear Programming (MILP) solver and no new algorithm is proposed to specifically improve the performance of the solver. In contrast to [22] , a critical objective of our work has been to develop a new solution algorithm for BAN design having a better performance than a state-of-the-art solver.. Within the limited work available about BAN design, we also stress that traffic uncertainty, that is the fact that the volume of data that must be routed through the network is in general not known a priori, has been totally neglected. However, this is a relevant topic, as pointed out in [13] and as we discuss in more detail in Section 3. Data uncertainty in BANs can be due, for example, to event-driven biosensors, which generate data only under some specific conditions, so that their data rate is not constant and not exactly known in advance [26] . If we neglect data uncertainty, we risk to produce solutions that are actually infeasible and thus totally useless in practice [6] : in the case of event-driven biosensors, if the actual data rates result higher than expected, the capacity of the BAN could be insufficient to manage the produced data and we could lose a part of them. This would evidently have dramatic effects for patients when sensors produce vital data, such as a cardiac sensor installed for early detecting ischemia. The design under data uncertainty is also relevant for WSNs in general, as pointed out for example in [24] , where a min-max regret optimization framework is adopted to protect the WSN design from variations in the expected data rate of sensors.. In this work, our main original contributions are:. 1. the first mathematical programming model for the joint optimization of single-path routing and relay deployment in BAN design. This model adopts binary variables to represent single-path routing decision and installation of relays and corresponds to a binary linear program. Our model better highlights the strong connections of the BAN design problem with classical capacitated network design problems dealing with flow optimization and capacity installation; 2. the first robust optimization approach for dealing with traffic uncertainty in BAN design. Specifically, we adopt a scenario-based min-max approach (see [1, 6] ), where we aim to identify the solution having the best performance in the worst-case scenario. We think that this is a particularly appropriate form of robustness for BANs, since we are dealing with biomedical data and is thus crucial to have strict guarantees about the robustness of design solutions; 3. an original optimization algorithm that is based on the combination of 1) a heuristic exploiting ideas from randomized algorithms [30] and from ANTS -Approximate Nondeterministic Tree-Search - [28] , a refinement of classical ant colony optimization [21] ; 2) an exact large variable neighborhood search that is formulated as a binary linear program, which is solved exactly by using a state-of-the-art optimization solver. A peculiarity of our algorithm is to exploit the precious information coming from suitable linear relaxations of the considered BAN design problem. Such information can be used to guide the fixing of variables during the heuristic construction of feasible solutions. Furthermore, by using linear relaxations, we are able to derive an optimality gap, i.e. a quality measure of solutions that indicates how far the produced solutions are from the optimum. This of course constitutes a major advantage of our algorithm with respect to "simple" heuristics, which do not provide any quality guarantee. We decided to investigate the combination of a variant of ANTS and of an exact search on the basis on our direct and successful experience in the context of other telecommunication network design problems, namely the design of cooperative wireless networks [16] and the multiperiod design of fixed telecommunications networks involving flow optimization problems [17, 18] ; 4. computational experiments considering a set of realistic BAN instances, showing that our optimization algorithm can fast compute solutions of better quality and associated with better optimality gaps w.r.t. those produced by a state-of-the-art optimization solver.. The remainder of this paper is organized as follows: in Section 2, we introduce an optimization model for the design of BANs; in Section 3, we introduce the new formulation for the scenario-based robust optimization of BANs; in Sections 4 and 5, we present our original optimization algorithms and computational results. In this paper, we have presented the first robust optimization model for addressing traffic uncertainty in the design of body area networks with relays and adopting single-path routing. Our work has been aimed at extending the use of optimization models and algorithms in the design of BANs, which has received very little attention. Since the resulting robust optimization problem may result challenging even for a state-of-the-art optimization solver, we have proposed an original optimization algorithm exploiting linear relaxations to guide a heuristic fixing of variables, combined with an exact large variable neighborhood search. Experiments on realistic instances show that our optimization algorithm performs much better than a solver like CPLEX in the vast majority of cases, fast finding solutions of better quality and associated with lower optimality gaps. We plan to aim future research at further improving the performance of the algorithm and refining the representation of traffic uncertainty by more advanced models.

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


Low-power FPGA using pre-defined dual-Vdd/dual-Vt fabrics Traditional FPGAs use uniform supply voltage Vdd and uniform threshold voltage Vt. We propose to use pre-defined dual-Vdd and dual-Vt fabrics to reduce FPGA power. We design FPGA circuits with dual-Vdd/dual-Vt to effectively reduce both dynamic power and leakage power, and define dual-Vdd/dual-Vt FPGA fabrics based on the profiling of benchmark circuits. We further develop CAD algorithms including power-sensitivity based voltage assignment and simulated-annealing based placement to leverage such fabrics. Compared to the conventional fabric using uniform Vdd/Vt at the same target clock frequency, our new fabric using dual Vt achieves 9% to 20% power reduction. However, the pre-defined FPGA fabric using both dual Vdd and dual Vt only achieves on average 2% extra power reduction. It is because that the pre-designed dual-Vdd layout pattern introduces non-negligible performance penalty. Therefore, programmability of supply voltage is needed to achieve significant power saving for dual-Vdd FPGAs. To our best knowledge, it is the first in-depth study on applying both dual-Vdd and dual-Vt to FPGA considering circuits, fabrics and CAD algorithms. Power has become an increasingly important design constraint. FPGAs are less power efficient than ASICs [1] due to the overhead for programmability. There have been several studies to reduce FPGA power. [1] introduced hierarchical interconnects to reduce interconnect power, but they do not consider deep sub-micron effects such as the increasingly large leakage power. [2] developed a flexible power evaluation framework fpgaEva-LP and performed dynamic and leakage power evaluation for FPGAs with cluster-based logic blocks and island style routing structure [14] . Uniform supply voltage Vdd and threshold voltage Vt are assumed in [2] .. Supply voltage reduction is effective to limit the dynamic power consumption because dynamic power reduces quadratically as the supply voltage scales down. Dual-Vdd or multiVdd technique has been successfully employed in ASICs [3, 4, 5] and an optimized multi-Vdd system can achieve dynamic power reductions of roughly 40-45% [6, 7] . Dual-Vt or multi-Vt technique [8] has also been applied in ASICs to reduce leakage power.. Following the successful application of multi-Vdd/multiVt techniques in ASICs, FPGAs might also benefit from those techniques for power reduction. However, there are some unique challenges to apply multi-Vdd/multi-Vt to FPGAs. First, previous work [2] has shown that leakage power becomes a large portion of the total FPGA power in 100nm technology and below. It is mainly because LUT-based FPGAs use a large number of SRAMs to provide the programmability. Therefore, it is important to design FPGA circuits using dual-Vdd/dual-Vt without increasing the leakage power budget. Second, FPGAs do not have the freedom of using mask patterns to arrange different Vdd/Vt components in a flexible way as ASICs [9, 10] . Multi-Vdd/multi-Vt fabric and layout pattern must be pre-defined in FPGAs for a set of applications. This may limit the power reduction by multi-Vdd/multi-Vt techniques.. In this paper, we perform the first of its type of studies on the dual-Vdd and dual-Vt FPGA fabrics. We design FPGA circuits with dual-Vdd/dual-Vt to effectively reduce dynamic and leakage power. According to the profiling of benchmark circuits, we propose FPGA fabrics employing dual-Vdd/dual-Vt techniques. To leverage the new fabrics, we develop new CAD algorithms including power-sensitivity based voltage assignment and simulated-annealing based placement.. The paper is organized as follows. Section 2 addresses the dual-Vdd/dual-Vt FPGA circuit design as well as the new FPGA fabrics. Section 3 presents our design flow for dualVdd/dual-Vt FPGAs. Section 4 presents the experimental results and Section 5 concludes the paper with discussions of future work.

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


Evaluating exact VARMA likelihood and its gradient when data are incomplete A detailed description of an algorithm for the evaluation and differentiation of the likelihood function for VARMA processes in the general case of missing values is presented. The method is based on combining the Cholesky decomposition method for complete data VARMA evaluation and the Sherman-Morrison-Woodbury formula. Potential saving for pure VAR processes is discussed and formulae for the estimation of missing values and shocks are provided. A theorem on the determinant of a low rank update is proved. Matlab implementation of the algorithm is in a companion article. A key aspect for parameter estimation of autoregressive moving average (ARMA) processes is the efficient evaluation of the likelihood function for the Authors' address: K. Jonasson, Department of Computer Science, Faculty of Engineering, University of Iceland, Hjardarhaga 4, 107 Reykjavik, Iceland; email: jonasson@hi.is. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or direct commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212) 869-0481, or permissions@acm.org. parameters. In practice multivariate or vector valued processes (VARMA) are important, as well as the more general case of missing values. Evaluation of the gradient of the likelihood function is also important for its maximization using traditional numerical optimization.. This paper provides detailed practical formulae for calculating the value and the gradient of a VARMA likelihood function, both for the complete data case, and when there are missing values. A companion algorithm article [Jonasson 2008 ] presents Matlab programs that implement these formulae, along with a demonstration on how to carry out actual parameter estimation, and a report of numerical experiments with the programs. Both the ability to deal with missing values and to evaluate gradients are beyond the capabilities of previously published programs. The technique used to treat missing values is also new.. We concentrate on the exact likelihood function, not the conditional likelihood (where the initial shocks are assumed to be zero), both because the latter is not easily applicable when values are missing or when the model has moving average terms, and also because the exact likelihood does in many practical applications give significantly better parameter estimates. An alternative to using classical numerical optimization to maximize the likelihood is to use the EM-algorithm, which may in some situations be the method of choice in the presence of missing values. Application of the EM-algorithm to VARMA time series is discussed in a new paper [Metaxoglou and Smith 2007] .. Three approaches to calculating exact likelihood of univariate ARMA processes have been described in the literature: (A) one that we shall refer to as the presample method described by Siddiqui [1958] for pure MA processes, (B) the Cholesky decomposition method, first described by Phadke and Kedem [1978] , and (C) a state space Kalman filter method described by Harvey and Phillips [1979] . Several authors have described improvements and generalizations of the originally proposed methods, in particular, all three approaches have been generalized to multivariate models and to univariate models with missing values, and the Kalman filter method has been extended to the missing value multivariate case. An overview of the developments is given by Penzer and Shea [1997] . Among the papers discussed there are Ljung and Box [1979] describing a computationally efficient multivariate implementation of the presample method; Jones [1980] , extending the Kalman filter approach to ARMA with missing values, and Ansley and Kohn [1983] , describing a Kalman filter method to evaluate VARMA likelihood when values are missing. This last method has been publicized in several text books. The Penzer and Shea paper itself deals with extending the Cholesky decomposition method to the univariate missing value case. In addition to the references in Penzer and Shea [1997] , Ljung [1989] discusses estimation of missing values for univariate processes, Mauricio [2002] gives details of a complete data multivariate implementation of the Cholesky decomposition method, and Mélard et al. [2006] describe estimation of structured VARMA models with complete data, allowing unit roots.. Two Fortran programs for VARMA likelihood evaluation in the complete data case have been published: the Kalman filter method is implemented by Shea [1989] , and the presample method by Mauricio [1997] . In addition, pure VAR models (with complete data) may be fitted using the Matlab package ARfit, described and published in Neumaier and Schneider [2001] and Schneider and Neumaier [2001] .. The Cholesky decomposition method has some advantages. For the complete data case it is considerably simpler and more direct than the other two approaches. Both Penzer and Shea [1997] and Mauricio [2002] compare its efficiency with the Kalman filter method and find that it is faster in the important case when there are more autoregressive terms than moving average terms (cf. Table 1 on p. 484 in Mauricio's paper). As detailed by Penzer and Shea, many authors have also pointed out that for the missing value case the filtering approach may suffer from numerical instabilities, and although remedies have been suggested, they come at some computational cost.. In this article we take the Cholesky approach. To review its history briefly, the original article of Phadke and Kedem [1978] treats VMA models, extension to ARMA models is in Ansley [1979] , Brockwell and Davis [1987, Ch. 11] describe a VARMA implementation (they and some other authors refer to the method as the innovation method), and Penzer and Shea [1997] provide a way of handling missing values in the ARMA case, albeit not the same as our way. To our knowledge, the current article is the first one to give details of extending the Cholesky decomposition method to the missing value VARMA case, as well as being the first paper to provide derivative formulae. It could be argued that it would have been more useful to give details and an associated publicly available program for the Kalman filter method. According to Ansley and Kohn [1983] missing values do not add to the computational cost of the filtering method, but with the current method many missing values are costly. However few missing values do not cost much, so judging by the results quoted in the previous paragraph our approach wins in that case.. The article is organized as follows. Section 2 introduces the basic notation and reviews the Cholesky decomposition method for the complete data case. Section 3, the main section of the paper, describes our approach to dealing with the missing value case. Finally Section 4 describes the main ideas and techniques used to compute the derivative of the likelihood function.

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


Partial Words and a Theorem of Fine and Wilf A partial word is a word that is a partial mapping into an alphabet. We prove a variant of Fine and Wilf's theorem for partial words, and give extensions of some general combinatorial properties of words. A partial word of length n over an alphabet A is a partial function w : f0; : : :; n ? 1g ! A The domain of w is the set D(w) of positions p 2 f0; : : :; n ? 1g such that w(p) is de ned. The set H(w) = f0; : : :; n ? 1g n D(w) is the set of holes of w. A usual word over an alphabet A is just a partial word without holes.. Partial words appear in comparing genes. Indeed, alignment of two sequences can be viewed as construction of two partial words that are compatible in a sense that will be developed below.. The aim of this note is to examine to which extent some elementary combinatorial properties of words remain true for partial words. As we shall see, these properties still hold when words have one hole, but become false as soon as words have two holes. The order x y on partial words introduced in the previous section is well known as the \less de ned" order in denotational semantics. It si simply de ned by taking as a bottom element in the at order over the alphabet, and extending this order to sequences. It might therefore be interesting (as suggested by Olivier Carton) to consider words over ordered alphabets (not necessarily linear orders) and to extend other combonatorial results.. Combinatorics of partial words will presumablly not be as rich as the combinatorics of words. It is clear that the more holes are in words, the more degrees of freedom exist to combine and to compare them. It is somewhat astonishing that only one hole can be allowed in several situations, and that the results become false as soon as there are two holes.

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


Bottom-Up/Top-Down Image Parsing with Attribute Grammar This paper presents a simple attribute graph grammar as a generative representation for man-made scenes such as buildings, hallways, kitchens, and living rooms and studies an effective top-down/bottom-up inference algorithm for parsing images in the process of maximizing a Bayesian posterior probability or equivalently minimizing a description length (MDL). This simple grammar has one class of primitives as its terminal nodes, i.e., the projection of planar rectangles in 3-space into the image plane, and six production rules for the spatial layout of the rectangular surfaces. All of the terminal and nonterminal nodes in the grammar are described by attributes for their geometric properties and image appearance. Each production rule is associated with some equations that constrain the attributes of a parent node and those of its children. Given an input image, the inference algorithm computes (or constructs) a parse graph, which includes a parse tree for the hierarchical decomposition and a number of spatial constraints. In the inference algorithm, the bottom-up step detects an excessive number of rectangles as weighted candidates, which are sorted in a certain order and activate top-down predictions of occluded or missing components through the grammar rules. The whole procedure is, in spirit, similar to the data-driven Markov chain Monte Carlo paradigm [39], [33] , except that a greedy algorithm is adopted for simplicity. In the experiment, we show that the grammar and top-down inference can largely improve the performance of bottom-up detection. I N real-world images, especially man-made scenes such as buildings, offices, and living spaces, a large number of visual patterns and objects can be decomposed hierarchically into a small number of primitives arranged by a small set of spatial relations. This is similar to language, where a huge set of sentences can be generated from a relatively small vocabulary through some grammar rules that group words into phrases, clauses, and sentences. In this paper, we present a simple attribute graph grammar as a generative image representation and study an effective top-down/bottom-up inference algorithm for parsing images in the process of maximizing a Bayesian posterior probability or equivalently minimizing a description length (MDL).. In the following, we shall briefly introduce the representation and algorithm and then discuss the literature and our contributions. In this paper, we study an attribute grammar for image parsing in man-made scenes. This paper makes two main contributions to the vision literature. First, it uses an attributed grammar for incorporating prior knowledge. Such grammar representations have long been desired for high-level vision, especially scene understanding and parsing. Second, it integrates a top-down/bottom-up procedure for computing the parse graph with grammars. It extends the previous DDMCMC image parsing work [33] by including more flexible and hierarchical representations. The computing algorithm is compatible with the DDMCMC scheme, but we use deterministic ordering for efficiency considerations. For our future work, we shall study the following aspects: 1) the image parsing is only for generic image interpretation in the current work. In ongoing projects, we are extending this framework to recognizing object categories [42] , especially functional objects where objects within each category exhibit a wide range of structural variabilities [3] . The extended grammar will have many more production rules. 2) In the current work, we manually tune some probabilities and parameters in the energy function. These parameters should be learned automatically when we have a large number of manually parsed training examples, e.g., through supervised learning. We are currently collecting a large manually parsed image data set for learning grammars. An automatic learning algorithm is presented in a recent work [28] , [42] . In experiments, we observe that the stopping thresholds Á 0 and Á 1 in phases 2 and 3 have to be decided by minimizing the detection errors (missing rate and false alarm) and cannot be decided by the posterior probability alone. We test our algorithm on a number of scenes with rectangle structures and show both qualitative results through image reconstruction (or synthesis) by using the generative model and quantitative results through an ROC curve by comparing the performance of two approaches: 1) pure bottom-up rectangle detection and 2) our methods:. Qualitative results. We show six results of the computed configurations and synthesized images in Figs. 10 and 11. In these two figures, the first row shows the input images, the second row shows the edge detection results, the third row shows the detected and grouped rectangles in the final configurations and missing rectangles compared with the ground truth (with true positives, false positives, and missing rectangles being shown in different line styles), and the fourth row shows the reconstructed images based on the rectangle results in the third row. We can see that the reconstructed images miss some structures. Then, we add the generic sketches (curves) in the edges and final reconstructions are shown in the last row.. The image reconstruction proceeds in the following way: First, for the sketchable parts, we reconstruct the image from the image primitives after fitting some parameters for the intensity profiles. For the remaining area Ã nsk , we follow [9] and divide Ã nsk into homogeneous texture regions by k-means clustering and then synthesize each texture region by sampling the Julesz ensemble so that the synthesized image has histograms matching the observed histograms of filter responses. More specifically, we compute the histograms of the derivative filters within a local window (e.g., 7 Â 7 pixels). For example, we use seven filters and seven bins are used for each histogram. Then, in total, we have a 49-dimensional feature vector at each pixel. We then cluster these feature vectors into different regions.. In the computed configurations, some rectangles are missing due to the strong occlusion. For instance, some rectangles on the floor in the kitchen scene are missing due to the occlusion caused by the table on the floor. In addition, the results clearly show that high-level knowledge introduced by the graph grammar greatly improves the results. For example, in the building scene in the third column in Fig. 10 , the windows become very weak on the left side of the image. By grouping them into a line rectangle group, the algorithm can recover these weak windows, which will not appear when using the likelihood model alone.. During our experiments, phase 1 is the most timeconsuming stage and takes about 2 minutes on a 640 Â 480 image since we have to test many combinations to generate all of the rectangle proposals and build up their occlusion relations. Phases 2 and 3 are very fast and take about 1 minute altogether.. Quantitative evaluation. To evaluate our algorithm in a quantitative way, we collect a data set with 40 images. The average number of rectangles in each image of this data set is 38. Six have been shown in Figs. 10 and 11. We then manually annotate these images to get the ground truth for all the rectangles in each image.. Then, we randomly select 15 images from this data set as training data to tune all of the parameters and thresholds in our algorithm. After that, we run phase 2 and then phase 3 of Fig. 8 . Four sets of proposed candidates É 2 , É 3 , É 4 , and É 6 for production rules r 2 , r 3 , r 4 , and r 6 , respectively, and the candidate set È for the instantiation rule r 5 . Each circle represents a rectangle or a bounding box of a nonterminal node, while the associated upward (or downward) arrow indicates that it is generated through a bottom-up (or top-down) process. The size of the circle represents its weight !ðÞ. Each ellipse in É 2 , É 3 , É 4 , and É 6 stands for a rectangle group candidate Å which consists of a few circles. A circle may participate in more than one rectangle group candidate. our algorithm on the rest images to generate detection results (note that the detection results shown in Figs. 10 and 11 are obtained when these six images are in testing data). Due to inherent randomness in splitting the data set into training data and testing data, we repeat the experiment six times. Fig. 12 shows the ROC curves with confidence intervals [23] for phase 2 (using bottom up only) and phase 3 (using both bottom up and top down), which are obtained by changing the threshold in phase 2. From these ROC curves, we can clearly see the dramatic improvement by using a topdown mechanism over the traditionally bottom-up mechanism only. Intuitively, some rectangles are nearly impossible to detect using the bottom-up methods and can only be recovered through the context information using the grammar rules.. To plot the ROC curves, we need to classify each detected rectangle as either a true positive or a false alarm in comparison to a rectangle in the ground truth. To be considered as a correct detection, the area of overlap between the detected rectangle a det and the ground truth rectangle a gt is required to exceed 95 percent:

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


Real-time color image segmentation based on mean shift algorithm using an FPGA Abstract Image segmentation is one of the most important tasks in the image processing, and mean shift algorithm is often used for color image segmentation because of its high quality. The computational cost of the mean shift algorithm, however, is high, and it is difficult to realize its real time processing on microprocessors, though many techniques for reducing the cost have been researched. In this paper, we describe an FPGA system for the image segmentation based on the mean shift algorithm. In the image segmentation based on the mean shift algorithm, the image is once over-segmented, and then the small regions are merged considering the similarity between the over-segmented regions to obtain better segmentation. In our system, the mean shift filter is accelerated using a cache memory which can access to all pixels in a w s 9 w s pixel window at arbitrary position. This cache memory allows us to process w s 9 w s pixels in parallel every clock cycle. The region merging is also accelerated by not strictly managing the list structures used for the merging. This loose management causes the redundant and out-of-date data into the list structures, but it makes the pointer dereferences unnecessary, and the overhead by those data can be hidden by pipeline processing. The performance for 768 9 512 pixel images is fast enough for real-time applications. Image segmentation is the process of partitioning an image into multiple regions of interest, and it is generally the first task in many automated image understanding applications. Many algorithms for the image segmentation have been proposed to date, such as [1] [2] [3] [4] . Several hardware systems have been proposed to accelerate those algorithms, such as [5] [6] [7] [8] .. Mean shift algorithm is a procedure which is often used for color image segmentation because of its high quality. In the segmentation based on mean shift algorithm, first, the gradient of each pixel in a given image is calculated using a window centered by the pixel, and then, the pixel is moved along the gradient. This procedure is repeated until no movement will happen, and pixels which reach to the same bottom form a region. In general, many small regions are generated in this step (called over-segmentation). Then, the small regions are merged considering the similarity between the regions to obtain better segmentation (if we try to reduce the number of the regions by only the mean-shift, the results are far from what we expected in most cases). This over-segmentation and merging method is also used in other segmentation techniques such as watershed, K-mean clustering and so on.. The computational cost of a naive implementation of a mean shift algorithm is very high (O(X 9 Y 9 w s 9 w s 9 N r ), where X 9 Y is the image size, w s 9 w s is the window size and N r is the average number of the repetitions). Therefore, many techniques for reducing the computational complexity have been researched (for example, [9] [10] [11] ). However, it is still difficult to realize real-time processing on microprocessors. In Ref. [22] , it was reported that it takes 7 s for processing a 481 9 321 pixel image with Intel Core2 Quad 3 GHz. Therefore, it still takes a few seconds for processing a 768 9 512 pixel image even with the latest CPU. Nevertheless, only few papers about the acceleration of the mean shift algorithm by FPGA and GPU have reported to date because of the irregular memory access sequences required for tracing the movement of pixels along their gradients. In Refs. [12, 13] , the mean shift algorithm was used for object tracking, but the algorithm was applied only to the regions of interest. As for the region merging, to the best of our knowledge, no hardware systems have been proposed (in Ref. [14] , a method for the labeling was proposed) probably because of the inherent sequential and complex data management (this means that we can not expect high performance gain). However, this merging step should also be executed on the same platform to achieve higher performance in total.. In this paper, we describe FPGA implementation of both steps, over-segmentation using a mean shift algorithm and the region merging. The main difficulties in the segmentation are (1) how to read w s 9 w s pixels at arbitrary position in the image in parallel for tracing the movement of the pixels, and (2) how to fulfill the pipeline circuit (the pipeline depth for calculating the gradient is deep, and we need to interleave the calculation of several pixels), and the difficulties in the region merging are (3) the dynamic management of the lists which hold the contiguous regions (those regions are gradually changed as the merging progresses), and (4) the sorting of the pairs of two contiguous regions which are used to choose the two regions to be merged. It is also very important how to define the method to choose a pair to be merged to obtain high quality segmentation. However, the method should be defined according to the requirement for the system (high quality, high processing speed, etc.), and a very simple method is used in our paper, though it does not always give high quality segmentation.. For (1) and (2), we have designed a special cache memory which can access to w s 9 w s pixels at arbitrary position in parallel. Typically, w s is 15-31. Thus, this cache memory reads out 225-961 pixels in different positions every clock cycle. In our implementation, the given image is scanned from top to bottom, and the pixels on L lines are cached into this cache memory. According to our experiments, most images can be processed during one scan. When a pixel moves out of the cached region toward the already processed area, another scan from bottom to top is executed, and the scans are repeated until all pixels stop. As for (3) and (4), we have chosen not to manage the data in the list structures strictly. By this loose management, redundant and out-of-date data may continue to stay in the data structures and increase the amount of the computation. However, this relaxation makes it possible to manage those data in block without pointer dereferences (all data in the block can be accessed continuously), and the increase of the computation time by those data can be hidden by pipeline processing. This paper is organized as follows. The mean shift algorithms are introduced in Sect. 2, and its FPGA implementation is described in Sect. 3. In Sect. 4, an algorithm for the region merging is introduced, and its implementation is described in Sect. 5. Experimental results are shown in Sect. 6, and the conclusions are given in Sect. 7. In this paper, we have described an image segmentation method on FPGA using the mean shift algorithm. In the image segmentation based on the mean shift algorithm, the image is once over-segmented, and then the small regions are merged. By caching L lines of the given image, and by processing the pixels in them in proper order, we can apply the mean shift filter to all pixels in the image efficiently. The region merging is an inherently sequential process, and the acceleration by hardware systems is not easy. We have shown that we can achieve real-time processing by relaxing the data management and enabling the pipeline processing of the data. Our implementation requires a number of block RAMs (about 400), but recent FPGAs support more number of block RAMs, and our implementation is feasible for those FPGAs.. In our current implementation, the distance between two regions is calculated using only local relation of the two regions. We need to calculate the distance by considering the global relation of the regions to obtain better segmentation. That is our main future work.

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


Distributed parameter tuning for genetic algorithms Abstract. Genetic Algorithms (GA) is a family of search algorithms based on the mechanics of natural selection and biological evolution. They are able to efficiently exploit historical information in the evolution process to look for optimal solutions or approximate them for a given problem, achieving excellent performance in optimization problems that involve a large set of dependent variables. Despite the excellent results of GAs, their use may generate new problems. One of them is how to provide a good fitting in the usually large number of parameters that must be tuned to allow a good performance. This paper describes a new platform that is able to extract the Regular Expression that matches a set of examples, using a supervised learning and agent-based framework. In order to do that, GA-based agents decompose the GA execution in a distributed sequence of operations performed by them. The platform has been applied to Language induction problem, for that reason the experiments are focused on the extraction of the regular expression that matches a set of examples. Finally, the paper shows the efficiency of the proposed platform (in terms of fitness value) applied to three case studies: emails, phone numbers and URLs. Moreover, it is described how the codification of the alphabet affects to the performance of the platform. Sometimes system administrators, programmers or the data mining community need to retrieve some strings which satisfy a given pattern, for processing logs, or detecting spam. Instead of review all the information to find those strings, users can use some pattern matching tools. One of them is called Regular Expressions, or regex [8] . Although they provide a powerful and flexible notation to define and retrieve patterns from text, the syntax and the grammatical rules of these regex notations are not easy to use, and even to understand.. Language Induction [10, 20, 5] is a well known problem in Machine Learning and it consists of learning a grammar from a set of samples. There are several approaches from the Formal Languages and Theoretical Computer Science perspectives [23] , however it is still an open problem. A recent approach to language induction is provided by the Evolutionary Computation community, where regex are evolved by means of evolutionary algorithms like Genetic Programming (GP) [15] or Genetic Algorithms (GAs) [19] .. In this paper we present a method based on GA able to generate automatically regex from a set of positive and negative samples and we propose a new chromosome codification based on messy Genetic Algorithms (mGA) [11] and crossover operators. To carry out with the experimental phase, an existing multiagent framework, named Searchy [3] , is adapted to allow the implementation of ours GA-based agents. This framework has a double goal. On one hand, to reduce the execution time of the experiments and, on the other hand, to improve the search capacity in the space problem considered, allowing agents to find better solutions.. The paper is structured as follows. First, a review of Regex, Variable Length Chromosomes, mGA and MAS is provided. Sections 3 and 4 present the codification and crossover operators respectively. The agent-based framework used in the experimentation is presented in section 5. Then, they are evaluated in section 6. Finally, some conclusions and future research lines are outlined.. The Intelligent Agents and Multi-Agent Systems (MAS) research fields have experimented a growing interest from different research communities like Artificial Intelligence (AI), Software Engineering, Psychology, etc... Those research fields try to solve two distinct goals.. The first goal is to define and design software programs (usually called agents) which implement several characteristics like autonomy, proactiveness, coordination, language communication, etc... This goal tries to obtain an adaptive and intelligent program which is able to provide the adequate request to the inputs received from the environment [14] .. The second goal is to create societies of agents. It is possible to coordinate several of those agents to build complex societies. When considering those societies new issues arise, like social organization, cooperation, knowledge representation, coordination, or negotiation. In this situation it is possible to speak about Multi-Agent Systems and the previous problems can be studied within different perspectives [16] .. One of the aims of this paper is to study the use of a MAS within a GA framework. The merger of those perspective is not a new research area. There are some work related with this idea as [22, 17, 18, 9] . Nevertheless, the approach taken on [17, 18, 9] is quite different from the one of this work. While the aim, in the cited work, is the use of a MAS that benefits from a Genetic Algorithm, in this work the roles are interchanged, and Genetic Algorithm is benefited from the MAS, to evolve regex. We have presented a method to generate regular expressions using supervised learning and an agent based testing framework. The distributed testing framework used has been a satisfactory approach due to the enhanced performance and easy composition of tasks involved in the GA. Additionally a brief empirical analysis of how different codifications and crossover mechanism influence the evolution of regex has been presented. The set of experiments carried out showed that the best performance is achieved with a direct codification of the alphabet using a plain VLG. These results leads us to conclude that there are some intrinsic limitations in the evolution of regex regardless of the codification and crossover operator used. The main one is the linear nature of GAs that incited us to use a lexicographical codification of regex, there is not a trivial way to code regex operators that affect a groups of characters or nested operators. From this point of view, it seems that the use of pure GAs to evolve grammars and languages has serious constrains. Experiments have been carried out in three phases: parameter tuning, codification and genetic regex. In the first one, several GA runs are performed with different parameters to select the optimum parameters in order to use them in the remaining experiments. Then the codification (VLG, mGA and bmGA) and genetic operators (modified one-point, two-points and uniform crossover) presented in this paper are studied.. Three case studies are used in the experiments where regex able to extract emails, phone numbers and URLs are evolved. These are three well known problems in data mining literature. Each case study uses a dataset with positive examples that have been divided into a training set and a testing set. Meanwhile the negative examples are shared among the study cases. Due to the stochastic nature of the GAs, each experiment has been run one hundred times, and the data has been averaged.. The fitness evaluation that has been used in all the experiments can take values from 0 to 1, where 1 is the maximum fitness that any chromosome can achieve. The calculus of the fitness is performed as follows. For each positive example the proportion of extracted characters is calculated. Then, the fitness is calculated subtracting the average proportion of false positives in the negative example set to the average of the characters correctly extracted. In this way, the maximum fitness that a chromosome can achieve is one, and it happens when the phenotype has extracted correctly all the elements of positive examples while no element of the negative examples has been matched. Let us name it as ideal individual. Then, an ideal individual is able to extract correctly all the elements of positive examples while no element of the negative examples is matched.

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


Adaptive antenna selection and Tx/Rx beamforming for large-scale MIMO systems in 60 GHz channels We consider a large-scale MIMO system operating in the 60 GHz band employing beamforming for high-speed data transmission. We assume that the number of RF chains is smaller than the number of antennas, which motivates the use of antenna selection to exploit the beamforming gain afforded by the large-scale antenna array. However, the system constraint that at the receiver, only a linear combination of the receive antenna outputs is available, which together with the large dimension of the MIMO system makes it challenging to devise an efficient antenna selection algorithm. By exploiting the strong line-of-sight property of the 60 GHz channels, we propose an iterative antenna selection algorithm based on discrete stochastic approximation that can quickly lock onto a nearoptimal antenna subset. Moreover, given a selected antenna subset, we propose an adaptive transmit and receive beamforming algorithm based on the stochastic gradient method that makes use of a low-rate feedback channel to inform the transmitter about the selected beams. Simulation results show that both the proposed antenna selection and the adaptive beamforming techniques exhibit fast convergence and near-optimal performance. The 60 GHz millimeter wave communication has received significant recent attention, and it is considered as a promising technology for short-range broadband wireless transmission with data rate up to multi-giga bits/s [1] [2] [3] [4] . Wireless communications around 60 GHz possess several advantages including huge clean unlicensed bandwidth (up to 7 GHz), compact size of transceiver due to the short wavelength, and less interference brought by high atmospheric absorption. Standardization activities have been ongoing for 60 GHz Wireless Personal Area Networks (WPAN) [5] (i.e., IEEE 802. 15) and Wireless Local Area Networks (WLAN) [6] (i.e., IEEE 802.11). The key physical layer characteristics of this system include a large-scale MIMO system (e.g., 32 × 32) and the use of both transmit and receive beamforming techniques.. To reduce the hardware complexity, typically, the number of radio-frequency (RF) chains employed (consisting of amplifiers, AD/DA converters, mixers, etc.) is smaller than the number of antenna elements, and the antenna selection technique is used to fully exploit the beamforming gain afforded by the large-scale MIMO antennas. Although various schemes for antenna selection exist in the literature [7] [8] [9] [10] , they all assume that the MIMO channel matrix is known or can be estimated. In the 60 GHz WPAN system under consideration, however, the receiver has no access to such a channel matrix, because the received signals are combined in the analog domain prior to digital baseband due to the analog beamformer or phase shifter [11] . But rather, it can only access the scalar output of the receive beamformer. Hence, it becomes a challenging problem to devise an antenna selection method based on such a scalar only rather than the channel matrix. By exploiting the strong line-of-sight property of the 60 GHz channel, we propose a low-complexity iterative antenna selection technique based on the Gerschgorin circle and the * Correspondence: wangx@ee.columbia.edu 3 Electrical Engineering Department, Columbia University, New York, NY, 10027, USA Full list of author information is available at the end of the article stochastic approximation algorithm. Given the selected antenna subset, we also propose a stochastic gradientbased adaptive transmit and receive beamforming algorithm that makes use of a low-rate feedback channel to inform the transmitter about the selected beam.. The remainder of this paper is organized as follows. The system under consideration and the problems of antenna selection and beamformer adaptation are described in Section 2. The proposed antenna selection algorithm is developed in Section 3. The proposed transmit and receive adaptive beamforming algorithm is presented in Section 4. Simulation results are provided in Section 5. Finally Section 6 concludes the paper. We have proposed a sequential antenna selection algorithm and an adaptive transmit/receive beamforming algorithm for large-scale MIMO systems in the 60 GHz band. One constraint of the system under consideration is that the receiver can only access a linear combination of the receive antenna outputs, which makes the traditional antenna selection schemes based on the channel matrix not applicable. The proposed antenna selection method uses a bound on the largest singular value of the channel matrix based on the Gerschgorin circle. The method is particularly useful over the 60 GHz channel, which has a strong line-of-sight component, and it employs a discrete stochastic approximation technique to quickly lock onto a near-optimal antenna subset. We have also proposed an adaptive joint transmit and receive beamforming technique based on the stochastic gradient method that makes use of a low-rate feedback channel to inform the transmitter about the selected beam. Simulation results show that both the proposed antenna selection and the adaptive beamforming techniques exhibit fast convergence and near-optimal performance.

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


Lattice Boltzmann method for 2D flows in curvilinear coordinates In order to improve efficiency and accuracy, while maintaining an ease of modeling flows with the lattice Boltzmann approach in domains having complex geometry, a method for modeling equations of 2D flow in curvilinear coordinates has been developed. Both the transformed shallow water equations and the transformed 2D Navier-Stokes equations in the horizontal plane were synchronized with the equilibrium distribution function and the force term in the rectangular lattice.Since the solution of these equations takes place in the classical rectangular lattice environment, boundary conditions are modeled in the standard form of already existing simple methods (bounceback), not requiring any additional functions. Owing to this and to the fact that the proposed method ensures a more accurate fitting of equations, even to domains of interest having complex geometry, the accuracy of solution is significantly increased, while the simplicity of the standard lattice Boltzmann approach is maintained. For the shallow water equations transformed in curvilinear coordinates, the proposed procedure is verified in three different hydraulic problems, all characterized by complex geometry. Since McNamara & Zanetti () eliminated the Bolean structure of the Lattice Gas Automata (LGA) by introducing the lattice Boltzmann method (LBM) two decades ago, this method has evolved into a powerful concept suitable for modeling very complex and demanding hydraulic problems.. Based on kinetic theory, in which fluid is defined as a discretized phase-space system made of individual particles colliding with each other while advancing with pre-defined velocities along their trajectories, it has allowed the establishment of a numerical procedure of parallel nature characterized by high accuracy, efficiency and simplicity in implementing the elements of the model. As such it is present in up-to-date flow studies both in the field of science and engineering.. As the aim of numerical modeling is to describe and learn relevant physical processes controlled by actual natu- (), Verschaeve & Müller () came up with an approach of reconstructing the unknown particle distribution function using density, velocity and rate of strain.. To avoid needing to know the parameters in the nodes neighboring the boundary nodes, Lee & Lee () suggested using a non-uniform calculation grid along the

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


Life-cycle economic analysis of distributed manufacturing with open-source 3-D printers Abstract The recent development of open-source 3-D printers makes scaling of distributed additive-based manufacturing of high-value objects technically feasible and offers the potential for widespread proliferation of mechatronics education and participation. These self-replicating rapid prototypers (RepRaps) can manufacture approximately half of their own parts from sequential fused deposition of polymer feedstocks. RepRaps have been demonstrated for conventional prototyping and engineering, customizing scientific equipment, and appropriate technology-related manufacturing for sustainable development. However, in order for this technology to proliferate like 2-D electronic printers have, it must be economically viable for a typical household. This study reports on the life-cycle economic analysis (LCEA) of RepRap technology for an average US household. A new low-cost RepRap is described and the costs of materials and time to construct it are quantified. The economic costs of a selection of 20 open-source printable designs (representing less than 0.02% of those available), are typical of products that a household might purchase, are quantified for print time, energy, and filament consumption and compared to low and high Internet market prices for similar products without shipping costs. The results show that even making the extremely conservative assumption that the household would only use the printer to make the selected 20 products a year the avoided purchase cost savings would range from about $300 to $2000/year. Assuming the 25 h of necessary printing for the selected products is evenly distributed throughout the year these savings provide a simple payback time for the RepRap in 4 months to 2 years and provide an ROI between >200% and >40%. As both upgrades and the components that are most likely to wear out in the RepRap can be printed and thus the lifetime of the distributing manufacturing can be substantially increased the unavoidable conclusion from this study is that the RepRap is an economically attractive investment for the average US household already. It appears clear that as RepRaps improve in reliability, continue to decline in cost and both the number and assumed utility of open-source designs continues growing exponentially, open-source 3-D printers will become a mass-market mechatronic device. Free and open-source software (FOSS) is computer software that is available in source code (open source) form and that can be used, studied, copied, modified, and redistributed without restriction, or with restrictions that only ensure that further recipients have the same rights under which it was obtained [1] . FOSS is now the relative standard, with 94% of the World's top 500 super computers, 75% of the top 10,000 websites and 98% of enterprises using open-source software [2] [3] [4] . Due to the tremendous success of FOSS development, the concept of open source has spread to areas of inquiry such as education [5, 6] , appropriate technology for sustainable development (OSAT) [7, 8] , science [9] , nanotechnology [10] [11] [12] , medicine [13, 14] , and even hardware [15] . Of the open-source hardware projects, the recent development of low-cost open-source 3-D printers, like the RepRap, has been the most useful for a wide array of research as it has made rapid prototyping accessible to most university laboratories [16] [17] [18] . RepRap's open-source and self-replicating nature (approximately 50% of its own parts can be self-printed and it can be assembled largely with off-the-shelf hardware store items and a few specialized electronics that are readily available online [17, 18] ) makes it an extremely useful platform for open-source fabrication of scientific tools [19] . Since the RepRap's introduction in 2006 , the open-source hardware community has rapidly grown and now supports both online businesses solely dedicated to supplying 3-D printers, printer parts and 3-D printing supplies and galleries of open-source designs of both improvements on the printer design but also many other objects including scientific tools, which are hosted on purpose-built sites. These open-source hardware designs sites permit downloading and printing of designs as well as modification and derivation of new designs mimicking long-established open-source software protocols [20] . Recent work has demonstrated that the costs of scientific equipment can be radically reduced by applying open-source principles to their design using a combination of the open-source Arduino electronics prototyping platform and the RepRap 3-D printer [19] . This open-source hardware approach is used here to create an open-source colorimeter.. A colorimeter is a relatively simple sensor device consisting of a light source, sample (cuvette) holder, light intensity sensor and means of controlling the light source and integrating transmitted light intensity. Incident light is generally filtered allowing only a narrow band near the absorbance peak for a given dissolved species. The method requires a blank solution for calibration (zero) and reports results in absorbance units, transmittance or applies the Beer-Lambert law to report results as concentration [21] . Colorimetric methods are used widely in research and industry, including investigating food during storage such as bread [22] , chocolate [23] and milk [24] . Colorimeters are used to monitor the levels of nitrates, phosphates, metals and other compounds present in effluent from the manufacture of paper and other commercial goods [25, 26] . They have also traditionally been used to estimate the population density of protozoa in a culture and more recently by the medical community to measure the UV radiation exposure of children though skin color changes and to study the aging of bruises [27] [28] [29] . One of the more popular applications of a colorimeter is measuring the chemical oxygen demand (COD) for estimating the organic content of waste waters. COD is also a measure included in some water quality indices (WQI) [30] . There are sophisticated and expensive methods to determine COD with high accuracy [31, 32] , but often at high cost and increased production of waste from the analyses.. This paper provides a methodology for the design, development, and technical validation of an open-source colorimeter using the closed reflux COD method (EPA method 5220D). This approach is evaluated for its potential to reduce the cost of equipment to perform colorimetric COD and the results are discussed to provide conclusions about future development of open-source analytical tools.. Whereas a previous open-source colorimeter, the IORodeo Educational Colorimeter Kit [33] , was developed for use in the education environment, the instrument presented here is purpose-built to perform this single analysis so as to determine the efficacy of applying the open-source methodology to development of research-grade, bespoke instruments in a research environment. The colorimeter was selected because of its simplicity and utility, making it an ideal instrument to launch an investigation into this methodology.

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