Geometric programming: Difference between revisions

From Cornell University Computational Optimization Open Textbook - Optimization Wiki
Jump to navigation Jump to search
No edit summary
 
(53 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Authors: Wenjun Zhu(wz274), Sam Olsen(sgo23) (SYSEN5800, FALL 2021)
Authors: Wenjun Zhu, Sam Olsen (SYSEN5800, FALL 2021)


== Introduction ==
== Introduction ==


A '''geometric programming (GP)''' is a family of non-linear optimization problems. Geometric programming optimization problems are typically not convex optimization problems. However, geometric programming optimization problems can be transformed from non-convex optimization problems to convex optimization problems given by their special properties. The convexification for geometric programming optimization problems are implemented by a mathematical transformation of the objective function and constraint functions and a change of decision variables. Geometric programming is generally used to solve and analyze various large scale applications. Typical applications include but are not limited to optimizing power control in communication systems<ref>S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi. ''A Tutorial on Geometric Programming.'' Retrieved 20 October 2019.</ref>, optimizing doping profile in semiconductor device engineering, optimizing electronic component sizing in IC design, and optimizing aircraft design in aerospace engineering.
A '''geometric programming (GP)''' is a family of non-linear optimization problems. Geometric programming optimization problems are typically not convex optimization problems. However, geometric programming optimization problems can be transformed from non-convex optimization problems to convex optimization problems given by their special properties. The convexification for geometric programming optimization problems is implemented by a mathematical transformation of the objective function and constraint functions and a change of decision variables. Though a number of practical problems are not equivalent to geometric programming, geometric programming is generally considered an effective solution for practical problems and it is used to well approximate and analyze various large-scale applications. Typical applications include but are not limited to optimizing power control in communication systems<ref name=":3">M. Chiang, C. W. Tan, D. P. Palomar, D. O’Neill, and D. Julian,[https://www.princeton.edu/~chiangm/gppower.pdf "Power Control By Geometric Programming"]  (JULY 2007).</ref>, optimizing doping profile in semiconductor device engineering<ref name=":4" />, optimizing electronic component sizing in IC design<ref name=":0">S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi.[https://link.springer.com/article/10.1007/s11081-007-9001-7 "A Tutorial on Geometric Programming."] Retrieved 20 October 2019.</ref>, and optimizing aircraft design in aerospace engineering<ref>W. Hoburg and P. Abbeel. ''Geometric programming for aircraft design optimization.'' AIAA Journal 52.11 (2014): 2414-2426.</ref>.
 
== Theory/Methodology ==
== Theory/Methodology ==
=== Monomial function ===
Let <math>x_1</math> ... <math>x_n</math> denote <math>n</math> real positive variables,
A monomial function, or a monomial, is defined as:
<math>f(x)</math> = <math>cx_1^{a_1}</math><math>x_2^{a_2}</math>...<math>x_n^{a_n}</math>
where <math>c</math> > 0, <math>a_i</math> ε R
The exponents <math>a_i</math> of a monomial can be any real numbers, including fractional or negative, but the coefficient <math>c</math> can only be positive<ref name=":1">S. Boyd, L. Vandenberghe, ''Convex Optimization''. Cambridge University Press, 2009.</ref>.
=== Posynomial function ===
==== Posynomial ====
A posynomial function, or a posynomial, is defined as: <math>f(x)</math> = <math>\sum_{k=1}^K</math><math>c_kx_1^{a_{1k}}</math><math>x_2^{a_{2k}}</math>...<math>x_n^{a_{nk}}</math>
where <math>c_k</math> > 0,
This is a function of sum of monomial functions<ref name=":1" />.
==== Generalized Posynomial ====
A generalized posynomial function, or a general posynomial, is defined as a function <math>f(x_i)</math> of positive variables <math>x_i </math> if it can be formed from posynomials using the operations of addition, multiplication, positive (fractional) power, and maximum<ref name=":0" />.
For example:
<math>f(x)= (h_1(x)+h_2(x))^6(h_3(x)+10)</math>
where <math>h_1(x)=0.9x^2</math>,
<math>h_2(x)=4{x}^6</math>,
<math>h_3(x)=max(1+x,2x^7)</math>
<math>f(x)</math> is a generalized posynomial function and it can be seen as follows:
* <math>0.9x^2</math> is a posynomial so <math>h_1(x)</math> is a posynomial function
* <math>4x^6</math> is a posynomial so <math>h_2(x)</math> is a posynomial function
* <math>1+x</math> and <math>2x^7</math> are posynomials, since it is the maximum of two posynomials, <math>max(1+x,2x^7)</math> is a generalized posynomial so <math>h_3(x)</math> is a generalized posynomial function
* <math>f(x)</math> is expressed by addition, multiplication, and positive (fractional) power from <math>h_1(x)</math>, <math>h_2(x)</math>, <math>h_3(x)</math> functions
Therefore <math>f(x)</math> is a generalized posynomial function.


=== Definition ===
=== Definition ===
The standard form of Geometric Programming optimization is to minimize the objective function which must be posynomial. The inequality constraints can only have the form of a posynomial less than or equal to one, and the equality constraints can only have the form of a monomial equal to one.
The standard form of Geometric Programming optimization is to minimize the objective function which must be posynomial. The inequality constraints can only have the form of a posynomial less than or equal to one, and the equality constraints can only have the form of a monomial equal to one.<ref name=":0"/>
 
==== Monomial functions and Posynomial functions ====
A monomial function is defined as: <math>f(x)</math> = <math>cx_1^a</math>


==== Standard Form ====
==== Standard Form ====
Line 21: Line 61:
<math>x_i > 0 </math>,    <math>i </math> = 1,...,q,
<math>x_i > 0 </math>,    <math>i </math> = 1,...,q,


where <math>f_i(x)</math> are posynomial functions, <math>g_i(x)</math> are monomials, and <math>x_i </math> are the optimization variables.
where <math>f_i(x)</math> are posynomial functions, <math>g_i(x)</math> are monomials, and <math>x_i </math> are the decision variables.
==== Generalized Geometric Programming Form ====
'''Minimize''' <math>f_0(x)</math>
 
'''Subject to:''' <math>f_i(x)\leqslant1 </math>,    <math>i </math> = 1,...,m,
 
<math>g_i(x) = 1 </math>,    <math>i </math> = 1,...,p,
 
where <math>f_i(x)</math> are generalized posynomial functions, <math>g_i(x)</math> are monomials, and <math>x_i </math> are the decision variables.


Since any posynomial is also a generalized posynomial, any geometric programming is also generalized geometric programming.


Generalized geometric programming can be converted to equivalent geometric programming by different mathematical transformations.


==== Feasibility Analysis====
For the generalized geometric programming problem to be feasible, the constants need to be mutually consistent.<ref name=":0"/>
where:
<math>f_i(x)\leqslant1 </math>,    <math>i </math> = 1,...,m,
<math>g_i(x) = 1 </math>,    <math>i </math> = 1,...,p
Determining the feasibility needs to be found before optimization. If these conditions are not met, then it might be useful to find: <math>x*</math>, the closest point to feasibility. If that is the case, the following format is provided:
'''Minimize''' <math>s_1...s_m</math>
'''Subject to:''' <math>f_i(x)\leqslant1 </math>,    <math>i </math> = 1,...,m,
<math>g_i(x) = 1 </math>,    <math>i </math> = 1,...,p,
<math>f_i(x)\geqslant1</math>,    <math>i </math> = 1,...,m


== Numerical Examples ==
== Numerical Examples ==


=== Solve a Geometric Programming problem in standard form ===
=== Transform a non-standard form GP to standard form GP ===
'''Minimize''' <math>f_0(x,y) = x^2y^3 + 3x + 2xy </math>
The non-standard form GP is as follows:
 
'''Minimize''' <math>f_0(x,y) = x/y </math>
 
'''Subject to:''' <math>1\leqslant{x}\leqslant4</math>,
 
<math>x^2\leqslant{y^2}</math>,


'''Subject to:''' <math>x^5+2y^6+1\leqslant1 </math>,
<math>x/y^3 = 3 </math>


<math>x+2y\leqslant1 </math>,
The equivalent standard form GP is as follows:


<math>xy = 1 </math>,
'''Minimize''' <math>f_0(x,y) = x^{-1}y </math>


<math>x > 0 </math>,  
'''Subject to:''' <math>x^{-1}\leqslant1 </math>,


<math>y > 0 </math>  
<math>{(1/4)}x\leqslant1 </math>,


For the problem above, this is a geometric optimization problem in standard form.
<math>{x^2}{y^{-2}}\leqslant1</math>,


The solution is: ...
<math>{(1/3)}xy^{-3} = 1 </math>


=== Transform Non-convex Optimization Problems to Convex Optimization problem ===
=== Transform Non-convex Optimization Problems to Convex Optimization problem ===
'''Reformulate the following non-convex MINLP to a convex one'''
The non-convex non-linear programming is as follows:
 
'''Minimize''' <math>f_0(x_1,x_2) = {x_1}{x_2} </math>
 
'''Subject to:''' <math>({x_1}^2/{x_2}^2)\leqslant{{x_1}^{0.6}} </math>,
 
<math>x_1\geqslant0 </math>,
 
<math>x_2\geqslant0 </math>
 
The reformulation process using exponential transformation, from non-convex optimization problem to convex optimization problem, is as follows:
 
Let <math>x_1 = e^{u_1}  </math>, <math>x_2 = e^{u_2}  </math>, then the objective function becomes:
 
<math>f_0(e^{u_1},e^{u_2}) = e^{({u_1}+{u_2})} </math>
 
The first constraint of the problem becomes:
 
=> <math>e^{2({u_1}-{u_2})}\leqslant{e^{{0.6}u_1}}  </math>
 
=> <math>2({u_1}-{u_2})\leqslant{0.6{u_1}}  </math>
 
=> <math>{u_1}-{u_2}\leqslant{0.3{u_1}}  </math>
 
The second constraint of the problem becomes:
 
=> <math>e^{u_1}\geqslant0 </math>
 
<math>{u_1}</math> is unbounded.


'''Minimize''' <math>f_0(x_1,x_2,x_3) = 16(x_1)^2(x_2)^2 + 3(x_2)^3(x_3)^4  </math>
The third constraint of the problem becomes:


'''Subject to:''' <math>x^5+2y^6+1\leqslant1 </math>,
=> <math>e^{u_2}\geqslant0 </math>


<math>x+2y\leqslant1 </math>,
<math>{u_2}</math> is unbounded.


<math>xy = 1 </math>,
Substitute the new reformulation into the original problem, the new problem becomes:


<math>x > 0 </math>,
'''Minimize''' <math>f_0(e^{u_1},e^{u_2}) = e^{({u_1}+{u_2})} </math>


<math>y > 0 </math>
'''Subject to:''' <math>{u_1}-{u_2}\leqslant{0.3{u_1}}</math>,


<math>{u_1}</math>, <math>{u_2}</math> are unbounded.


This is a convex non-linear programming problem.


== Applications ==
== Applications ==


=== Power Control ===


Transmitter power control in communication system is one of the typical applications of geometric programming. The objective of the problem is to minimize the total power of the transmitters subject to transmitter power limits and the signal to interference and noise ratio (SINR) of many receiver/transmitter pairs.<ref name=":3"/> This application demonstrates that the GP formulation allows us to handle the more general case in which the receiver interference power is any posynomial function of the powers.
=== Optimal Doping Profile ===


Doping profile in semiconductor device engineering is another typical application of geometric programming. The objective of the problem is to choose the best doping profile (also called the acceptor impurity concentration) to obtain a transistor with favorable properties. There are many factors that affect the properties of a transistor. One of the critical measures of the favorable properties of a transistor is its base transit time, which determines how fast the transistor is. Therefore, the goal is to choose the doping profile to minimize the base transit time, subject to doping profile limits, doping gradient, and initial/final doping profile values.<ref name=":4">Y.Li and Y.-C. Chen1,Optimal Channel Doping Profile of Two-Dimensional Metal-Oxide-Semiconductor Field-Effect Transistors via Geometric Programming (2015).</ref>
=== FloorPlanning ===
The floor planning problem is a generalized geometric programming problem instead of a geometric programming problem. However, any generalized geometric programming problem can be mechanically transferred to any geometric programming problem. The objective of the problem is to minimize the "bounding box" area that can include all the required objects, subject to the area of the individual object and the aspect ratio of the individual object.<ref name=":5">B. Nadhindla, H. Kakarlai, V. Gunjan, M .Reddy,  Dr. F. Shaik, Geometric Programming-Based Automation of Floorplanning in ASIC Physical Design: Proceedings of the International Conference on Communications and Cyber Physical Engineering 2018. 10.1007/978-981-13-0212-1_48..</ref>
[[File:Longest path.png|thumb|Digital Circuit]]
=== Digital Gate Sizing ===
The digital gate sizing problem is a generalized geometric programming problem instead of a geometric programming problem. However, any generalized geometric programming problem can be mechanically transferred to any geometric programming problem.<ref name=":7">S. -P. Boyd, S.-J. Kim, D. -D. Patil, M. -A. Horowitz,[https://web.stanford.edu/~boyd/papers/pdf/gp_digital_ckt.pdf "Digital Circuit Optimization via Geometric Programming. Operations Research"]  (2005) 53(6):899-932. </ref> The objective of the problem is to minimize the worst-case delay of the digital signal traveling along any path through the circuit, subject to limits on the total area and power. The problem can be demonstrated as follows: To the right there is a Digital Circuit with the critical path highlighted in red. Every IC component is given power, area, resistance, and capacitance values. Using the 3 different component types: AND, OR, NOT, the total power, total area,
total resistance, and total capacitance are fond for each component type. The Minimum delay, is the summation of the multiplication for each components total resistance and capacitance, with relations to bounded area and power.<ref name=":8">V. -K. Vassilev, J. -F. Miller, [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.33.6378&rep=rep1&type=pdf "Scalability Problems of Digital Circuit Evolution Evolvability and Efficient Designs"], (2000) 2-10. </ref>


== Conclusion ==
== Conclusion ==


In general, geometric programming is a simple but powerful family of non-linear optimization problems. Though geometric programming optimization problems are typically not convex optimization problems, they can be transformed to convex optimization problems by multiple convexification techniques. This makes the optimization problems more tractable. Because of this special property, geometric programming is one of the best way to solve and analyze various large scale applications.  
In general, geometric programming is a simple but powerful family of non-linear optimization problems. Though geometric programming optimization problems are typically not convex optimization problems, they can be transformed to convex optimization problems by multiple convexification techniques.<ref name=":6">Z. Perez-Rivera, E. Tlelo-Cuautle and V. Champac, Gate Sizing Methodology with a Novel Accurate Metric to Improve Circuit Timing Performance under Process Variations, (2020) 1-15..</ref> Because of convexification, geometric programming is used to solve and analyze various large-scale applications, and it is used to convert computationally intractable optimization problems to computationally tractable optimization problems.
 
== References ==
== References ==
<references />
<references />

Latest revision as of 14:40, 11 December 2021

Authors: Wenjun Zhu, Sam Olsen (SYSEN5800, FALL 2021)

Introduction

A geometric programming (GP) is a family of non-linear optimization problems. Geometric programming optimization problems are typically not convex optimization problems. However, geometric programming optimization problems can be transformed from non-convex optimization problems to convex optimization problems given by their special properties. The convexification for geometric programming optimization problems is implemented by a mathematical transformation of the objective function and constraint functions and a change of decision variables. Though a number of practical problems are not equivalent to geometric programming, geometric programming is generally considered an effective solution for practical problems and it is used to well approximate and analyze various large-scale applications. Typical applications include but are not limited to optimizing power control in communication systems[1], optimizing doping profile in semiconductor device engineering[2], optimizing electronic component sizing in IC design[3], and optimizing aircraft design in aerospace engineering[4].

Theory/Methodology

Monomial function

Let ... denote real positive variables,

A monomial function, or a monomial, is defined as:

= ...

where > 0, ε R

The exponents of a monomial can be any real numbers, including fractional or negative, but the coefficient can only be positive[5].

Posynomial function

Posynomial

A posynomial function, or a posynomial, is defined as: = ...

where > 0,

This is a function of sum of monomial functions[5].

Generalized Posynomial

A generalized posynomial function, or a general posynomial, is defined as a function of positive variables if it can be formed from posynomials using the operations of addition, multiplication, positive (fractional) power, and maximum[3].

For example:

where ,

,

is a generalized posynomial function and it can be seen as follows:

  • is a posynomial so is a posynomial function
  • is a posynomial so is a posynomial function
  • and are posynomials, since it is the maximum of two posynomials, is a generalized posynomial so is a generalized posynomial function
  • is expressed by addition, multiplication, and positive (fractional) power from , , functions

Therefore is a generalized posynomial function.

Definition

The standard form of Geometric Programming optimization is to minimize the objective function which must be posynomial. The inequality constraints can only have the form of a posynomial less than or equal to one, and the equality constraints can only have the form of a monomial equal to one.[3]

Standard Form

Minimize

Subject to: , = 1,...,m,

, = 1,...,p,

, = 1,...,q,

where are posynomial functions, are monomials, and are the decision variables.

Generalized Geometric Programming Form

Minimize

Subject to: , = 1,...,m,

, = 1,...,p,

where are generalized posynomial functions, are monomials, and are the decision variables.

Since any posynomial is also a generalized posynomial, any geometric programming is also generalized geometric programming.

Generalized geometric programming can be converted to equivalent geometric programming by different mathematical transformations.

Feasibility Analysis

For the generalized geometric programming problem to be feasible, the constants need to be mutually consistent.[3] where:

, = 1,...,m,

, = 1,...,p

Determining the feasibility needs to be found before optimization. If these conditions are not met, then it might be useful to find: , the closest point to feasibility. If that is the case, the following format is provided:

Minimize

Subject to: , = 1,...,m,

, = 1,...,p,

, = 1,...,m

Numerical Examples

Transform a non-standard form GP to standard form GP

The non-standard form GP is as follows:

Minimize

Subject to: ,

,

The equivalent standard form GP is as follows:

Minimize

Subject to: ,

,

,

Transform Non-convex Optimization Problems to Convex Optimization problem

The non-convex non-linear programming is as follows:

Minimize

Subject to: ,

,

The reformulation process using exponential transformation, from non-convex optimization problem to convex optimization problem, is as follows:

Let , , then the objective function becomes:

The first constraint of the problem becomes:

=>

=>

=>

The second constraint of the problem becomes:

=>

is unbounded.

The third constraint of the problem becomes:

=>

is unbounded.

Substitute the new reformulation into the original problem, the new problem becomes:

Minimize

Subject to: ,

, are unbounded.

This is a convex non-linear programming problem.

Applications

Power Control

Transmitter power control in communication system is one of the typical applications of geometric programming. The objective of the problem is to minimize the total power of the transmitters subject to transmitter power limits and the signal to interference and noise ratio (SINR) of many receiver/transmitter pairs.[1] This application demonstrates that the GP formulation allows us to handle the more general case in which the receiver interference power is any posynomial function of the powers.

Optimal Doping Profile

Doping profile in semiconductor device engineering is another typical application of geometric programming. The objective of the problem is to choose the best doping profile (also called the acceptor impurity concentration) to obtain a transistor with favorable properties. There are many factors that affect the properties of a transistor. One of the critical measures of the favorable properties of a transistor is its base transit time, which determines how fast the transistor is. Therefore, the goal is to choose the doping profile to minimize the base transit time, subject to doping profile limits, doping gradient, and initial/final doping profile values.[2]

FloorPlanning

The floor planning problem is a generalized geometric programming problem instead of a geometric programming problem. However, any generalized geometric programming problem can be mechanically transferred to any geometric programming problem. The objective of the problem is to minimize the "bounding box" area that can include all the required objects, subject to the area of the individual object and the aspect ratio of the individual object.[6]

Digital Circuit

Digital Gate Sizing

The digital gate sizing problem is a generalized geometric programming problem instead of a geometric programming problem. However, any generalized geometric programming problem can be mechanically transferred to any geometric programming problem.[7] The objective of the problem is to minimize the worst-case delay of the digital signal traveling along any path through the circuit, subject to limits on the total area and power. The problem can be demonstrated as follows: To the right there is a Digital Circuit with the critical path highlighted in red. Every IC component is given power, area, resistance, and capacitance values. Using the 3 different component types: AND, OR, NOT, the total power, total area, total resistance, and total capacitance are fond for each component type. The Minimum delay, is the summation of the multiplication for each components total resistance and capacitance, with relations to bounded area and power.[8]

Conclusion

In general, geometric programming is a simple but powerful family of non-linear optimization problems. Though geometric programming optimization problems are typically not convex optimization problems, they can be transformed to convex optimization problems by multiple convexification techniques.[9] Because of convexification, geometric programming is used to solve and analyze various large-scale applications, and it is used to convert computationally intractable optimization problems to computationally tractable optimization problems.

References

  1. 1.0 1.1 M. Chiang, C. W. Tan, D. P. Palomar, D. O’Neill, and D. Julian,"Power Control By Geometric Programming" (JULY 2007).
  2. 2.0 2.1 Y.Li and Y.-C. Chen1,Optimal Channel Doping Profile of Two-Dimensional Metal-Oxide-Semiconductor Field-Effect Transistors via Geometric Programming (2015).
  3. 3.0 3.1 3.2 3.3 S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi."A Tutorial on Geometric Programming." Retrieved 20 October 2019.
  4. W. Hoburg and P. Abbeel. Geometric programming for aircraft design optimization. AIAA Journal 52.11 (2014): 2414-2426.
  5. 5.0 5.1 S. Boyd, L. Vandenberghe, Convex Optimization. Cambridge University Press, 2009.
  6. B. Nadhindla, H. Kakarlai, V. Gunjan, M .Reddy, Dr. F. Shaik, Geometric Programming-Based Automation of Floorplanning in ASIC Physical Design: Proceedings of the International Conference on Communications and Cyber Physical Engineering 2018. 10.1007/978-981-13-0212-1_48..
  7. S. -P. Boyd, S.-J. Kim, D. -D. Patil, M. -A. Horowitz,"Digital Circuit Optimization via Geometric Programming. Operations Research" (2005) 53(6):899-932.
  8. V. -K. Vassilev, J. -F. Miller, "Scalability Problems of Digital Circuit Evolution Evolvability and Efficient Designs", (2000) 2-10.
  9. Z. Perez-Rivera, E. Tlelo-Cuautle and V. Champac, Gate Sizing Methodology with a Novel Accurate Metric to Improve Circuit Timing Performance under Process Variations, (2020) 1-15..