1. INTRODUCTION
Inventory routing and pricing are two major problems of the field of supply chain management. The inventory routing problem (IRP) is an extension of the classic Vehicle Routing Problem (VRP) in which inventory control and routing policies are adopted simultaneously (Cordeau et al., 2006). IRP is mostly used in the Vendor Managed Inventory (VMI) systems, where the vendor is able to control the schedule and size of product delivery to retailers. In return for this authority, the vendor must guarantee that retailers will never face shortages. This is different from the traditional approach where customers place ordinary orders at the vendor and the poor scheduling of these orders may severely undermine efficiency, leading to sharp spikes in inventory control and distribution expenses. However, in practice, the costsaving expected from using VMI systems is not easy to achieve especially in chains with a large number and variety of customers. This goal can be pursued more easily by the use of IRP models and formulations (Tirkolaee et al., 2020).
Pricing decisions affect demand and consequently both inventory and routing decisions. In a supply chain with a profit maximization objective, for example, increase the price will reduce the demand and consequently the size of orders and the inventory levels. On the contrary, lowering prices will increase the demand, thereby increasing the size of orders as well as inventory levels. At the same time, pricing decisions themselves depend on inventory routing decisions. Therefore, making these decisions independent from each other may hurt the profitability of the supply chain (Mazaheri, 2021;Taknezhad and Vahedi, 2021). Thus, it is greatly important to determine how to adopt inventory control, routing, and pricing policies simultaneously for optimal supply chain management (Liu and Chen, 2011).
The literature contains a few studies on the integration of routing, inventory, and pricing decisions. In one of these studies, Liu and Chen (2011) proposed a model for a twolevel supply chain consisting of one supplier and several retailers. This model was based on the assumption that all retailers are located in the same geographic area, the fleet consists of multiple vehicles of the same capacity, the chain is for a single ordinary product, each retailer is served by only one vehicle, the total demand on each route must be less than or equal to the capacity of the vehicle, each route must start from and end at the supplier, loading and unloading costs are ignored, ordering and inventory holding costs for the supplier are ignored, and demand is a linear function within a certain range of minimum and maximum demand for each retailer. These researchers developed a solution method for this inventory routing pricing problem, which involved decomposing the problem into inventory, routing, and pricing subproblems and solving them with the Tabu search metalheuristic.
Hassanvand and Sohrabi (2013) developed a model for a twolevel supply chain of a single ordinary product with multiple suppliers and multiple retailers, where all retailers are located in the same area, the demand of each retailer is a linear function that can be met by any of the suppliers, and retailers incur transport and inventory holding costs (combined) and purchase costs. The solution proposed by these researchers for this inventory routing pricing problem was a genetic algorithm.
Yu and Huang (2010) proposed a model for a twolevel VMItype supply chain consisting of a single manufacturer and multiple retailers with known deterministic demand, where shortages are not allowed and products are distributed among retailers by a single vehicle of limited capacity under the direct transport policy. These researchers used the software GAMS24.1.3 to solve their model.
2. PROBLEM ASSUMPTIONS
The problem of this paper is modeled based on the following assumptions:

1) The twolevel supply chain consists of one manufacturer and multiple retailers operating with the VMI policy. In addition to pricing, inventory management, and distribution planning decisions, production planning decisions are also integrated into the model. Therefore, the total chain cost comprises the cost of constructing/establishing facilities, production costs, distribution costs, and inventory holding costs. Also, the price is not allowed to be zero.

2) The problem is of multiproduct type with known deterministic demand, with the objective of maximizing the profit of supply chain members.

3) The manufacturer has a known deterministic production capacity per period, the manufacturer and retailers have a limited inventory capacity, and shortages are not allowed.

4) Products are distributed among retailers by a limited homogenous fleet of limitedcapacity vehicles under the multiple delivery policy (i.e. a vehicle can visit more than one retailer in each route).

5) Split delivery is not allowed (i.e. the entire demand of each retailer in each period must be delivered all at once by one vehicle).
3. MODELING
This section first describes the notations used in the formulations and then presents the proposed mathematical model for the problem.
Sets:

P: Set of product p = 1… k

i, j: Index of nodes (node zero indicates manufacturer and nodes 1 to N indicate retailer)

t: Index of planning periods t = 1,2,…, T

v: Set of identical vehicles v = 1,2,…, m
Parameters:

K: Number of products

T: Number of planning periods

f_{t}: Fixed cost of starting production in period t

a_{pj}: Fixed value of product p in the demand function of retailer j

α_{p}: Inventory space use coefficient of product p

d_{pjt}: Demand of retailer j for product p in period t

Q_{v}: Vehicle capacity

N: Number of retailers

m: Number of vehicles

${P}_{\mathrm{max}}^{t}$ : Production capacity in period t

b_{pjt}: Slope of the demand function of retailer j for product p in period t

β_{p}: Production capacity use coefficient of product p

${I}_{max}^{J}$ : Inventory capacity of manufacturer or retailer j

h_{pjt}: Inventory holding cost of retailer j for holding one unit of product type p in period t

c_{ijvt}: Cost of transport from node i to retailer j with vehicle v in period t
Decision variables:

P_{pt}: Production of product p during period t

Y_{t}: A binary variable indicating whether product p is produced in period t.

I_{pjt}: The amount of product p held at the inventory of manufacturer or retailer j at the beginning of period t

W_{pjvt}: The amount of product p sent from the manufacturer to retailer j by vehicle v during period t

X_{vjt}: The total number of times vehicle v visits other retailers before visiting retailer j during period t

Z_{ijvt}: A binary variable indicating whether product p is delivered from node i to j by vehicle v during period t
Taking inspiration from Liu and Chen (2011), Shaabani and Kamalabadi (2016), and Nachiappan and Jawahar (2008), Campbell and Savelsbergh (2004) has proposed a model for multiperiod multiproduct integrated inventory routing pricing with multiple delivery policy in the form of a mixedinteger program as formulated below.
The objective function is expressed as Equation (1), which comprises revenue, fixed facility construction/ establishment costs, cost of transport to retailers, and cost of inventory holding by the manufacturer and retailers. Equations (2) and (3) compute the maximum size of shipments based on the demand of retailers and the production rate of the manufacturer. Equations (4) and (5) limit the inventory capacity of the manufacturer and retailers. Equation (6) states that the total amount of product p sent from the manufacturer to node j during period t cannot exceed the amount of product p held at the inventory of the manufacturer at the beginning of period t. Equation (7) limits the production capacity. The maximum amount of product that can be delivered to each node in each period is expressed by Equation (8). Equation (9) expresses the capacity limit of transport vehicles. Equation (10) is the route continuity constraint. Equation (11) prevents the creation of subtours without the manufacturer. Equation (12) states that each vehicle can visit each retailer only once in each period. In other words, this constraint guarantees nonsplit delivery. The set of constraints expressed by Equation (13) make sure that the amount of product at inventories remains nonnegative. In other words, this constraint ensures that there will be no shortages during the planning period. The technical constraints on the decision variables are defined by Equations (13), (14), and (15). In the above model:
This model has $[(k+2)+m(N+3)](N+1)T$ constraints, $[(k+2)+m(N+3)](N+1)T$ binary variables, and $(k+m)(N+1)T$ continuous variables. In other words, since $k,m,T<<N$ , it can be concluded that problem constraints and binary variables are of the order O(N^{2}) and continuous variables are of the order O(N).
4. SOLUTION ALGORITHM
The inventory routing pricing problem with the assumptions considered in this study is a problem with strict complexity (NPHard) (Boudia and Prins, 2009;Seifbarghy and Gilkalayeh, 2017). Therefore, the model needs to be solved with metaheuristic algorithms. In this study, a genetic algorithm is used to solve the model.
4.1 Procedure of Solution with Genetic Algorithm
Solution Representation: One of the most important decisions to be made when designing a metaheuristic algorithm is what representation to use for the solutions and how to establish an effective, unique and identifiable relationship between these solutions and the search space of the problem. Expanding on the method used in (Zhao and Zhang, 2021;Muzaffar et al., 2020), this study uses a delivery timebased representation of the solution. In this representation method, binary values are used to display the delivery time of products to retailers as well as the production time (values of the variables Y_{t} and Z_{ijvt}), with “1” indicating that the product is produced (Y_{t} = 1) or delivered to a retailer in that period (Z_{ijvt} = 1) and “0” indicating that the product is not produced (Y_{t} = 0) or not delivered in that period (Z_{ijvt} = 0). An example of the particle position vector in this format of solution representation for solving the inventory routing pricing problem with multidelivery for six planning periods and three retailers is provided in Table 1.
4.1.2 Generation of the Initial Population
To start solving the problem with the genetic algorithm, it is necessary to create an initial population of solutions. There are several methods for the generation of this initial population. In this study, the initial population is generated at random. In other words, the desired number of particles are produced with random speed and at random positions in the problem space.
Fitness calculation: To solve a problem with the genetic algorithm, one needs to define an objective function for that problem so that the algorithm can measure and compare the fitness (desirability) of different solutions (chromosomes). Depending on the model constraint, some solutions generated by the algorithm may not be acceptable (feasible). These solutions can be filtered out by defining a penalty policy, such as applying a fixed penalty on the objective function each time a constraint is violated. This penalty will be zero if a solution is completely feasible and will be nonzero if any of the constraints is violated. Supposing that constraints are of the general form g(x)≥b , the penalty term for a solution is defined as follows:
where M is a constant, g(x) is the constraint, and P(x) is the penalty for solution x. If the solution is feasible, then the penalty will be zero, and if not, the penalty value will be added to the objective function.
Crossover: This operator selects two solutions as parents and combines them to generate a new solution as their offspring. In this study, we use the twopoint crossover, which involves cutting each parent solution at two random points and swapping the middle segments of the two parents.
Mutation: The second operator of the genetic algorithm is the mutation, which prevents the algorithm from getting trapped in local optimums. In this study, we use three mutation operators: swap, flip, and insertion.
Stopping condition: This condition determines when the algorithm must stop. In this study, the stopping condition is the algorithm going through a certain number of iterations. As long as the stopping condition is not met, the algorithm must loop via the next step.
Selection: This step involves selecting a number of chromosomes to create a new neighborhood and population. In this study, the roulette wheel selection operator is used for this purpose.
5. COMPUTATIONAL RESULTS
To investigate the performance of the proposed model, it was applied to a number of randomly generated problem instances. For this purpose, the model was coded in GAMS24.1.3 and MATLAB 2016a. All the results were obtained on a personal computer with the following specifications: Intel (R)3.10 GH, Windows 7, 4GB RAM.
5.1 Generation of Problem Instances
Problem instances were randomly generated in three sizes: small, medium and large. The size category, the number of planning periods, the number of retailers, the number of vehicles, and the number of products for each problem instance are provided in Table 2.
Problem instances were assumed to have the same structure as in (Das and De, 2021). Considering the manufacturer as the origin of the coordinate system, retailers were uniformly distributed over a square with sides of 100 units. Assuming that the Euclidean distance between nodes i and j is c_{ij}, we define the cost of shipping the product by vehicle V from node i to node j in the planning period t as c_{ijvt} = c_{ij}.c_{vt}.
Table 3 shows how the parameters of the generated problem instances are computed. In this table, dp is the average demand of all retailers for product p in a period, d_{pt} is the average demand of all retailers for product p in period t, and d_{pj} is the average demand of retailer j for product p.
5.2 Algorithm Parameters and Assumptions
The preferable parameter setting for the algorithm was determined through trial and error. Ultimately, the following values were identified as preferable choices for the problems of different size categories:
Number of iterations: 50, 50, and 100 for small, medium, and large problems respectively
Population size: 75, 75, and 150 for small, medium, and large problems respectively
Number of elite solutions: 200, 100, and 100 for small, medium, and large problems respectively
Crossover rate: 0.75 for all problems
Mutation rate: 0.2 base value plus 0.3 for swap, 0.45 for flip, and 0.25 for insertion.
5.3 Numerical Results
The genetic algorithm was executed 10 times for each problem. The average objective function value and the average run time in these 10 runs are provided in Table 4.
As shown in Table 3, all instances of the problem, even largescale ones, can be solved in a reasonably short time.
5.4 Sensitivity Analysis
The number of times and the time products are delivered to retailers and the production plan of the manufacturer depend on two factors: the ratio of the sum of construction and transport costs to the inventory holding cost, and the ratio of production capacity, inventory capacity, or vehicle capacity to demand. As these two ratios decrease, production and shipping of products take place at shorter intervals. Therefore, for a better evaluation of the model, its sensitivity to the values of I_{max}, f_{t}, P_{max}, and Q was also analyzed. For this evaluation, with N=40, k=3, T= 5, and m=3 kept unchanged, we tested three values for the parameters S1, S2, S3, and S4 as shown in Table 5. The results of this analysis, which are presented in Figure 1, confirm the above conclusion about the mentioned parameters.
6. CONCLUSION
This article examined the problem of multiproduct multiperiod inventory routing pricing with the objective of profit maximization for supply chain members. In this problem, it was assumed that several products produced by a manufacturer are distributed among a group of retailers with a homogeneous fleet of limitedcapacity vehicles under the multidelivery policy. In addition, the entire demand of each retailer in each period must be delivered all at once by one vehicle. The manufacturer and retailers had a limited inventory capacity, the manufacturer had a limited production capacity, and shortages were not allowed. After generating multiple numerical examples of different sizes, the software GAMS 24.1.3 was used to solve smallsized instances and a genetic algorithm was coded in MATLAB 2016a to solve larger instances of the problem. The results showed the validity and efficiency of the model. In future studies, it can be useful to expand the problem for other conditions that may apply to the industry. For example, it is recommended to expand the problem for a multilevel supply chain where demand is uncertain or shortages are allowed.