Monte Carlo Simulation for Materials Forecasting

Joe Ng
3 min readApr 16, 2024
https://www.google.com/url?sa=i&url=https%3A%2F%2Fnewscenter.lbl.gov%2F2023%2F09%2F28%2Faccelerating-sustainable-semiconductors-with-multielement-ink%2F&psig=AOvVaw2pgmVAB7MrycinmNhllBaL&ust=1713350447014000&source=images&cd=vfe&opi=89978449&ved=0CBIQjRxqFwoTCIj43fjFxoUDFQAAAAAdAAAAABAT

Last month, I had the opportunity to participate in a business analytics case competition organized by Micron. The problem statement is as follows:

Your job, as a Material Planning Engineer, is to predict how much material will be needed for production. This is crucial for the supply team to negotiate and buy the right amount. Since making computer chips (wafer production) is very complex, figuring out how much material is needed can be tricky.

You need to create a system to predict material usage. This system will use various information, including the technical details of the production process and past data on how much material was used.

The process that we are studying is one where sulfuric acid (H₂SO₄) is used to clean wafers of product A and product B. You are given a projected production plan for 10 weeks and asked to generate a forecast of the amount of sulfuric acid that will be required.

Within wafer production, 3 variables may vary by batch. The batch life, load size, and reclaim efficiency of the sulfuric acid used to clean the wafers.

Approach: Simulation

Due to the existence of 3 random variables that may affect the amount of sulphuric acid needed, we chose to run a Monte Carlo simulation with multiple iterations, randomly generating the values for the random variables in each iteration. The batch life and load size values were modeled by a discrete uniform distribution, while the reclaim efficiency was modeled with a normal distribution.

The code simulates the cleaning process of chips, where each batch of chips is cleaned by immersing them in a tank filled with sulfuric acid. The cleaning process continues until either the batch life or the chemical life of the sulfuric acid is reached, whichever comes first. At this point, the sulfuric acid in the tank needs to be replenished, using a combination of reclaimed sulfuric acid and fresh sulfuric acid.

The model was built with Python, and batch life, load size, and reclaim efficiency values were randomly generated using their respective ranges. The simulation was then run 5000 times, and the final forecasted value was taken from the mode of all simulations run. We used the mode as we wanted the forecast to be the value that occurred the most times.

Eventually, we obtained a distribution of the possible values of the volume of the required H₂SO₄, which has a median of around 1675. We can use this to forecast the distribution of consumption of H₂SO₄ given the amount of wafers we need to process.

--

--