Using Monte Carlo to optimise a production schedule

Using Monte Carlo Simulations to create the best schedule for a pharmaceutical manufacturing site
Create a new schedule system where you input any number of orders ie enter ORD001 and press enter then enter ORD002 etc. When all the orders are entered you press the GET BEST SCHEDULE button and the simulation outputs the best schedule for all these orders.  I want a very simple window (front end) code containing a box to enter the order numbers and a grey button for the get best schedule button and somewhere you get the output schedule (using Java).
The best schedule will be the schedule with the least amount of unused days. The object is to optimise the use of all machines and people so that the least amount of downtime is created. The only random thing in the whole simulation will be the start date ie the date when each product will start to be manufactured. The end date is the date given in the order table Order_Required_By.  Ideally all the products would be produced simultaneously but the contraints of people and machines prevents this happening so the simulation will give the most workable solution to get the products made as quickly as possible. I want to use something like this for the picking random dates for the start date.
import scala.util.Random
import java.time.LocalDate

// val start = LocalDate.of(2020, 1, 20)
// val end  = LocalDate.of(2020, 2, 12)
LocalDate.ofEpochDay(Random.between(start.toEpochDay, end.toEpochDay))
// LocalDate = 2020-01-26

Order Now

Top