# Optimization Techniques for Design Problems in Selected Areas in WSNs: A Tutorial
## 2 Introduction to Mathematical Programming  
In a mathematical programming problem, the decision maker wishes to choose decision variables to maximize or minimize an objective function, subject to the requirement that the decision variables satisfy certain constraints. In the case of WSNs, the decision maker can be one or more sensors, for e.g., cluster head sensor nodes. The objective function is basically a design criterion that we are trying to achieve, e.g., maximum throughput, minimum delay, maximum energy efficiency etc. The constraints can be physical restrictions like amount of available battery power, a subchannel capacity or a maximum allowable transmit duration etc.  
There are four broad categories of optimization problems, where for each category, an extensive literature of different methods to solve certain sub categories have been proposed. These categories are:  
* _Linear Programming_ (LP): This is the first category of optimization problems that were considered by early scientists and researchers in the OR field. Basically the decision variables are continuous,the objective function and all the constraints are linear in the decision variables. We would recommend the references [23; 24; 25] as an introduction with many solved examples for LPs.
* _Non-Linear Programming_ (NLP): In this category, we only have continuous variables but either the objective function or at least one of the constraints are non linear in the decision variables. Good references are the text book by the convex optimization pioneers [PERSON] and [PERSON] [26] and [PERSON]'s notes for his Convex Optimization I (EE364a) and Convex Optimization II (EE364b) courses in the Stanford University [27; 28].
* _Mixed Integer Linear Programs_ (MILP): This is a linear program, where a subset of the decision variables have the restriction that they can only take a set of integer values for each. Again the three textbooks in [23; 24; 25] would be a good reference for an introduction to this type of optimization problems.
* _Mixed Integer Non-Linear Programs_ (MINLP): This is a non linear program in which a subset of the decision variables must take integer values only. A good reference for this type of problems is the monograph in [29], which is a compilation of key MINLP papers published in a number of strong journals in the field of Operations Research. Another can be a textbook by the global optimization pioneer [PERSON] [30].  
In all of the above broad classes of optimization problems, decision variables should completely describe the decisions to be made. In the case of WSNs in particular, the following can be an example of what the decision variables can be used to model:  
* The amount of radio power at a particular time slot a sensor is going should transmit (power management), this is usually modelled using continuous variables.
* The time instants and/or durations for each sensor node's transmission (scheduling). Both continuous and integer variables have been used for that purpose.
* The amount of spectrum bandwidth to be used by each sensor node for transmission. Both continuous and integer variables have been used for that purpose.
* The set of links to be used in a WSN. Binary variables have been used to model whether a link would be used or not.
* Modulation schemes, and channel coding rate each node can use on any of its links. Integer variables are mostly a suitable choice for modeling that aspect.
* The data flow rate in bps per link, usually modelled using continuous variables.