Before going on to solve problems with annealing machines, users will first consider what it takes to apply the discipline of mathematical optimization to real-world problems. Those who have already used mathematical optimization to solve real-world problems may skip this chapter.

First, in order to use an annealing machine, it is necessary to define the problem and formulate it into an Ising model. The optimization process, not limited to an annealing machine, involves replacing the phenomenon that represents the problem to be solved with a mathematical expression. For more details on the optimization process in an annealing machine, please check Organizing Problems and Defining Requirements, Formulation, Chapter 2, Section 2.

Now, before we formulate the mathematical optimization problem we are trying to solve, we will explain the knowledge needed to determine if it is the type of combinatorial optimization problem that can be successfully solved using an annealing machine.

In your mathematics classes at school, you have solved a variety of problems and learned that a linear equation is represented by the line y = ax + b. You have also applied your knowledge of linear equations to solve problems that maximize or minimize a region. Applying the knowledge of linear equations to solve optimization problems is the concept of linear programming in mathematical optimization (explained in Chapter 3, Section 1). In a combinatorial optimization problem solved by an annealing machine, a number of discrete parameter combinations (ranging from tens, hundreds, to millions, depending on the task) are compared and the best possible combination is chosen. Keep in mind that discrete parameters mean that the values are scattered rather than connected in a straight line, so if you have many combinations of parameters to optimize, finding the right combination can be a challenge. To get a feel for the difficulty of such problems, it is not practical to solve them by hand, so you can get a feel for the difficulty by solving them using programming or algorithms.

The history of optimization began with linear programming problems. Later, algorithms for solving optimization problems were created and then solved by computers. Algorithms for solving even larger combinatorial problems were also studied.

When we aim to solve a problem, we apply an algorithm, run on a computer, to reach our solution. When we have an optimization problem that we want to solve, we need to learn how to solve various problems and then we need to actually solve them in order to know whether we can solve it successfully using an annealing machine or whether we need a different method. In order to efficiently learn the process that will help you understand annealing machines, it is necessary to acquire a wide range of knowledge, especially mathematics. That is why we have compiled "Math for Annealing Machine" to help users learn about annealing machines with as little resistance as possible. We will continue to add to and revise this document to provide more complete explanations.