AI and Cloud Computing

Jinxia Yu , ... Xiaojun Wang , in Advances in Computers, 2021

4.3 Short Integer Solution (SIS) problem

The Short Integer Solution (SIS) problem was first introduced in Ref. [3], and had become the theoretical foundation for one-way and collision-resistant hash functions, identification schemes, digital signatures, and other primitives (but not public-key encryption). The difficult problem of password hashing scheme in our protocol is based on assumption of SIS problem.

The SIS problem can be seen as an average-case short-vector problem on a certain family of so-called "q-ary" m-dimensional integer lattices, namely, the lattices

(2) A z m : Az = 0 q n q m

Definition 1

( SIS n, q, ℬ, m ) [3,12] Given m uniformly random vectors a i     q n , forming the columns of a matrix A    q n  × m , find a nonzero integer vector z    m of norm ‖z    ℬ such that

(3) f A z Az = i a i z i = 0 q n

Lending the coding theory, here A acts as a "parity-check" (or more accurately, "arity-check") matrix that defines the lattice ℒ(A). The SIS problem requires to find a sufficiently short nonzero vector in ℒ(A), where A is chosen uniformly at random.

One can also consider an inhomogeneous version of the SIS problem, which is to find a short integer solution to Az  = u    q n , where A, u are uniformly random and independent. Note that, regardless of the norm constraint, the set of all solutions is the lattice coset ℒ u (A)   = c  +   (A), where c    m is an arbitrary (not necessarily short) solution. These two problems, homogeneous and inhomogeneous, are essentially equivalent under certain parameters.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/S0065245820300838

Integer, Constrained and Multi-Objective Optimization

George Lindfield , John Penny , in Introduction to Nature-Inspired Optimization, 2017

9.1 Integer Optimization

In some practical optimization problems only integer solutions are valid. For example, the number of people employed, the number of vehicles in a fleet, the number of plants operating must all be positive integers.

It is tempting to assume that the best integer solution is found by determining the non-integer solution and then taking the nearest integer value of the non-integer solution. However, the integer value closest to the non-integer solution is frequently not the optimum integer solution. This is illustrated by the graph shown in Figure 9.1. The minimum value of the function shown in the range 4 to 12 is f ( x ) = 0.8022 when x = 6.6044 . If we round this value of x to 7 then f ( x ) = 0.6730 . However, when x = 10 , f ( x ) = 0.6950 and this is the required integer minimum solution.

Figure 9.1

Figure 9.1. Plot of f ( x ) = exp ( x / 30 ) sin ( ( x / 3.05 ) 2 ) The minimum integer value is x  =   10. The o denotes the integer values of the function.

The genetic algorithm lends itself very well to integer optimization. Suppose we seek an integer solution to a problem in the range 0 to 63. Then if each member of the population is limited to 5 bits it is impossible to determine a solution that is not an integer in the range 0 to 63. Integer solutions to optimization problems can also be used as an index to select data values from a table, see Section 2.10 of Chapter 2.

Many problems which naturally involve integer solutions such as machine and job scheduling problems and the traveling salesman problem (TSP) often involve binary integers. These problems are known to be extremely hard to solve. For a discussion of the TSP problem see Section 7.6 of Chapter 7.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128036365000098

Discrete Optimization for Reactive Power Planning

Mingtian Fan , ... Chengmin Wang , in Mathematical Models and Algorithms for Power System Optimization, 2019

6.6.5.2 Numerical Results

The objective function values and voltage violation values of Case 1 are given in Table 6.28.

Table 6.28. Objective function values and voltage violation values of Case 1

Variable Active Power Loss (MW) Max. Voltage Violation Value (p.u.) Number of Voltage Violation Nodes
INI 2.24 0.0656 10
SO1 1.93 0.0 0
SO2 1.90 0.0 0
SO3 1.89 0.0 0
SO4 1.88 0.0 0
SO5 1.93 0.0 0

The objective function values and voltage violation values of Case 2 are given in Table 6.29.

Table 6.29. Objective function values and voltage violation values of Case 2

Variable Active Power Loss (MW) Max. Voltage Violation Value (p.u.) Number of Voltage Violation Nodes
INI 2.86 0.1083 20
SO1 2.20 0.0127 6
SO2 2.17 0.0105 4
SO3 2.15 0.0089 2
SO4 1.97 0.0 0
SO5 1.90 0.0 0
SO6 1.83 0.016 5
SO7 1.83 0.0019 3
SO8 1.83 0.0048 3
SO9 1.83 0.0048 3
SO10 1.85 0.0 0
SO11 1.87 0.0 0
SO12 1.88 0.0 0

Based on Table 6.27, GA operations are executed to make the optimization calculation, and the approximated global optimal solution would be obtained.

To illustrate the multiplicity of integer solutions, Table 6.30 shows the detailed calculation results of integer variables for Case 2. Due to the limited space, this table gives only the final nine solutions for integer variables.

Table 6.30. Integer solutions and constraints of tap ratio in Case 2

Variable SO1 SO2 SO3 SO4 SO5 SO6 SO7 SO7 SO8 SO9 SO9
T1 1 1 1 1 1 1 1 1 1 1 1
T2 3 3 3 3 3 3 3 3 3 3 3
T3 2 2 2 2 (3) 2 (1) 2 2 (1) (1)
T4 4 4 4 4 4 4 4 (5) (5) 4 4
T5 1 1 1 1 1 1 1 1 1 1 1
T6 3 3 3 3 3 (4) (4) (4) (4) (4) (4)
T7 1 1 1 1 1 1 1 1 1 1 1
T8 3 3 3 3 3 3 3 3 3 3 3
T9 1 1 1 1 1 1 1 1 1 1 1
T10 5 (6) (6) (6) (6) 5 5 5 5 5 5
T11 6 6 (7) (7) 6 6 6 6 6 6 6
T12 4 4 4 4 4 4 4 4 4 4 4
T13 1 1 2 2 2 1 1 1 1 1 1
T14 4 4 4 4 4 4 4 4 4 4 4
T15 5 5 5 5 5 6   6 6 6 6 6
T16 6 6 6 6 6 5   5 5 (4) (4) (4)
T17 1 1 1 1 1 1 1 1 1 1 1
T18 1 1 1 1 1 1 1 1 1 1 1

As shown in Table 6.30, SO6–SO9 have obtained the same objective function in spite of different initial values, that is, there are identical objective function values for these four solutions. However, only one solution may be chosen because of the multiplicity of such GA breeding. The parenthesized figures in this table indicate different integer solutions available for SO1–SO9, of which the objective functions are slightly different accordingly.

The computational experience shows that, if the objective function value of the solution is no longer improved or nearly equal, then the solution can be regarded as an approximate global optimal solution.

The results in Tables 6.30 and 6.31 show that the GA-based discrete VAR optimization techniques can be used to search different objective functions or different integer solutions for the same VAR optimization problem. The results of Case 1 also come to a similar conclusion.

Table 6.31. Integer solutions and constraints of capacitor in Case 2

Variable SO1 SO2 SO3 SO4 SO5 SO6 SO7 SO7 SO8 SO9 SO9
C1 3 3 (2) 3 (4) 3 3 3 3 3 3
C2 0 0 (1) (1) (1) 0 0 0 0 0 0
C3 3 3 (2) 3 (4) 3 3 3 3 3 3
C4 3 3 (2) 3 3 3 3 3 3 3 3
C5 1 1 (2) (3) (3) 1 1 1 1 1 1
C6 2 2 2 (3) (3) 2 2 2 2 2 2
C7 (3) 4 (2) (3) 4 4 4 4 4 4 3
OBJ 2.20 2.17 2.15 1.97 1.90 1.83 1.83 1.83 1.83 1.84 1.85

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128132319000066

Programming II

James C. Squire P.E., Ph.D. , Julie Phillips Brown Ph.D. , in Programming for Electrical Engineers, 2021

Using Nested Loops to Search for Exact Solutions

Consider a program that searches for integer solutions for the sides of a right triangle, known as Pythagorean triples, satisfying c = a 2 + b 2 . The program searches for integer hypotenuses as side a ranges from 1 to some given upper bound N and as side b ranges from 1 to N.

Recall

x is an integer only if x == floor(x)

Every time an integer hypotenuse c is found, it is printed to the command window, as shown below:

function pythagorean(N)

% pythagorean(N) searches for integer sides of right

% triangles for lengths of sides varying from 1 to N

for a = 1:N   % side a

for b = 1:N   % side b

c = sqrt(a∗a+b∗b);% side c, the hypotenuse

if (c==floor(c)) % a solution is found

disp(c)

end

end % loop through side b values

end   % loop through side a values

Practice Problems

8.

The above code for pythagorean() works, but it only prints the hypotenuse values. Modify the code to print all the sides a, b, and c that are Pythagorean triples, and list the results for sides a and b between 1 and 20. ®

Pro Tip

Non-engineering Careers

Many electrical engineering graduates choose to pursue careers other than Electrical Engineering, and find that the quantitative skills they learned as students transfer well. Popular non-engineering careers for EE graduates include

Sales: There are many opportunities for qualified engineers who are more interested in working with people than design. Although these jobs are really about building trusting relationships, many require engineering-level knowledge about the system being sold, such as when selling substation transformers to provide power to growing communities.

Project management: This is another people-centric position, and it requires the ability to manage teams of engineers during the development phase of a project. Such positions require far more communication and planning skills than design skills.

Military: Increasing automation, especially in the technology-centric branches of the Air Force and Navy, calls for greater numbers of engineers. There are often special ROTC scholarships reserved specifically for engineering majors to help fill this gap.

Medicine: Engineers have higher Medical College Admission Test (MCAT) scores on average than both biology majors and "pre-med" health science majors1, and the analytical training they receive gives them advantages in certain specialties, including cardiology, neurology, and radiology.

Law: Math-intensive undergraduate curricula are correlated with Law School Admission Test (LSAT) performance. Engineering majors are among the highest-scorers on the LSAT, and on average significantly outperform other common majors bound for law school including language, psychology, social science, liberal arts, and pre-law majors. Patent law recruits heavily from engineering majors; an undergraduate degree in engineering alone is sufficient qualification to take the US Patent Bar Exam.

Opportunities abound both within and outside the engineering profession. Which will you choose?

1"MCAT and GPAs for Applicants and Matriculants to U.S. Medical Schools by Primary Undergraduate Major, 2019–2020," Association of American Medical Colleges, 2020. www.aamc.org/download/321496/data/factstablea17.pdf.

2"Average LSAT Scores by Major," https://magoosh.com/lsat/2016/average-lsat-scores-by-major/.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128215029000055

Number Theory, Algebraic and Analytic

H.E. Rose , in Encyclopedia of Physical Science and Technology (Third Edition), 2003

II.A.2 Pell's Equation and Quadratic Forms

Suppose d is a positive integer and not square, then the equation

x 2 d y 2 = 1

has infinitely many integer solutions x, y generated from a fundamental solution x 0, y 0 using the relation x + y d = x 0 + y 0 d n for n  Z . The fundamental solution can be found using the continued fraction expansion for d (see Section IV). It is an accident that Pell's name has been attached to this equation; J.-L. Lagrange (1736–1813) gave the first proof of its solvability.

A quadratic form (over Z ) is a function F: Z n Z given by the equation

F x 1 , , x n = i , j = 1 n a i j x i x j ,

where, for 1   i, j  n, a ij is an integer satisfying a ij   = a ji . An extensive theory has been developed for solutions of equations of the form

F x 1 , , x n = m .

It relies to some extent on the theory of Pell's equation discussed above. The results are generally straightforward, if a little complicated to state. Equations can have either a finite or an infinite number of solutions (this is related to the underlying geometry); in the latter case the solutions are generated by a finite set of fundamental solutions. Accounts are given in Rose 1999 [two-variable integer case] and Cassels 1978 [general field and integral domain cases].

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B0122274105005044

Analysis of Networked Control System with Packet Drops Governed by (m,k)-Firm Constraint*

Ning Jia , ... Rui-Zhong Lin , in Fieldbus Systems and Their Applications 2005, 2006

5 OPTIMAL PACKET DELIVERY SEQUENCE

In section 3, we have discussed how to guarantee that the variance of the system state x[t] remains finite as t goes to infinity, but in many actual situation, the bounded variance of control system is not enough to guarantee a stable operation of system. The high amplitude variation of the system state may be very troubling for it indicates that even though the variance of the system state is bounded, the large signal amplitudes may be unacceptable. Therefore the variation level of control system state is often considered as an important metric of system performance. A way to optimize this system performance is to minimize the variation of the system state as we have discussed in the previous section. Furthermore, in our work, the fact that the packet dropout sequence is governed by the (m,k)-firm constraint makes a further optimization possible for the positions of the packet drops in a packet delivery sequence has a important influence to the amplitude variation of system state. In this section, we will present a metric that directly relates control system performance to the packet drop sequence, then an approach based on this metric to deduce an optimal packet delivery sequence.

In the rest of the paper, we will use the number 0 and 1 to facilitate the presentation of the packet delivery sequence. I.e. 1 represents that the packet is received by the controller, and zero represents a packet drop. E.g., the sequence 10 represents that the first packet is received by the controller and the second is dropped.

To focus on the relationships between the packets, the effects of the noises will be eliminated from the system. Therefore the system is transformed as following.

If a packet is received by the controller, the system state evolution can be expressed as:

(10) x [ t + 1 ] = α x [ t ] + γ x [ t ] = ( α + γ ) x [ t ]

When a packet is dropped in the communication link, the state evolution becomes:

(11) x t + 1 = αx t .

The square value of the difference between two peak values of system state determine a level of amplitude variation of these two peaks: the greater this square value is, the greater the distance between these two peaks is. Therefore the sum of the square values of the difference between any two peak values can be used as a metric to measure the control system performance. Since the packet delivery sequence is periodic (i.e. the same situation will be repeated in each period of the packet delivery sequence), the measurement of performance will be calculated in a single period of the packet delivery sequence. Obviously, by increasing the dimension of this calculation (i.e. the squares of the difference between two peak values in two different period is also taken into account), a more precise measurement of system performance can be obtained. However, such an increase of dimension can also augment the calculation complexity. So in this work, the measurement of system performance is taken in a period of the packet delivery sequence. The control system performance is therefore characterized by the following equation.

(12) i = 1 2 m 1 j = i + 1 2 m x t i - x t j 2

where ti is a peak moment (called peak moment in the following) that the last packet drop in the consecutive packet drops occurs or the moment that a packet is received by the controller.

Example 1. Given a (3,9)-firm constraint, if the system states in a period of packet delivery sequence are x[1],x[2],…,x[9], and a period of packet delivery sequence can be described as 100100010, then the control system performance is represented by i = 1 5 j = i + 1 6 x t i - x t j 2 with t1   =   1, t 2   =   3, t 3   =   4 t 4   =   7 t5   =   8 t 6   =   9.

In our work, we suppose that the first packet in a period of the delivery sequence is received (the reason will be detailed in the following). So (12) can be transformed to:

(13) x t 1 1 i = 1 2 m 1 j = 1 2 m a i 2 b l = 1 i 1 2 P l - a j 2 b l = 1 i 1 2 P l 2

where a  = α  + γ, b  = α, Pj represents the number of the packets dropped between two consecutive packets received by the controller:

(14) i = 1 m P i = k m

The problem now becomes to determining the value of Pi so that the quantity of expression (13) is minimized. I.e. we will try to find the extreme value of the following expression (15) subject to the constraint (14).

(15) i = 1 2 m 1 j = i 2 m a i 2 b l = 1 i 1 2 P l - a j 2 b l = 1 j 1 2 P l 2

One way to accomplish this objective is to use the method of Lagrange multiplier. We will show an example to illustrate this.

Example 2. Given a system described by (10) and (11), the packet drop process is governed by (2, k)-firm constraint (k  >   2 and k  Z). To find an optimal distribution of packet drops, we set up firstly the metric describing the system performance. According to the formulas(14) and (15), we get:

(16) f ( p 1 , p 2 ) = 3 a 2 - 2 a 2 b p 1 + 3 a 2 b 2 p 1 - 2 a 3 b p 1 + 3 a 4 b 2 p 1 - 2 a 3 b p 1 + p 2 + 3 a 4 b 2 ( p 1 + p 2 ) - 2 a 3 b 2 p 1 - 2 a 3 b ( p 1 + p 2 ) - 2 a 4 b ( 2 p 1 + p 2 )

(17) g p 1 p 2 = p 1 + p 2 = k 2

Therefore, equation(16) is the formula that we try to minimize subject to (17).

According to the method of Lagrange multipliers, we introduce a variable λ (the Lagrange multiplier) and set up the equations f p 1 = λ g p 1 and f p 2 = λ g p 2 , we get respectively

2 a 2 b p 1 ln b + 6 a 2 b 2 p 1 ln b 2 a 3 b p 1 ln b + 6 a 4 b 2 p 1 ln b 2 a 3 b p 1 + p 2 ln b + 6 a 4 b 2 p 1 + p 2 ln b 4 a 3 b 2 p 1 ln b 4 a 3 b 2 p 1 + p 2 ln b 4 a 4 b 2 p 1 + p 2 = λ

and

2 a 3 b p 1 + p 2 ln b + 6 a 4 b 2 p 1 + p 2 ln b 2 a 3 b 2 p 1 + p 2 1 ln b 2 a 4 b 2 p 1 + p 2 ln b = λ

By solving these equations with the constraint (17), we get:

(18) p 1 = ln 1 + a + a e ln b k 2 + a 2 e ln b k 2 3 + 3 a 2 2 a ln b

(19) p 2 = ln 1 + a + a e ln b k 2 + a 2 e ln b k 2 3 + 3 a 2 2 a k ln b + 2 ln b ln b

Obviously, the number of the dropped packets must be a positive integer. From the method of Lagrange multiplier, it's difficult to obtain the integer solution, and sometimes there are some negative numbers in the results. When this happens, we will carry out an approximate calculation as following:

1.

replace all the negative numbers by 0, and divide the sum of these negative numbers by the number of the positive numbers in the results;

2.

add the result of the division to all the positive numbers;

3.

delete all the decimal parts of the positive numbers and add 1 to the number whose decimal part was the largest after step 2.

For example, given a  =   0.03, b  =   3 and k  = 9 from equations(18) and (19), we get p1  =   2.866 and p2  =   4.134. By the method of approximation, we get p1  =   3 and p2  =   4. Therefore, a period of the packet delivery sequence is described as 100010000. If k  =   3 and the other parameters remain same, we get p1  =   -0.8773 and p2  =   1.877. By the method of approximation, we get p1  =   0 and p2  =   1. A period of the packet delivery sequence is thus described as 110.

Before proceeding further, we make several comments about this section. If the number of the packets that must be received by the controller in a period is different from 2, then example 2 gives a procedure for finding the optimal distribution of packet drops. We force the first packet in a period of packet delivery sequence to be delivered, as by doing this, the general level of amplitude variation of system state in a period can be depressed (the reason being that the last peak value in a period is unchangeable). Also note that the effect of the noises is not considered in this section. But if the initial disturbance in a control system described by (1) and (2) is considerable, the packet delivery sequence obtained by our approach can rapidly eliminate the high amplitude bursts caused by this initial disturbance. We will illustrate this in the next section.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780080453644500496

Prolog Programming Language

Heimo H. Adelsberger , in Encyclopedia of Physical Science and Technology (Third Edition), 2003

IX.G.3 Rectangle with Maximum Area

A small problem from geometry: Find the dimensions of the rectangle of greatest area for a given circumference. The circumference is given as 40 m, only integer solutions are valid. The clp(FD) program is simple:

/* Rectangle with maximum area for given circumference */

rectangle(Length,Width,Area):-

  Length in 0.. 20,

  Width in 0.. 20,

  Length+Width #= 20,

  Area #= Length*Width.

maximum(Length,Width,Area):-

  rectangle(Length,Width,Area),

  labeling([maximize(Area)], [Length,Width,Area]).

?- maximum(Length,Width,Area).

  Area   =   100,

  Width   =   10,

  Length   =   10.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B012227410500853X

Integer programming

Sukanta Nayak , in Fundamentals of Optimization Techniques with Algorithms, 2020

8.1.3 Gomory's all integer cutting plane method

In this section, a procedure called Gomory's all integer algorithm will be discussed for generating "cuts" (additional linear constraints) so as to ensure an integer solution to the given LP problem in a finite number of steps. Gomory's algorithm has the following properties.

1.

Additional linear constraints never cut off that portion of the original feasible solution space that contains a feasible integer solution to the original problem.

2.

Each new additional constraint (or hyperplane) cuts off the current noninteger optimal solution to the LP problem.

8.1.3.1 Method for constructing additional constraint (cut)

Gomory's method begins by solving a LP problem ignoring the integer value requirement of the decision variables. If the solution so obtained is an integer, that is, all variables in the "x B "-column (also called basis) of the simplex table assume nonnegative integer values, the current solution is the optimal solution to the given ILP problem. However, if some of the basic variables do not have a nonnegative integer value, an additional linear constraint called the Gomory constraint (or cut) is generated. After having generated a linear constraint (or cutting plane), it is added to the bottom of the optimal simplex table. The new problem is then solved by using the dual simplex method. If the optimal solution, so obtained, is again a noninteger, then another cutting plane is generated. The procedure is repeated until all basic variables assume nonnegative integer values.

8.1.3.2 Procedure

In the optimal solution simplex table, select a row called source row for which the basic variable is noninteger. Then to develop a "cut," consider only fractional part of the coefficients in a source row. Such a cut is also referred to as a fractional cut.

Suppose the basic variable x r has the largest fractional value among all basic variables required to assume integer value. Then the rth constraint equation (row) from the simplex table can be rewritten as follows:

(8.4) x Br ( = b r ) = 1 . x r + ( a r 1 x 1 + a r 2 x 2 + ) = x r + j r a rj x j

where x j (j=1,2,3…) represents all the nonbasic variables in the rth constraint (row), except the variables x r , and b r ( = x Br ) is the noninteger value of the variable x r .

For example, consider the following optimal solution of a LP problem (Table 8.1).

Table 8.1. The optimal solution of a test linear programming problem.

c j 1 1 0 0
c B Basis x 1 x 2 s 1 s 2 b θ
1 x 1 1 0 1 3 2 3 1 3
1 x 2 0 1 0 1 2
Z j = c B a ij 1 1 1 3 2 3 7 3
C j = c j Z j 0 0 1 3 2 3

In Table 8.1, x 1 is the only basic variable whose value is a nonnegative fractional value, and therefore take the first row ( x 1 row) as a source row to generate the following Gomory cut.

(8.5) 1 3 = 1 × x 1 + 0 × x 2 + ( 0 + 1 3 ) × s 1 + ( 1 + 1 3 ) × s 2 .

Decompose the coefficients of variables x j and x r as well as x Br into integer and nonnegative fractional parts in Eq. (8.4) as follows:

(8.6) [ x Br ] + f r = ( 1 + 0 ) x r + j i { [ a rj ] + f rj } x j ,

where [ x Br ] and [ a rj ] denote the largest integer value obtained by truncating the fractional part from x Br and a rj , respectively.

Hence, Eq. (8.5) becomes

(8.7) ( 0 + 1 3 ) = ( 1 + 0 ) × x 1 + ( 0 + 1 3 ) × s 1 + ( 1 + 1 3 ) × s 2 .

Rearranging Eq. (8.6) so that all the integer coefficients appear on the left-hand side, we obtain

(8.8) f r + { [ x Br ] x r j r [ a rj ] x j } = j r f rj x j ,

where f r is strictly a positive fraction ( 0 < f r < 1 ) , while f rj is a nonnegative fraction ( 0 f rj 1 ) .

Eq. (8.7) can be written as follows:

(8.9) 1 3 + ( s 2 x 1 ) = 1 3 s 1 + 1 3 s 2 .

Since all the variables (including slacks) are required to assume integer values, the terms in the bracket on the left-hand side and on the right-hand side must be nonnegative numbers. Since the left-hand side in Eq. (8.8) is f r plus a nonnegative number, we may write in the form of the following inequalities.

(8.10) f r j r f rj x j

(8.11) j r f rj x j = f r + s g or f r = s g j r f rj x j ,

where s g is a nonnegative slack variable and is also called Gomory slack variable.

Eq. (8.11) represents Gomory's cutting plane constraint. When this new constraint is added to the bottom of the optimal solution simplex table, it would create an additional row in the table, along with a column for the new variable s g .

8.1.3.3 Steps of Gomory's all integer programming algorithm

An iterative procedure for the solution of an all integer programming problem by Gomory's cutting plane method can be summarized in the following steps.

Algorithm 8.1

Step 1: Initialization
Formulate the standard integer LP problem. If there are any noninteger coefficients in the constraint equations, convert them into integer coefficients. Solve the problem by the simplex method, ignoring the integer value requirement of the variables.
Step 2: Test the optimality
1.

Examine the optimal solution. If all basic variables (i.e., x Bi = b i 0 ) have integer values, then the integer optimal solution has been obtained and the procedure is terminated.

2.

If one or more basic variables with integer value requirement have noninteger solution values, then go to Step 3.

Step 3: Generate a cutting plane
Choose a row r corresponding to a variable x r that has the largest fractional value f r and follow the procedure to develop a "cut" (a Gomory constraint) as explained in Eq. (8.11). If there are more than one variable with the same largest fraction, then choose the one that has the smallest profit/unit coefficient in the objective function of the maximization LP problem or the largest cost/unit coefficient in the objective function of minimization LP problem.
Step 4: Obtain the new solutionAdd the additional constraint (cut) generated in Step 3 to the bottom of the optimal simplex table. Find a new optimal solution by using the dual simplex method, that is, choose a variable that is to be entered into the new solution having the smallest ratio: { ( c j z j ) y ij : y ij < 0 } and return to Step 2.

The process is repeated until all basic variables with integer value requirement assume nonnegative integer values.

Example 8.2

Find the integer solution for the following ILP problem using the cutting plane method.

(8.12) Maximize Z = 2 x + 20 y 10 z

subject to the constraints

2 x + 20 y + 4 z 15

5 x + 20 y + 4 z = 20

(8.13) and integers x , y , z 0 .

Solution: Adding a slack variable s 1 in the first constraint and artificial variable in the second constraint, the LP problem is stated in the standard problem as follows:

(8.14) Maximize Z = 2 x + 20 y 10 z + 0 s 1 M A 1

subject to the constraints

2 x + 20 y + 4 z + s 1 = 15

5 x + 20 y + 4 z + A 1 = 20

(8.15) and integers x , y , z , s 1 , A 1 0 .

The optimal solution of the LP problem, ignoring the integer value requirement using the simplex method, is presented in Table 8.2.

Table 8.2. The optimal solution of the linear programming problem Example 8.2.

c j 2 20 10 0
c B Basis x y z s 1 b θ
20 y 0 1 1 5 3 40 5 8
2 x 1 0 0 1 4 5 4
Z j = c B a ij 2 20 4 1 15
C j = c j Z j 0 0 14 1

The noninteger solution presented in Table 8.2 is x = 5 4 , y = 5 8 , and z = 0 , and the corresponding optimal solution is Max Z = 15 .

To obtain an optimal solution satisfying integer value requirement, we proceed to construct Gomory's constraint. In this solution, the value of both basic variables x and y are noninteger. Since the fractional part of the value of basic variable y = ( 0 + 5 8 ) is more than that of the basic variable x = ( 1 + 1 4 ) , the y row is selected for constructing Gomory cut as follows:

(8.16) 5 8 = 0 × x + y + 1 5 z + 3 40 s 1 .

The factoring of the y row gives

( 0 + 5 8 ) = ( 1 + 0 ) y + ( 0 + 1 5 ) z + ( 0 + 3 40 ) s 1

(8.17) 5 8 y = 1 5 z + 3 40 s 1 .

Furthermore, from Eq. (8.17), we obtain

(8.18) 5 8 1 5 z + 3 40 s 1 .

On adding a slack variable s G 1 , the Gomory's fractional cut becomes

(8.19) 5 8 + s G 1 = 1 5 z + 3 40 s 1 s G 1 1 5 z 3 40 s 1 = 5 8 .

Adding this additional constraint at the bottom of the optimal simplex Table 8.2, the new values so obtained are depicted in Table 8.3.

Table 8.3. First optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0
c B Basis x y z s 1 s G 1 b
20 y 0 1 1 5 3 40 0 5 8
2 x 1 0 0 1 4 0 5 4
0 s G 1 0 0 1 5 3 40 1 5 8
Z j = c B a ij 2 20 4 1 0 15
C j = c j Z j 0 0 14 1 0
Min = C j r 3 j ( &lt; 0 ) 70 40 3

Iteration 1:

Remove the variable s G 1 from the basis and enter variable s 1 into the basis by applying the dual simplex method. The new solution is presented in Table 8.4.

Table 8.4. First final optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0
c B Basis x y z s 1 s G 1 b
20 y 0 1 0 0 1 0
2 x 1 0 2 3 0 10 3 10 3
0 s 1 0 0 8 3 1 40 3 25 3
Z j = c B a ij 2 20 4 3 0 0 20 3
C j = c j Z j 0 0 34 3 0 40 3

The optimal solution presented in Table 8.4 is still noninteger. Therefore one more fractional cut needs to be generated. Since x is the only basic variable, whose value is a nonnegative fractional value, consider the x row (because of the largest fractional part) for constructing the cut:

(8.20) 10 3 = x + 2 3 z 10 3 s G 1 .

The factoring of the x source row gives

(8.21) ( 3 + 1 3 ) = ( 1 + 0 ) x + ( 0 + 2 3 ) z + ( 4 + 2 3 ) s G 1

(8.22) 1 3 + ( 3 x + 4 s G 1 ) = 2 3 z + 2 3 s G 1

or

(8.23) 1 3 2 3 z + 2 3 s G 1 .

On adding another Gomory slack variable s G 2 , the second Gomory's fractional cut becomes

(8.24) 1 3 + s G 2 = 2 3 z + 2 3 s G 1

or

(8.25) s G 2 2 3 z 2 3 s G 1 = 1 3 .

Adding this cut to the optimal simplex Table 8.4, the new table so obtained is presented in Table 8.5.

Table 8.5. Second optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0 0
c B Basis x y z s 1 s G 1 s G 2 b
20 y 0 1 0 0 1 0 0
2 x 1 0 2 3 0 10 3 0 10 3
0 s 1 0 0 8 3 1 40 3 0 25 3
0 s G 2 0 0 2 3 0 2 3 1 1 3
Z j = c B a ij 2 20 4 3 0 0 0 20 3
C j = c j Z j 0 0 34 3 0 40 3 0
Min = C j r 4 j ( &lt; 0 ) 17 20

Iteration 2:

Enter nonbasic variable z into the basis to replace the basic variable s G 2 by applying the dual simplex method. The new solution is presented in Table 8.6.

Table 8.6. Second final optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0 0
c B Basis x y z s 1 s G 1 s G 2 b
20 y 0 1 0 0 1 0 0
2 x 1 0 0 0 4 0 3
0 s 1 0 0 0 1 16 4 7
−10 z 0 0 1 0 1 3 2 1 2
Z j = c B a ij 2 20 10 0 38 15 1
C j = c j Z j 0 0 0 0 2 17

The optimal solution presented in Table 8.6 is still noninteger because variable z does not assume an integer value. Thus a third fractional cut needs to be constructed with the help of the z row:

(8.26) 1 2 = z + s G 1 3 2 s G 2

(8.27) ( 0 + 1 2 ) = ( 1 + 0 ) z + ( 1 + 0 ) s G 1 + ( 2 + 1 2 ) s G 2

or

(8.28) 1 2 + ( 2 s G 2 z s G 1 ) = 1 2 s G 2

or

(8.29) 1 2 1 2 s G 2

The required Gomory's fractional cut obtained by adding slack variable s G 2 is represented as follows:

(8.30) 1 2 + s G 3 = 1 2 s G 2 s G 3 1 2 s G 2 = 1 2

Adding this cut to the bottom of the optimal simplex Table 8.6, the new table so obtained is presented in Table 8.7.

Table 8.7. Third optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0 0 0
c B Basis x y z s 1 s G 1 s G 2 s G 3 b
20 y 0 1 0 0 1 0 0 0
2 x 1 0 0 0 4 0 0 3
0 s 1 0 0 0 1 16 4 0 7
−10 z 0 0 1 0 1 3 2 0 1 2
0 s G 3 0 0 0 0 0 1 2 1 1 2
Z j = c B a ij 2 20 10 0 38 15 0 1
C j = c j Z j 0 0 0 0 2 17 0
Min = C j r 5 j ( &lt; 0 ) 34

Iteration 3:

Remove the variable s G 3 from the basis and enter variable s G 2 into the basis by applying the dual simplex method. The new solution is presented in Table 8.8.

Table 8.8. Third final optimal but infeasible solution using Gomory's fractional cut of Example 8.2.

c j 2 20 10 0 0 0 0
c B Basis x y z s 1 s G 1 s G 2 s G 3 b
20 y 0 1 0 0 1 0 0 0
2 x 1 0 0 0 4 0 2 2
0 s 1 0 0 0 1 16 0 8 3
−10 z 0 0 1 0 1 0 3 2
0 s G 2 0 0 0 0 0 1 2 1
Z j = c B a ij 2 20 10 0 38 0 0 −16
C j = c j Z j 0 0 0 0 2 0 34

In Table 8.8, since the value of all basic variables is an integer value and all c j Z j 0 , the current solution is an integer optimal solution, that is, x = 2 , y = 0 , and z = 2 , and the corresponding optimal solution Max Z = 16 .

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128211267000085

Modeling and Optimization Approaches in Design and Management of Biomass-Based Production Chains

Şebnem Yılmaz Balaman , in Decision-Making for Biomass-Based Production Chains, 2019

7.1.3.3 Cutting Plane Method and Benders' Decomposition

The cutting plane method is commonly used for solving ILP and MILP problems to find integer solutions, by solving the linear relaxation of the given integer programming model, which is a noninteger LP model. A cutting plane algorithm is generally used to search for valid inequalities that cut-off the noninteger solutions in two cases, when the set of constraints in our integer programming model is too large, and when the inequality constraints in the original integer programming model are not sufficient to yield an integer solution. The basic idea of the cutting plane method is iteratively refining the search region by introducing linear inequalities, known as cuts, maintaining the original feasible region. If the mathematical model is linear, an extreme or corner point in the feasible region can be the optimal solution, which may or may not be integer solution. If it is not integer, a linear inequality, in other words a cut, can be found to cut away a part of the feasible region, so as to separate the optimum solution. Therefore, a new separation problem is introduced and a cut is added to the relaxed LP model, which makes the existing noninteger solution no longer in the feasible region. This cutting process is repeated until the optimal solution found is also an integer solution. The steps of the cutting plane algorithm can be explained as follows:

1.

The relaxed integer programming problem (the problem with continuous variables instead of discrete/integer variables) is solved.

2.

Stop, if all variables in resulting solution have integer values, which means that it is the optimum.

3.

Otherwise, generate a cut, that is, a constraint in the form of a linear inequality, which is satisfied by all feasible integer solutions.

4.

Add this new constraint to the model, resolve the problem, and go back to step 2.

Benders' decomposition is a solution technique for solving large-scale mathematical programming problems. This technique is especially suitable for problems with a special block structure that generally exists in scenario-based stochastic programming applications. Benders' decomposition is based on a "divide-and-conquer" idea that the decision-making process is divided into several stages, by separating the variables in the original problem into a first-stage master problem with the first set of variables, and a second-stage subproblem with the second set of variables. The master problem is solved, and the solutions are used to determine the values for the second set of variables in the subproblem. If the first-stage decisions are found to be infeasible by the subproblem, one or more cuts, known as "Benders' cuts", are introduced into the master problem depending on the main idea of the cutting plane algorithm. The modified problem is then resolved and this procedure is repeated until no cuts can be created. The Benders' decomposition generates and adds new constraints into the master problem, while it proceeds towards the optimal solution, hence it uses row generation differently from Dantzig–Wolfe decomposition, which is based on column generation. By this way, a series of small-scale problems are solved, instead of a single large-scale problem, to overcome the computational complexity associated with solving larger problems.

Although only linear constraints are included in the master problem while Benders' decomposition procedure proceeds, the master problem does not have to be an LP problem. Instead, it can be a nonlinear, an integer, or a constraint programming problem. Hence, Benders' decomposition can be employed to solve a broader class of optimization problems. In some cases, more than one group of second-stage decisions can be made independently, so that multiple subproblems can be generated and solved individually to enable parallel implementation. This characteristic of Benders' decomposition is quite useful for decomposing and solving complex two-stage stochastic programming models, where some actions are taken in the first stage that are followed by random events represented by a set of scenarios. The first-stage decisions are impacted by the occurrence of random events, hence a recourse decision is made in the second stage to cope with the randomness caused by uncertainty. In these problems, the recourse problems in the second stage can be solved independently based on known first-stage decisions

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128142783000078

Linear Optimization

C. Roos , in Encyclopedia of Physical Science and Technology (Third Edition), 2003

IV.A.2 Cutting-Plane Methods

If the solution x ¯ of the problem (46) is not integral, we call an inequality a T x    β a cutting plane of (46) if a T x ¯ > β whereas all integer vectors in P satisfy a T x  β. A cutting-plane method adds one or more cutting planes to the problem and then solves the resulting LO-problem. The process is repeated until an integer solution is found or a problem arises that is infeasible.

When applying the Simplex method, there is a nice systematic way to generate cutting planes from optimal tableaus, originally proposed by Gomory. These cutting planes are added to the tableau, and then the tableau is re-optimized. If necessary, the new optimal tableau is used to generate new Gomory-cuts, etc. The process converges to an integer solution, if it exists. Unfortunately, for interior-point methods the situation is not as good. No satisfactory systematic methods exist at present that produce an exact integral solution, although some promising work has been done by Mitchell and Borchers for some specific problems. Part of the problem is due to the fact that at present interior-point methods do not allow fast re-optimizing.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B0122274105003793