Sensor Location Problems As Test Problems Of Nonsmooth Optimization And Test Results Of A Few Nonsmooth Optimization Solvers

In this paper we address and advocate the sensor location problems and advocate them as test problems of nonsmooth 
optimization. These problems have easy-to-understand practical meaning and importance, easy to be even randomly generated, and the solutions can be 
displayed visually on a 2-dimensional plane. For testing some nonsmooth optimization solvers, we present a very simple sensor location problem of two 
sensors for four objects with the optimal solutions known by theoretical analysis. We tested several immediately ready-to-use optimization solvers on 
this problem and found that optimization solvers MATLAB’s ga() and VicSolver’s UNsolver can solve the problem, while some other optimization solvers 
like Excel solver, Dr Frank Vanden Berghen’s CONDOR, R’s optim(), and MATLAB’s fminunc() cannot solve the problem.


I. INTRODUCTION
Nonsmooth optimization is an important research field of optimization and has wide applications in real life.Although there are many test problems of nonsmooth optimization [1], some of them are too academic and lack practical backgrounds and importance, while some others are not so flexible in generating random problems of various sizes for testing purposes.Hence it is still good to have more test problems, in particular if the problems have easily understandable practical meanings and importance, and more preferably visual displays.In this paper we address sensor location problems and advocate them as a new group of test problems of nonsmooth optimization solvers.The problems are generally nonsmooth and difficult to solve.We present test results of a simple sensor location problem solved by some nonsmooth optimization solvers, which are: Excel solver developed by FrontLine Solvers [2], CONDOR developed by Frank Vanden Berghen [3], R's optim() function [4], MATLAB's fminunc() function and some other solvers [5], and VicSolver's UNsolver [6].All these solvers have directly ready-to-use (that is, no need to compile or link by using a compiler) evaluation versions available to anyone, hence the test results reported in this paper can be repeated by anybody.This paper is organized as following.Section II addresses the sensor location problem from different practical backgrounds, section III explains the abovementioned ready-touse solvers and their test results and section IV summarizes the main points and results of the paper and points out some future work.

A. Sensor location problems
We use Figure 1 to help us illustrate the sensor location problems.Suppose we want to use three sensors to sense n objects in an area.The locations of the n objects are known, as shown in Figure 1.We want to determine the "best" locations of the three sensors.There could be different criteria for determining the "best" locations.One of them is to minimize the largest squared distance from an object to the nearest sensor, that is, 1) Sensor Location Problem: For sensing n objects at locations: (ox(i),oy(i)): i=1,2,…,n, find locations of s sensors: (sx(j),sy(j)): j=1,2,…,s, such that the largest squared distance from an object to the nearest sensor max(min((ox(i)-sx(j))2+(oy(i)-sy(j))2,j=1,2,…s),i=1,2,…,n) is minimized.The same type of location problems could come from different real life backgrounds.The following are just two versions of them among many others, which might be good for teaching purposes.
The sensor location problem may have constraints.For example, we may want to determine the best locations of three sensors on two roads only, as shown below in Figure 2. So, in general, the sensor location problem is stated as in the following: Sensor Location Problem: For sensing n objects at locations: O(i): i=1,2,…,n, find locations of s sensors: S(j): j=1,2,…,s, such that the largest squared distance from an object to the nearest sensor max(min(distance(O(i),S(j)),j=1,2,…s),i=1,2,…,n) is minimized.
The largest squared distance from an object to the nearest sensor, as a function of the locations of the sensors, is a continuous but nonsmooth function.The function of a very simple situation yields the nonsmooth surface as shown in Figure 3.
The sensor location problems are like the facility location problems explained in [7] hence in general very difficult to solve.As test problems of nonsmooth optimization, however, they have the merits that they have easily understandable practical backgrounds and importance, the object locations can be randomly generated and there can be a 2-dimensional visual display of the solutions.When the number of objects is small, the optimal solution can be obtained by examining different mappings of objects to different sensors.However, when the number of objects increases, the number of different mappings quickly becomes so huge that checking all different mappings becomes impossible.For example, if there are 100 objects and 5 sensors, then the number of mappings is 5100.Hence smarter algorithms of nonsmooth optimization are necessary for solving medium to large scale sensor location problems.

OF SOME SOLVERS
For testing different solvers of nonsmooth optimization, we have this simple sensor location problem: the four objects are in blue at the corners of a square, that is, (0,0), (0,1), (1,1), (1,0), as shown in Figure 4 below.We want to determine the best locations of two sensors, and apparently we can see there are two optimal solutions: {(0, 0.5), (1, 0.5)} and {(0.5, 0), (0.5, 1)}, as shown in red in Figure 4 below.There are many published computer programs for nonsmooth optimization, and an incomplete list can be found at http://napsu.karmitsa.fi/nsosoftware/.Here in this paper we focus on only some ready-to-use programs, not those programs in source codes or in a binary library which needs a compiler or www.ijarai.thesai.orglinker to compile or link the program to a user's main program.The ready-to-use programs tested in this paper are: Excel solver developed by FrontLine Solvers [2], CONDOR developed by Dr Frank Vanden Berghen [3], R's optim() function [4], MATLAB's fminunc() function and some other solvers [5], and VicSolver's UNsolver developed by Dr Fuchun Huang [6].In testing these solvers, we use the initial sensor locations {(0.5, 0.5), (0.5, 0.5)}, which is not a local minima as the objective function would decrease if one sensor moves to the left (or up) a little bit and the other moves to the right (or down) a little bit.
When solve the problem by 'Evolutionary' method as shown in Figure 6, it ends up with the message that 'Solver cannot improve the current solution'.
When solve the problem by 'GRG nonlinear' method, it also ends up with the message that 'Solver cannot improve the current solution'.

B. CONDOR's result
CONDOR [3] is a constrained, non-linear, derivative-free parallel optimizer for continuous, high computing load, noisy objective functions developed by Dr Frank Vanden Berghen.CONDOR is also available via NEOS Server [8].
The following file is the AMPL [9] code for solving the sensor location problem at the beginning of the section: When the file is submitted to NEOS server to be solved by CONDOR, the following 'optimal' solution is returned: www.ijarai.thesai.orgWe see the optimal solution and the minimum value "Final obj.funct.Value=0.25751389" are not so close to the truly optimal solution and minimum value 0.25.

C. R's optim() function
R [4] is a free software environment for statistical computing and graphics.It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.The version of R we used is 2.14.1.R's optim() function has five methods for multi-dimensional optimization: "Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN".

D. MATLAB's fminunc() function and other solvers
MATLAB [5] is a numerical computing environment and fourth-generation programming language developed by MathWorks.The version of MATLAB we used is 7.11.1.The following shows the MATLAB m-file of the two-sensor fourobject problem stated at the beginning of the section, and running results of the optimization function fminunc() with default option settings: We see the solver cannot improve the initial values, and wrongly claims the initial point is a local minimum.Other option settings of the solver yield the same results.www.ijarai.thesai.orgMATLAB has several other solvers and their results are presented and explained below and in Figure 8.
>> fminsearch(@s2o4,[0.5 0.5 0.5 0.5]) ans = 0.5000 0.5000 0.5000 0.5000 Optimization running.Objective function value: 0.5 Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-004 >> simulannealbnd(@s2o4,[0.5 0.5 0. We see MATLAB's fminsearch() and simulannealbnd() cannot solve the problem, and the solver ga() using genetic algorithm returns the objective function value 0.250163 by using population size 2000 and iteration number 168.As the population size and iteration number increases, the returned objective values become closer and closer to the true minimum, which is 0.25.

E. Unsolver
VicSolver's UNsolver [6] is an unconstrained derivativefree nonsmooth optimization solver developed by Dr Fuchun Huang of Victoria University, Australia.UNsolver uses FEFAR [10] as an application programming user's interface for users to specify an unconstrained smooth or nonsmooth optimization problem.The following is the LEFAR [10] code for the sensor location problem at the beginning of the section.The following is the running result of UNsolver: We see UNsolver finds one of the two optimal solutions.An evaluation version and some other test results of UNsolver are available from http://sites.google.com/site/VicSolver.

III. SUMMARY REMARKS AND FUTURE SCOPE
We present the sensor location problems and advocate them as test problems of nonsmooth optimization.
These problems have easy-to-understand practical meaning and importance, easy to be even randomly generated, and the solutions can be displayed visually on a 2-dimensional plane.For testing some ready-to-use nonsmooth optimization solvers, www.ijarai.thesai.orgwe present a very simple sensor location problem of two sensors for four objects with the optimal solutions known by theoretical analysis.We tested several optimization solvers on this problem and found that optimization solvers MATLAB's ga() and VicSolver's UNsolver can solve the problem, while some other optimization solvers like Excel solver, Dr Frank Vanden Berghen's CONDOR, R's optim(), and MATLAB's fminunc() cannot solve the problem.In the near future some medium to large scale "standard" sensor location problems will be generated and put online for researchers testing nonsmooth optimization solvers.

Figure 1 .
Figure 1.Locations of n objects and 3 sensors.

Figure 2 .
Figure 2. n objects and two roads.

Figure 3 .
Figure 3.The 3-dimensional surface of a 2-dimensional function of a simple sensor location problem.

Figure 4 .Figure 5 .
Figure 4.One optimal solution of the two sensor location problem

Figure 7 .
Figure 7. Excel Solver's Evolutionary method to solve the sensor location problem of two sensors.