# Raw Material Purchasing Optimization Using Column Generation
## 1 Introduction  
Raw material purchasing is crucial for steel enterprises because it is related to the supply of raw materials and cost savings [1]. The raw material purchasing of large-scale steel enterprises is characterized by many varieties, large quantities, and high costs. The raw materials purchased by steel enterprises include three types: iron, coal, and auxiliary materials. Iron includes iron ore, pellets, sinter, pig iron, scrap steel, and so on. Coal includes all pulverized coal, lump coal, and coke. Auxiliary materials, also known as solvents, include limestone, quicklime, serpentine, etc. In a large-scale iron and steel enterprise, the purchase volume of raw materials reaches tens of millions of tons and the purchase expenditure reaches tens of billions of yuan. Therefore, it is very important to make the optimal raw material purchasing decisions. Raw material procurement optimization aims to determine the purchasing quantities of raw materials in some given periods or cycles, make the purchasing total cost minimal, and meet the production demand. The purchasing cost includes material price, procurement set-up cost (including negotiation and communication, transportation, etc. ), and inventory cost (including capital occupation, management, maintenance, etc.). Raw material purchasing is often complex because it involves many factors, such as supplier selection, raw material price fluctuations, inventory control, product demand, etc., and its solution also involves many areas [2; 3; 4], and it has been a hot area of study in management and operations research [5; 6; 7]. Determining the purchase amount of raw materials is closely related to the number of varieties of raw materials, which affects the complexity of the problem. According to the number of varieties purchased, raw material purchasing problems can be naturally divided into two categories: single-item procurement and multi-item procurement. Single-variety purchasing decisions determine the purchase of a single raw material for manyperiods. The famous economic order quantity (EOQ) model is a single-item purchasing example. The EOQ assumes the demand is steady and constant, the price of raw materials is unchanged, and the supply of raw materials is enough. The EOQ model has an analytic solution. However, when the assumption of steady-state demand is dropped, the single-item procurement problem becomes difficult to solve. The W-W [8] problem is a dynamic version of the EOQ. It allows demand to vary from period to period and can be solved with dynamic programming; however, as the number of periods increases (e.g., 300), the solution is time-consuming. The W-W problem still assumes the satisfaction of requirements is unlimited. When there is a limitation on the availability of raw materials, the problem becomes NP-hard [9] and is called the single-item capacitated lot-size problem (SCLP). Most early research interest is focused on this kind of problem [10]. For the multi-item purchasing problem, since complex material structure and process relationships often need to be considered, mathematical programming models are the most common choice [1; 11; 12]. Mathematical programming models have the advantage of being able to handle complex constraints. There are also some other methods to study the multi-item procurement problem, such as fuzzy mathematics-based methods and data-driven methods [13; 14]. Fuzzy mathematics based on fuzzy logic has been widely used in many fields, like industrial process control, production planning and scheduling, image processing, etc. [15]. Data-driven methods are a hot research topic nowadays and are used in almost all fields [7]. The main contributions of this paper are: We present a mixed integer programming for this large-scale raw material procurement problem. We present a column generation solution for the RMP problem. The rest of this paper is organized as follows. Section 2 gives a literature review. Section 3 states the model and the solving method--the column generation. Section 4 gives the experimental results.