Optimization involves finding the best values for variables to minimize or maximize an objective function subject to constraints. An optimization problem consists of an objective function, variables, and constraints. The objective function expresses the performance of a system and must be minimized or maximized. Variables define the objective function and constraints. Constraints allow variables to take on certain values but exclude others to ensure feasibility. Common optimization techniques include mathematical programming, calculus methods, network methods, and meta-heuristic algorithms such as genetic algorithms, simulated annealing, and whale optimization.