let's say you don't have fixed number of machines, and you're trying to determine the optimal number of machines to run based on demand
@apm Жыл бұрын
We've been researching topics related to design (number or size of machines) and schedule optimization. Here are a few papers (among many with this current topic): Hill, D., McCrea, D., Ho, A., Memmott, M., Powell, K., Hedengren, J., A Multi-Scale method for combined design and dispatch optimization of nuclear hybrid energy systems including storage, e-Prime - Advances in Electrical Engineering, Electronics and Energy, Volume 5, 2023, 100201, ISSN 2772-6711, DOI: 10.1016/j.prime.2023.100201 Mojica, J.L., Petersen, D.J., Hansen, B., Powell, K.M., Hedengren, J.D., Optimal Combined Long-Term Facility Design and Short-Term Operational Strategy for CHP Capacity Investments, Energy, Vol 118, 1, pp. 97-115, January 2017, DOI: 10.1016/j.energy.2016.12.009. I recommend that you also look at work by Ignacio Grossmann at CMU and Christos Maravelias at Princeton for additional contributions to combined scheduling and design optimization.
@muhammadluthfi6887 Жыл бұрын
Thanks for the very insightful video. Im currently on the project of scheduling optimization of blending processes in refinery. is there any learn it further about it from the expert?
@apm Жыл бұрын
There is more information in these courses: apmonitor.com/me575 and apmonitor.com/do
@xondiego Жыл бұрын
Thanks for this video, a question is APMonitor and Gekko open source? let say if I work for a consultant and I want to use Gekko can I use it for free? otherwise how is the process for using gekko and APMonitor tools for optimization?
@apm Жыл бұрын
Yes, Gekko is freely available. The source is available from github.com/BYU-PRISM/GEKKO or install with "pip install gekko". It has the MIT License that allows any use, including commercial use.
@codingspace1143 Жыл бұрын
Thanks for very useful video
@evantale31915 ай бұрын
how should I modifies the code if I wanted to to schedule multiple task to the same type of machine that runs parallelly ? great video btw thankyou ! 😄🤝
@apm5 ай бұрын
Here is sample code from ChatGPT 4o: from gekko import GEKKO m = GEKKO(remote=False) # Number of tasks num_tasks = 5 # Number of parallel machines for Y and Z num_machines = 2 Y = {0: 10, 1: 20, 2: 15, 3: 40, 4: 8} Z = {0: 20, 1: 30, 2: 10, 3: 25, 4: 18} # Decision variables x = m.Array(m.Var, (num_tasks, num_tasks, num_machines), value=0, lb=0, ub=1, integer=True) # Ensure each task is assigned to exactly one time slot on any machine for i in range(num_tasks): m.Equation(m.sum([x[i, j, k] for j in range(num_tasks) for k in range(num_machines)]) == 1) m.Equation(m.sum([x[j, i, k] for j in range(num_tasks) for k in range(num_machines)]) == 1) # Time to process on Y and Z ty = m.Array(m.Var, (num_tasks, num_machines)) tz = m.Array(m.Var, (num_tasks, num_machines)) for k in range(num_machines): for i in range(num_tasks): m.Equation(ty[i, k] == m.sum([x[i, j, k] * Y[j] for j in range(num_tasks)])) m.Equation(tz[i, k] == m.sum([x[i, j, k] * Z[j] for j in range(num_tasks)])) # Delay time on Z d = m.Array(m.Var, (num_tasks, num_machines), lb=0) s = m.Array(m.Var, (num_tasks, num_machines), lb=0) for k in range(num_machines): m.Equation(d[0, k] == ty[0, k]) m.Equation(s[0, k] == 0) for i in range(1, num_tasks): m.Equation(d[i, k] >= tz[i - 1, k] - ty[i, k] + s[i, k]) # Minimize the total delay and slack m.Minimize(m.sum(d[:,k])) m.Minimize(1e-3 * m.sum(s[:,k])) # Solve the problem m.options.SOLVER = 1 m.solve() # Print the results print('Order of processing, rows=order, columns=product, depth=machine') print(x) print('Time on machine Y') print(ty) print('Time on machine Z') print(tz) print('Delay') print(d) For specific questions, please ask on StackOverflow with tag [gekko].
@hassanlaqrabti4036 Жыл бұрын
Thank you professor
@lazyac_ Жыл бұрын
thx does someone can help me with this?
@apm11 ай бұрын
Sure, the code examples are available at apmonitor.com/me575/index.php/Main/ScheduleOptimization. If you need help with a specific problem, please post your code to Stack Overflow or use ChatGPT to get help.
@lazyac_11 ай бұрын
Yes ChatGPT helped me! he used pulp library, i not sure about constraints he used but it works @@apm