Keywords

1 Introduction

The aim of this paper to propose a production scheduling method considering user needs to realize mass customization. Mass customized system can respond variety of users’ demands, and achieve high production efficiency with low cost [1]. To implement a mass customized system, manufacturers are required to achieve an optimal production scheduling, inventory planning and so on. Among them, focusing on the production scheduling, we have proposed a method applying Combinatorial Auction [2] to planning phase for making the production schedule over multiple periods, and Single Auction [3] to operational phase for updating the production schedule quickly in response to new additional orders such as received orders [4].

In this study, “users’ demand” is defined as the users’ demand about due date and price, and we propose a method of making the production schedule considering the users’ demand by weighted tardiness according to the price paid by users.

2 Model

In this study, we focus on mass customization of the sole part of running shoes [5]. The shoes are composed of a sole part and an upper part. The sole part consists of three parts: inner sole, mid sole, and outer sole. The upper part is supposed to have sufficient inventory anytime and is not subject to planning in this study. The user can select each sole part from either standard parts or tailor-made parts. Standard parts are parts with shape and material standardized, and tailor-made parts are parts considering user needs manufactured by tailor-made machine (3D printer). Each part for inner, mid, outer is manufactured by the standard machines and/or tailor-made machines. Then, the parts are assembled by assembly machine, and the shoes are completed. In each machine (excluding assembly machine), a setup time occurs when the type of parts is changed.

3 Proposed Scheduling Method

3.1 Notation

The notations used in this model are shown as follows:

I :

: Order number (i = 1,\( \cdots \), I)

j :

: Work number ({j = 1,\( \cdots \), J | \( j \in standard, tailor, assembly \)})

k :

: Bid number of bidder (k = 1,\( \cdots \), K)

t :

: Time slot number (t = 1,\( \cdots \), T)

te :

: Manufacturing term number (te = 1,\( \cdots \), TE)

\( RT_{i} \) :

: Arrival time of order i

\( MT_{i,j} \) :

: Production time of work \( j \) of order i

\( AT_{i} \) :

: Assembly time of order i

\( PS_{i,j,k} \) :

: Starting time of processing of bid k of work \( j \) of order i

\( MN_{i,j,k} \) :

: Machine number of bid k of work \( j \) of order i

\( DP_{i} \) :

: Number of time slot of the tardiness of order i

\( AP_{i} \) :

: Amount of additional price of order i

\( w_{i} \) :

: Weight factor of order i for the tardiness with additional price (\( AP_{i} \))

\( \lambda_{te} \) :

: Constraint violation penalty per term te

\( \alpha \) :

: Weight factor for constraint violation penalty per term te (\( \lambda_{te} \))

\( U_{i,j,k,t} \) :

: A dependent variable that is 1 if the bid k of work j of order i is being manufactured at time slot t, and otherwise 0

\( UA_{i,j,k,t} \) :

: A dependent variable that is 1 if the bid k of work j of order i is being assembled at time slot t, and otherwise 0

\( C_{j} \) :

: Setup time of work j (\( C_{j} = Co \left( {j \in standard} \right), C_{j} = CoT \left( {j \in tailor} \right) \))

\( TS_{te} \) :

: All time slots included in term te

\( OR^{'} \) :

: Target machine operating rate

term :

: Number of time slots per a term

\( T_{i,j,k,te} \) :

: A dependent variable that is 1 if the starting time of processing of bid k of work j of order i \( \left( {PS_{i,j,k} } \right) \) is included in term te, and otherwise 0

\( rand \) :

: A random variables following the uniform random number

\( direct \) :

: The threshold for neighborhood search operation

3.2 Planning Phase

3.2.1 Proposed Method Based on Combinatorial Auction

A Combinatorial Auction (CA) [2] is known as social contract based optimization approach and used to develop optimal scheduling and stock allocation planning. CA first shows the information of goods to the bidders, and the bidders make bids (Bid determination problem). Then the auctioneer decides winner bids which make objective function maximum or minimum (Winner determination problem).

In this study, manufacturer hosts auction and the bidder is the order requested by the user and goods included in the bid are the right to use the machine (machine number to be manufactured (\( MN_{i,j,k} \)), starting time of processing (\( PS_{i,j,k} \))).

3.2.2 Bid Determination Problem

Bid Value

Equation (1) expresses bid value \( B_{i,j,k} \) of bid k by bidder (i,j). Parameter \( w_{i} \) is a weight factor for the tardiness determined by the additional price paid by the user (\( AP_{i} \)), and the relationship between weight factor and price is shown in Fig. 1. By increasing \( w_{i} \) of the user who pays the high additional price (\( AP_{i} \)), the order ordered by the user is preferentially manufactured.

Fig. 1.
figure 1

Relationship between weight factor and price

$$ B_{i,j,k} = \left\{ {\begin{array}{*{20}c} {\hbox{max} \left\{ { 0 ,\left( {PS_{i,j,k} + AT_{i} - DP_{i} } \right) \times w_{i} } \right\}} & {\left( {{\text{if}}\,\,\, j \in assemby} \right)} \\ 0 & {\left( {\text{otherwise}} \right)} \\ \end{array} } \right. $$
(1)

Bid Constraints

Each bidder avoids to make the bid including infeasible combination. Then bidding rules in conjunction with the bid are set as shown in Eqs. (2) and (3).

$$ PS_{i,j,k} \ge RT_{i} \left( {\forall k} \right) $$
(2)
$$ PS_{i,j,k} \ge { \hbox{max} }\left( {PS_{i,j,k} + MT_{i,j} } \right) $$
(3)
$$ \left( {j \in standard\text{,}\, tailor\text{,} \,j^{{\prime }} \in assembly\text{,}\,\forall k} \right) $$

Equation (2) expresses that the order i is manufactured after the arrival time of order i (\( RT_{i} \)). Equation (3) expresses that assembly work is started after completion of all parts is determined.

3.2.3 Winner Determination Problem

Objective function and constraints are formulated as follows:

$$ \hbox{min} \,\,\sum\nolimits_{i = 1}^{I} {\sum\nolimits_{k = 1}^{K} {\left( {B_{i,j,k} \times x_{i,j,k} } \right) + \sum\nolimits_{te = 1}^{TE} {\lambda_{te} \left( {j \in assembly} \right)} } } $$
(4)
$$ {\text{s}} . {\text{t}}\,\,\sum\nolimits_{k = 1}^{K} {x_{i,j,k} = 1 \left( {\forall i,\forall j} \right)} $$
(5)
$$ \sum\nolimits_{i = 1}^{I} {\sum\nolimits_{j = 1}^{J} {U_{i,j,k,t} \times x_{i,j,k} \le 1 \left( {\forall k,\forall t,\,j \in standard,tailor} \right)} } $$
(6)
$$ U_{i,j,k,t} = \left\{ {\begin{array}{*{20}l} 1 \hfill & {\left( {{\text{if}}\,PS_{i,j,k} \le t \wedge t \le PS_{i,j,k} + MT_{i,j} } \right)} \hfill \\ 0 \hfill & {\left( {\text{otherwize}} \right)} \hfill \\ \end{array} } \right. $$
$$ \sum\nolimits_{i = 1}^{I} {\sum\nolimits_{j = 1}^{J} {UA_{i,j,k,t} \times x_{i,j,k} \le 1\quad \left( {\forall k,\forall t,\,j \in assembly} \right)} } $$
(7)
$$ UA_{i,j,k,t} = \left\{ {\begin{array}{*{20}l} 1 \hfill & {\left( {{\text{if }}PS_{i,j,k} \le t \wedge t \le PS_{i,j,k} + AT_{i} } \right)} \hfill \\ 0 \hfill & {\left( {\text{otherwize}} \right)} \hfill \\ \end{array} } \right. $$
$$ x_{i,j,k} + x_{{i^{{\prime }} ,j,k^{{\prime }} }} \le 1 $$
(8)
$$ \begin{aligned} & (\{ \forall i, \forall i^{{\prime }} , \forall j,\forall k, \forall k^{{\prime }} | i \ne i^{{\prime }} \wedge j \notin assembly \wedge PS_{i,j,k} + MT_{i,j} \le PS_{{i^{{\prime }} ,j,k^{{\prime }} }} \\ & \quad \wedge PS_{{i^{{\prime }} ,j,k^{{\prime }} }} \le PS_{i,j,k} + MT_{i,j} + C_{j} \} ) \\ \end{aligned} $$
$$ PS_{i,j,k} \times x_{i,j,k} + MT_{i,j} \le PS_{{i,j^{{\prime }} ,k^{{\prime }} }} \times x_{{i,j^{{\prime }} ,k^{{\prime }} }} $$
(9)
$$ (\{ \forall i,\forall j\, |\, j \in standard,tailor,j^{{\prime }} \in assembly\} ) $$
$$ \lambda_{te} = \hbox{max} \left\{ {0,\left( {\sum\nolimits_{i = 1}^{I} {\sum\nolimits_{j = 1}^{J} {\sum\nolimits_{k = 1}^{K} {\left( {MT_{i,j,k} \times x_{i,j,k} \times T_{i,j,k,te} } \right) - TS_{te} \times OR^{{\prime }} } } } } \right) \times \alpha } \right\} $$
(10)
$$ T_{i,j,k,te} = \left\{ {\begin{array}{*{20}l} 1 \hfill & {\left( {{\text{if}} term \times \left( {te - 1} \right) \le PS_{i,j,k} \wedge PS_{i,j,k} \le term \times te} \right)} \hfill \\ 0 \hfill & {\left( {\text{otherwise}} \right)} \hfill \\ \end{array} } \right. \left( {\forall {\text{te}}} \right) $$
$$ x_{i,j,k} \in \left\{ {0,1} \right\} $$
(11)

The decision variable is \( x_{i,j,k} \), expressed by Eq. (11). When this value is 1, the bid bearing bidding number k of work \( j \) of order i becomes the winner. When this value is 0, the bid becomes the loser.

Objective function is expressed by Eq. (4), which is intended for minimizing the total tardiness and constraint violation penalty per term \( \left( {\lambda_{te} } \right). \)

Equation (5) guarantees that only a bid per bidder becomes winner. Equation (6) is constraint equation related to the rights on standard and tailor machine at a time slot. Equation (7) is constraint equation related to the rights on assembly machine at a time slot. Equation (8) is constraint equation related to the rights on processing machine under considering setup time at a time slot. Equation (9) guarantees that a product can be assembled after the completion of parts. Equation (10) is constraint on the level of the machine operating rate, which means that if the machine operating rate in each term exceeds the value of the target machine operating rate \( \left( {OR^{'} } \right) \), a constraint violation penalty (\( \lambda_{te} \)) will occur for each term.

3.2.4 Bidding Rule

Initial Bid

When auctioneer establishes an upper bound of the number of bids per bidder to obtain the solution in a short time, sometimes feasible solution of winner determination problem is not obtained. Therefore, all bidders make an initial bid in accordance with the dispatching rules for getting the practicable solution.

Bidding by Neighborhood Search Operation

Except for initial bid, bidders make the bid that won the last auction and its nearby value. By the neighborhood search operation, all bidders always get the practicable solution and prevent from worsening of the objective function value. The detail of the bidding by neighborhood search operation is as follows:

STEP 1 :

Make a bid of the same goods combination as the bid of the winner of the last auction.

STEP 2 :

Other bids are made by shifting the starting time of processing \( \left( {PS_{i,j,k} } \right) \) of the bid that was the winner of the last auction. Equation (13) determines the direction of shift. Parameter \( \varepsilon \) is a random variable following the uniform distribution.

$$ PS_{i,j,k} : = \left\{ {\begin{array}{*{20}l} {PS_{i,j,k} + \varepsilon } \hfill & {({\text{if}}\;rand\, < \,direct)} \hfill \\ {PS_{i,j,k} - \varepsilon } \hfill & { \left( {\text{otherwise}} \right)} \hfill \\ \end{array} } \right. $$
(13)
STEP 3 :

If the bid made in STEP 2 overlaps \( PS_{i,j,k} \) of another bid, the process returns to STEP 2. Otherwise, the process ends

3.3 Operational Phase

3.3.1 Proposed Method Based on Single Auction

A Single Auction [3] is an auction that can make an efficient schedule in a short time. In the Single Auction used for this study, the bidder is tailor-made machine and bidding goods are received orders. The bid value is the residence time of received order \( i^{\prime} \) expressed by the Eq. (14). Bidding with the minimum the residence time \( (ReT_{{i^{\prime}}} \)) is the winner and the order is assigned to the machine.

$$ ReT_{{i^{{\prime }} }} = PS_{{i^{{\prime }} ,j,k}} + AT_{{i^{{\prime }} }} - RT_{{i^{{\prime }} }} $$
(14)

3.3.2 Flow of Received Order Assignment

At operational phase, the received order is allocated to the machine for each term and the schedule is updated. The flow of received order assignment is as follows:

STEP 1 :

The orders included in the term te of the production schedule made in planning phase are left-aligned in consideration of setup time.

STEP 2 :

Using the Single Auction shown in Sect. 3.3.1, received orders are allocated to machine in order of early due date. If due delay occurs, go to STEP 3. Otherwise go to STEP 4.

STEP 3 :

Perform the received order inserting operation. The received order inserting operation is to reinsert the received so that the total tardiness becomes minimum. The time slot to be reinserted is decided by considering \( w_{i} \) shown in Sect. 3.2.2.1.

STEP 4 :

If te = TE, then finish. Otherwise, te ≔ te + 1 and return to STEP 1.

4 Computational Experiments

In order to evaluate the proposed method, the computational experiments were performed. The evaluation criteria are as follows:

  • DD [TS]: Total tardiness (\( DP_{i} \))

  • NOD: The number of order that delays due date

  • \( {\text{NOD}}_{\text{A}} \): The number of order with additional price (\( AP_{i} \)) that delays due date

  • \( {\text{NOD}}_{\text{N}} \): The number of order with no additional price that delays due date

  • OR [%]: Overall machine operating rate

  • \( {\text{OR}}_{1,2,3} \) [%]: 1st, 2nd, 3rd term machine operating rate

  • CT [sec]: Calculation times

4.1 Experimental Conditions

The experiments are performed with the following conditions:

  • The number of order (Order set 1): 45 (Additional price payment: 22, No: 23)

  • The number of order (Order set 2): 35 (Additional price payment: 17, No: 18)

  • The number of received order: 10 (Additional price payment: 5, No: 5)

  • Arrival time of orders (\( RT_{i} \)): 0[TS]

  • The number of standard parts varieties: 3

  • The number of tailor-made parts varieties: 7

  • The number of standard machine: 3 (1 inner sole, 1 mid sole, 1 outer sole)

  • The number of tailor-made machine: 5

  • The number of assembly machine: 1

  • Production time of standard machine (\( \{ MT_{i,j} \,|\,j{ \in }standard\} \) |): 1[TS]

  • Production time of tailor-made machine (\( \{ MT_{i,j} \,|\,j \in tailor\} \) |): 10–20[TS]

  • Assembly time (\( AT_{i} \)): 1[TS]

  • Setup time of standard machine (Co): 3[TS]

  • Setup time of tailor-made machine (CoT): 4[TS]

  • The number of time slots per term (term): 50[TS]

  • The number of term (TE): 3[term]

  • Weight factor for the tardiness (\( w_{i} \)): \( w_{i} = 1 + AP_{i} \times 1000 \)

  • Weight factor for constraint violation penalty (\( \alpha \)): 10

  • Target machine operating rate (\( OR^{'} \)): 61 (order set 1), 77 (order set 2)

  • Threshold for neighborhood search operation direct: 0.5

  • The number of bid per bidder (K): 10

  • The number of iteration (Ite): 500

  • The number of trial: 50

This study uses CPLEX 12.6 [6] and Inter(R) Xeon(R) CPU E5 1650 3.50 GHz 16.0 GB memory computer to solve bid determination problem.

4.2 Experiment 1: Evaluation at Planning Phase

Computer experiments at planning phase were conducted to evaluate the constraints on the level of machine operating rate (OR1, OR2, OR3) and the weight by price (\( w_{i} \)). The results are shown in Tables  1 and 2. Order set 1 was used for the experiments.

Table 1. Results of experiment 1 (for evaluating the constraint)
Table 2. Results of experiment 1 (for evaluating the weight by price)

Considering the results in Table 1, the average values of the difference between OR and (OR1 or OR2 or OR3) are smaller with the proposed method (with constraints), and machine operating rates are about the same. DD of the proposed method (61.28) was reduced by 1% compared with DD of No-Constraint (61.74). CT increased in proposed method with the introduction of the constraint. From these results, it was confirmed that it is possible to level the machine operating rate of each term without a large change in the total tardiness by introducing the constraint, and that the constraint is effective for leveling the machine operating rate.

Considering the results in Table 2, \( {\text{NOD}}_{\text{A}} \) of the proposed method was 0, which was greatly improved compared to No-Weight. On the other hand, DD of the proposed method (99.5) was increased by 56% compared with DD of No-Weight (63.74). \( {\text{NOD}}_{\text{N}} \) of the proposed method (6.12) was increased by 82% compared with \( {\text{NOD}}_{\text{N}} \) of No-Weight (3.36). From these results, it was confirmed that it is possible to make a schedule considering the price by weighting on the tardiness by the price, but the tardiness of the user who does not pay the additional price (\( {\text{NOD}}_{\text{N}} \)) is increasing.

4.3 Experiment 2: Evaluation at Operational Phase

Computer experiments were conducted to evaluate the effectiveness of the received order inserting operation considering price at operational phase. The results are shown in Table 3. Order set 2 was used for the experiment.

Table 3. Results of experiment 2 (for evaluating the received order inserting operation)

Considering the results in Table 3, DD of the proposed method (with Insert) was greatly improved to 17.3% of DD without inserting operation. Furthermore, NOD of proposed method became smaller than NOD of No-Weight. Therefore, by using inserting operation, it was found that it is possible to insert received order without increasing the tardiness. In addition, the ratio of \( {\text{NOD}}_{\text{A}} \) (2.6) to NOD (6.75) was 38.5% in the case of No-Insert, while the ratio of \( {\text{NOD}}_{\text{A}} \) (0.9) to NOD (4.2) was 21.4% in the proposed method, and the number of order with additional price that delays due date was decreasing. From these results, it was suggested that the schedule acquired by using the proposed method is able to be updated with priority given to users who paid the high price, and it is confirmed that insertion of received order considering price is effective.

5 Conclusion

In this study, the production scheduling method considering user needs with auction methods – CA and Single Auction, for mass customization was proposed, and we evaluated its effectiveness by computer experiments. From the obtained results, it was found that by using the proposed method, it is possible to greatly improve the tardiness and the value of \( {\text{NOD}}_{\text{A}} \). Therefore, it was confirmed that it is possible to make a schedule considering the users’ demand about due date and price by using the proposed production schedule method.