Introduction to Mathematical Programming

Author

Your Name

Published

January 30, 2025

Introduction

This lecture introduces the concept of mathematical programming, emphasizing the formalization and modeling of real-world problems. The primary objective of an operations researcher is to develop clean, theoretical models from complex, real-world problems, often referred to as "dirty" problems due to their inherent complexities. These problems frequently involve uncertainties and approximations, contrasting with the precise nature of theoretical models. A significant challenge in modeling real-world problems is that data is often imprecise, representing averages or estimates rather than exact values. For instance, the time a resource takes to complete a task may vary, and the exact time is not well-defined. Similarly, in scheduling problems, release dates of jobs are often approximations. This lecture underscores the importance of recognizing the limitations and applicability of these models, particularly when dealing with imprecise data.

  • Imprecise Data: Real-world data often represents averages or estimates.

  • Uncertainty: Exact values are often unknown and subject to variations.

  • Approximations: Theoretical models use precise numbers, which are approximations of real values.

The most rigorous mathematical models are often applied to problems with minimal uncertainty, such as those in robotics and production. For problems with higher uncertainty, heuristic or mixed approaches are often used. These heuristic techniques, while essential for handling uncertainty, are not covered in this course but may be addressed in advanced optimization courses.

Heuristic techniques, commonly used to handle uncertainty, are not covered in this course but may be addressed in advanced optimization courses.

Challenges in Modeling Real-World Problems

Real-world problems are rarely clear-cut or binary. Data is often imprecise, representing averages or estimates rather than exact values. For instance, consider the time a resource takes to complete a task. This duration may vary between a certain minimum and maximum, and the exact time is usually not well-defined. It could be an average or an estimated time, subject to real-world variations. Similarly, in scheduling problems, the release dates of jobs (i.e., the time a job becomes available) are often approximations. For example, a machine might expect its input from another machine, and the output of one resource becomes the input of the next. The predicted time for this handover is typically an estimate.

  • Imprecise Data: Real-world data often represents averages or estimates.

  • Uncertainty: Exact values are often unknown and subject to variations.

  • Approximations: Theoretical models use precise numbers, which are approximations of real values.

These factors can significantly impact the accuracy of solutions derived from theoretical models. If the optimal solution is sought for a set of numerical values that are mere approximations of the actual, unknown real values, the practical value of such a precise solution might be questionable. Therefore, the most rigorous mathematical models are often applied to problems with minimal uncertainty, such as those in robotics and production, where the environment and parameters are well-defined and controlled. For problems with higher uncertainty, heuristic or mixed approaches are often used. These approaches might combine optimization techniques with simpler, more intuitive strategies.

Heuristic techniques, commonly used to handle uncertainty, are not covered in this course but may be addressed in advanced optimization courses.

Mathematical Programming

Mathematical programming, also known as mathematical optimization, involves modeling problems where solutions are represented as vectors in \(\mathbb{R}^N\). In other words, we are dealing with problems of a numerical nature where each solution is a vector of \(N\) real numbers. The set of all possible solutions is denoted by \(X\), and thus \(X \subseteq \mathbb{R}^N\). The objective function, \(F: X \to \mathbb{R}\), assigns a real value to each solution in \(X\), and the goal is to either maximize or minimize this function over the set \(X\).

Definition 1 (Mathematical Programming Problem). A mathematical programming problem can be formulated as: \[\max_{x \in X} F(x) \quad \text{or} \quad \min_{x \in X} F(x)\] where \(X \subseteq \mathbb{R}^N\) is the set of feasible solutions, and \(F: X \to \mathbb{R}\) is the objective function. This can also be written as: \[\max F(x) \quad \text{subject to } x \in X\] or \[\min F(x) \quad \text{subject to } x \in X\]

Both maximization and minimization problems are considered in mathematical programming. Interestingly, they can be converted into each other by simply changing the sign of the objective function.

Example: Maximization vs. Minimization

If we have a minimization problem \(\min_{x \in X} G(x)\), it can be transformed into a maximization problem by defining \(F(x) = -G(x)\). Thus, \(\max_{x \in X} F(x)\) is equivalent to \(\min_{x \in X} G(x)\), with the optimal values differing only in sign.

Consider a function \(G(x)\) whose minimum value is to be found. By plotting \(-G(x)\) (i.e., reflecting the graph of \(G(x)\) vertically) and finding its maximum, we effectively find the minimum of \(G(x)\).

In practice, we do not always convert minimization problems to maximization problems or vice-versa. We often maintain both forms and choose the most convenient one depending on the specific problem.

Properties of the Solution Set \(X\)

In many interesting mathematical programming problems, the set \(X\) of feasible solutions can be finite but very large. Even though the number of solutions is finite, it can be so large that enumerating all of them is computationally impractical.

  • Finite but Large: The solution set \(X\) can be finite but extremely large.

  • Example: Traveling Salesman Problem (TSP): In the TSP, the goal is to find the shortest possible route that visits a set of cities and returns to the origin city. The solutions are permutations of \(N\) elements (cities), and the number of possible solutions is \(N!\), which grows very rapidly with \(N\).

Empty Solution Set

If the set \(X\) is empty due to constraints, the problem instance is considered infeasible. This means there are no solutions that satisfy all the constraints of the problem.

  • Infeasible Instance: An instance with an empty solution set (\(X = \emptyset\)).

  • Convention:

    • \(\max_{x \in \emptyset} F(x) = -\infty\)

    • \(\min_{x \in \emptyset} F(x) = +\infty\)

Optimal Solutions

Definition 2 (Optimal Solution). A solution \(x^* \in X\) is optimal if \(F(x^*) \geq F(x)\) for all \(x \in X\) (for maximization) or \(F(x^*) \leq F(x)\) for all \(x \in X\) (for minimization).

Description: This definition formally defines what constitutes an optimal solution in a mathematical programming problem, distinguishing between maximization and minimization scenarios.

  • Optimal Solution: \(x^*\)

  • Optimal Value: \(F(x^*)\) - This is the value of the objective function at the optimal solution.

Non-Existence of Optimal Solutions

An optimal solution may not exist if the instance is infeasible (as discussed in Section 4.1) or if the objective function can be improved indefinitely.

  • Infeasible Instance: No solution exists (see Section 4.1).

  • Unbounded Instance: For any value \(V\), there exists a solution \(x\) such that \(F(x) > V\) (for maximization) or \(F(x) < V\) (for minimization). In such cases, the objective function can be made arbitrarily large (for maximization) or arbitrarily small (for minimization) without ever reaching a maximum or minimum.

    • Convention:

      • \(\max_{x \in X} F(x) = +\infty\) (for unbounded maximization)

      • \(\min_{x \in X} F(x) = -\infty\) (for unbounded minimization)

Converting Non-Numeric Variables to Numeric

In mathematical programming, it is essential to represent all variables numerically, as the solutions are defined as vectors in \(\mathbb{R}^N\). However, real-world problems often involve variables that are not inherently numeric. For instance, a decision variable might represent a choice among categorical options (e.g., "sea," "mountain," or "hill" for a vacation destination) or a logical state (e.g., "true" or "false" for Boolean variables). To incorporate these variables into mathematical programming models, we need to convert them into a numeric form.

  • Example: Vacation Destination Suppose we have a variable representing the choice of a vacation destination, with options "sea," "mountain," and "hill." We can assign a unique numerical value to each option:

    • Sea: 1

    • Mountain: 2

    • Hill: 3

  • Example: Boolean Variables Boolean variables, which can take on the values "true" or "false," can be represented using binary values:

    • True: 1

    • False: 0

This conversion process allows us to represent solutions as points in a geometric space. For instance, if we have \(N\) binary decisions (each represented by a 0 or 1), we can visualize the solution space as the vertices of an \(N\)-dimensional hypercube. Each vertex corresponds to a unique combination of 0s and 1s, representing a specific set of decisions.

Consider a scenario with three binary decisions. We can represent the solution space as a 3-dimensional cube. Each vertex of the cube represents a unique combination of the three decisions:

Each vertex represents a point in \(\mathbb{R}^3\), where each coordinate corresponds to one of the binary decisions.

Conclusion

This lecture provided an introduction to mathematical programming, emphasizing the challenges of modeling real-world problems, particularly those involving imprecise data. Key concepts covered include the formulation of mathematical programming problems (as defined in Definition 1), the properties of the solution set \(X\) (Section 4), and the conditions under which optimal solutions exist or do not exist (Sections 4.1, 4.2, and 4.3). The importance of converting non-numeric variables to numeric form (Section 5) was also highlighted to facilitate the application of mathematical programming techniques.

Key Takeaways

  • Real-world problems often involve approximations and uncertainties, making them "dirty" compared to the "clean" theoretical models.

  • Mathematical programming deals with problems where solutions are vectors in \(\mathbb{R}^N\), representing numerical decisions.

  • The solution set \(X\), although sometimes finite, can be extremely large, making exhaustive enumeration impractical.

  • Optimal solutions may not exist if the instance is infeasible (empty solution set) or unbounded (objective function can be improved indefinitely).

  • Non-numeric variables must be converted to numeric form for mathematical programming, enabling a geometric interpretation of the solution space.

Follow-up Questions

  • How can we determine if a real-world problem is suitable for rigorous mathematical optimization, given the presence of uncertainty and approximations?

  • What are some examples of heuristic techniques used in optimization, and how do they differ from the methods discussed in this lecture?

  • How does the size of the solution set \(X\) impact the choice of optimization method, and what are the trade-offs involved?

Next Lecture Preview: The next lecture will delve deeper into the process of converting non-numeric variables to numeric representations and explore more examples of mathematical programming problems, including those involving constraints and different types of objective functions. We will also introduce different classes of mathematical programming problems, such as linear programming and integer programming.