# Introduction aterials Requirements Planning (MRP) is a computer-based production planning and inventory control system which is concerned with both production scheduling and inventory control. It is a material control system that attempts to keep adequate inventory levels to assure that required materials are available when needed. The main purpose of MRP software is to facilitate the calculation of requirements of materials and timing. Thus it is a technique for determining the quantity and timing for the acquisition of dependent demand items needed to satisfy master production schedule (MPS) requirements by converting three inputs, bill of material, inventory data and master production schedule into time-phased requirements for subassemblies, component parts and raw materials, working backward from the due date using lead times and other information to determine when and how much to order [1]. The major objectives of an MRP system are to 1) ensure the availability of materials, components, and products for planned production and for customer Author ? ? ? ? : Undergraduate student, Department of Industrial Engineering & Management (IEM), Khulna University of Engineering & Technology (KUET), Khulna-9203, Bangladesh. E-mails : saifuliem@gmail.com, mahbub.iem@gmail.com, ripon_kuet27@yahoo.com, saifsf08@gmail.com delivery 2) maintain the lowest possible level of inventory 3) plan manufacturing activities, delivery schedules, and purchasing activities [2]. Figure 1 : Block diagram of MRP system Before 1960's there was no satisfactory method available for handling the inventory of dependent items. A firm's formal inventory system was often patterned after order points and either misapplied or broken down into a maze of informal method when it comes to handling dependent items. There was no feasible method of keeping accurate records of thousands of inventory items to keep them out of too much scheduling trouble. Unfortunately, these did not always achieve the intended objective, however they always made a contribution to the inventory carrying and storage costs. During the 1960's the computer opened the door to an inventory system that could keep up to date records on the status of all inventory in stock. This brought a better understanding of production operation and new ways of managing production. It also brought out some new terminology, such as priority in material requirement planning system and capacity planning. The American production and inventory control society (APICS) has done much to standardize the terminology in this field and material requirement planning is popularly abbreviated as MRP in the world over [3]. In to about 8,000 by 1981. In the 1980s, Joe Orlicky's MRP evolved into Oliver Wight's manufacturing resource planning (MRP II) which brings master scheduling, rough-cut capacity planning, capacity requirements planning, S&OP in 1983 and other concepts to classical MRP. By 1989, about one third of the software industry was MRP II software sold to American industry ($1.2 billion worth of software) [5]. MRP is the way of life for many industries fabricating and assembling products like automobiles and radios. It is generally applicable in situations of multiple items with complex bills of materials and is especially suited to manufacturing settings where the demands of many of the components and subassemblies depend on the demands of items that face external demands. MRP is also suitable when the manufacturing cycle is long for the finished product and lead time for components and raw materials are relatively long. While demands for end items are independent the demands for components used to manufacture end items depend on the demands of the end items. The distinctions between independent and dependent demands are important in classifying inventory items and in developing systems to manage items within each demand classification [6]. The Master Production Schedule (MPS) includes quantities of products to be produced at a given time period. Quantities are included both at aggregate and detailed levels. Aggregate may refer to monthly production and detailed may refer to weekly or daily production. The master production schedule takes the form of a table in which rows represent products and columns represent time components [7]. The bill of materials (BOM) is a list of the raw materials, subassemblies, assemblies, parts and the quantities of each needed to manufacture an end product. Lead time is the time interval between ordering and receiving an item [8]. Sometimes it means the assembly time or processing time to produce an item. A key variable in MRP system design is the selection of lot-sizing rule (how much to order) based on the lead time. The problem of lot sizing is one of satisfying the requirements while trying to minimize holding and setup costs. There are basically two major classes of lot sizing techniques namely Static and Dynamic. A static lot-sizing rule orders the same quantity each time an order is placed and often generating higher average on hand inventory for extra safety stock [9]. Dynamic decision rule changes the order quantity with each order such that each order is just large enough to prevent shortages over a specified time period by tying lot-size to gross requirements. It generally causes instability with lower-level components unable to respond sufficiently fast to changes in requirements [10] [11]. The lot-for-lot (LFL) ordering is the simplest approach and it refers to order the net requirements for a specific period. The LFL approach minimizes the holding cost by producing just-in-time. In lot-size (LS) ordering the order size must be in multiples of the lot size. To form a useful bill of material it is convenient to order the items by levels. The level of an item is the maximum number of stages of assembly required to get the item into an end product. Consider a specific final item named 'A' for a manufacturing firm. The required quantity of final item 'A' is 250 for the first order. The firm already has 100 units of final item in inventory. So the firm needs 150 units of 'A' to meet the first order. For 150 units of 'A' it requires 300 units of item 'B' and 600 units of item 'C'. Again, for 300 units of 'B' the firm needs 600 units of item 'D' and 300 units of item 'E'. The inventory level of item 'D' is 50. So, the net requirement of item 'D' is 550. If the firm orders today for 550 units of 'D' from supplier it can receive the order after two weeks. In the meantime the required quantity of item 'E' will be available for lower lead time. It will takes another one day to produce the required quantity of item 'B' with items 'D' and 'E'. In the meantime the required quantity of item 'C' will be available. Finally, it will take another two more days to produce the required quantity of final item 'A' with items 'B' and 'C'. It will take total five weeks to meet the first order. The first order can be delivered in the sixth week. - ------------------------------------------ Step 1 : Structure has been used to declare the variables of each item (item ID, item name, inventory level, lead time, lot size, number of item needed for each upper item, upper item ID, Number of lower item etc). # -----------------------------------------ID: 101 Step 2 : Input the total number of level and information of each item (Bill of Materials). Step 3 : Input the total number of deliveries and timing & required quantity of final item for each delivery (Master Production Schedule). Step 4 : Temporary inventory level variable is used to hold the inventory level of each item temporarily which will be destructed after calculation. Step 5 : Finding out the order release date and temporary inventory level of independent item (final item) for each delivery Step 6 : Finding out the order release date and temporary inventory level of all dependent items (sub items) for each delivery. If an item occurs more than once it will update the temporary inventory level for all repeated items simultaneously. Step 7 : If the order release date of an item is negative it means that the Order Release falls before the planning period. So, the delivery can't be possible. Step 8 : Then searching for the maximum negative value of order release date among all items for the deliveries which are not possible. This maximum negative value yields the number of weeks/days required to meet the missing deliveries. Step 9 : For a missing delivery shift the inventory level of all items to the next delivery. Step 10 : Again finding out the order release date and temporary inventory level of all items for the remaining deliveries because of missing the delivery Step 11 : Repeat steps 9 and 10 for the remaining missing deliveries. Step 12 : Holding the missing deliveries in an array. Step 13 : Finally calculate the order release date and inventory level of all items for which deliveries are possible. Step 14 : Show which deliveries can't be met and the required weeks/days to meet those deliveries. Step 15 : Show the output of MRP that is the time-phased requirements for assemblies, parts and raw materials. Step 16 : Show the final inventory level of all items. Step 17 : Finally save the MRP output to a text file. Number of final item required for order no.1: 300 In which week/day order no.5 has to be released: 12 Number of final item required for order no. IV. # Conclusion There are several sources of uncertainty that we have ignored so far. These include uncertainty in the quantity demanded (forecast errors) and the quantity supplied (yield losses), and uncertainty in the timing of demand and the timing of supply (random lead times). The largest cost or disadvantage of any MRP system is the cost of purchasing or leasing a computer system to support the function. However, with increasing inventory and production cost, along with decreasing computation costs the MRP system is getting easier to justify. The software is user friendly and was tested with various types of products and gave accurate results when verified with the manual method of calculation. So, the software is universal. The time-phased requirements for assemblies, parts and raw materials and final inventory level can easily be identified with the software. With the software local small scale manufacturing industries can improve customer service with lower inventories and reduce overtime and idle time. ----------------------------------\n"); printf("ID: "); scanf("%d", &info[0].id); printf("\nName: "); scanf("%s",&info[0].name); info[0].n_l_item=b [1]; printf("\nInventory level: "); scanf("%d", &info[0].i_level); printf("\nLead time: "); scanf("%d", &info[0].l_time); if (info[0].n_l_item==0) { printf("\nLot size [use a huge number i.e.; 32000 when 'lot for lot' order]: "); scanf("%d", &info[0].l_size); //Enter 32000 only when lot for lot otherwise use the lot size } for(i=1;i