Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:mathprog

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
mathprog [2014/12/16 15:50] – [Cutting stock] added stockcutting.mod file upload ojdosoftware:mathprog [2021/09/08 13:21] – more models on Github linked ojdo
Zeile 1: Zeile 1:
 ====== MathProg online ====== ====== MathProg online ======
  
-//SOforSG// (Storage Optimization for Smart Grid) is a minimal example of a linear optimization problem, dealing for dimensioning and operation of a lossless energy storage. Its goal is to minimize operational costs of the household for energy purchase. For brevity, the model is quite minimalisticTwo options are available+MathProg is a special purpose programming language that allows to formulate mathematical optimization problems. Its syntax closely follows the mathematical notation, allowing for a close correspondence between mathematical description and code.
  
 ===== Storage sizing/operation ===== ===== Storage sizing/operation =====
  
-  * [[https://www3.nd.edu/~jeff/mathprog/mathprog.html?model=%23%20SOforSG%3A%20Storage%20Optimization%20for%20Smart%20Grids%0A%23%20Last%20updated%3A%2014%20November%202013%0A%23%20Author%3A%20johannes.dorfner%40tum.de%0A%23%0A%23%20This%20model%20optimizes%20size%20(storage_capacity)%20and%20operation%20(storage_level%5Bt%5D)%20%0A%23%20of%20a%20hypothetical%20lossless%20storage%20technology%20for%20electric%20energy.%20A%20given%0A%23%20electricity%20demand%5Bt%5D%20must%20be%20satisfied%20from%20a)%20a%20cost-free%20(renewable)%20energy%20%0A%23%20supply%5Bt%5D%20with%20intermittent%20characteristic%20or%20from%20b)%20electricity_purchase%5Bt%5D%2C%0A%23%20i.e.%20buying%20of%20electricity%20from%20the%20grid%20for%20a%20time-dependent%20electricity_price%5Bt%5D.%0A%0A%23%20SETS%20%26%20PARAMETERS%0Aset%20time%3B%0Aparam%20demand%7Btime%7D%20%3E%3D%200%3B%20%23%20(kWh%2Fh)%0Aparam%20supply%7Btime%7D%20%3E%3D%200%3B%20%23%20(kWh%2Fh)%0Aparam%20electricity_price%7Btime%7D%3B%20%23%20(EUR%2FkWh)%0Aparam%20storage_cost%3B%20%23%20(EUR%2FkWh)%0Aparam%20selling_price_ratio%3B%20%23%20(1)%20for%20sold%20energy%2C%20relative%20to%20electricity_price%0A%0A%23%20VARIABLES%0Avar%20energy_balance%7Btime%7D%3B%20%23%20(kWh)%0Avar%20storage_capacity%20%3E%3D%200%3B%20%23%20(kWh)%0Avar%20storage_level%7Btime%7D%20%3E%3D%200%3B%20%23%20(kWh)%0Avar%20energy_purchase%7Btime%7D%20%3E%3D%200%3B%20%23%20(kWh)%0Avar%20energy_sold%7Btime%7D%20%3E%3D%200%3B%20%23%20(kWh)%0Avar%20costs%3B%0A%0A%23%20OBJECTIVE%0Aminimize%20obj%3A%20costs%3B%0A%0A%23%20CONSTRAINTS%0A%0A%23%20total%20costs%20%3D%20investment%20for%20storage%20%2B%20purchased%20electricity%0As.t.%20def_costs%3A%20%0A%20%20%20%20%20%20%20%20costs%20%3D%20%0A%20%20%20%20%20%20%20%20storage_cost%20*%20storage_capacity%20%2B%20%0A%20%20%20%20%20%20%20%20sum%7Bt%20in%20time%7D%20electricity_price%5Bt%5D%20*%20energy_purchase%5Bt%5D%20-%0A%20%20%20%20%20%20%20%20sum%7Bt%20in%20time%7D%20electricity_price%5Bt%5D%20*%20energy_sold%5Bt%5D%20*%20selling_price_ratio%3B%0A%20%20%20%20%20%20%20%20%0A%23%20balance%20%3D%20supply%20-%20demand%20%2B%20purchase%20-%20sold%20%0As.t.%20def_balance%7Bt%20in%20time%7D%3A%20%0A%20%20%20%20%20%20%20%20energy_balance%5Bt%5D%20%3D%20supply%5Bt%5D%20-%20demand%5Bt%5D%20%2B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20energy_purchase%5Bt%5D%20-%20energy_sold%5Bt%5D%3B%0A%20%20%20%20%20%20%20%20%0A%23%20new%20storage%20level%20%3D%20old%20storage%20level%20%2B%20balance%0As.t.%20def_storage_state%7Bt%20in%20time%3A%20t%3E1%7D%3A%20%0A%20%20%20%20%20%20%20%20storage_level%5Bt%5D%20%3D%20storage_level%5Bt-1%5D%20%2B%20energy_balance%5Bt%5D%3B%0A%20%20%20%20%20%20%20%20%0A%23%20storage%20is%20filled%2050%25%20at%20beginning%20%0As.t.%20def_storage_initial%7Bt%20in%20time%3A%20t%3D1%7D%3A%20%0A%20%20%20%20%20%20%20%20storage_level%5Bt%5D%20%3D%200.5%20*%20storage_capacity%3B%0A%0A%23%20storage%20must%20be%20filled%20at%20least%2050%25%20in%20the%20end%0As.t.%20res_storage_final%7Bt%20in%20time%3A%20t%3Dcard(time)%7D%3A%20%0A%20%20%20%20%20%20%20%20storage_level%5Bt%5D%20%3E%3D%200.5%20*%20storage_capacity%3B%0A%20%20%20%20%20%20%20%20%0A%23%20storage%20may%20be%20filled%20at%20most%20to%20storage%20capacity%0As.t.%20res_storage_capacity%7Bt%20in%20time%7D%3A%20%0A%20%20%20%20%20%20%20%20storage_level%5Bt%5D%20%3C%3D%20storage_capacity%3B%0A%0A%23%20limit%20sold%20energy%20to%20prevent%20unbounded%20model%0As.t.%20res_energy_sold%7Bt%20in%20time%7D%3A%0A%20%20%20%20%20%20%20%20energy_sold%5Bt%5D%20%3C%3D%20999%3B%0A%0A%23%20SOLVE%0Asolve%3B%0A%0A%23%20OUTPUT%0Aprintf%20%22RESULT%5Cn%5Cn%22%3B%0Aprintf%20%22Costs%3A%20%25%2B5.1f%20EUR%5Cn%22%2C%20costs%3B%0Aprintf%20%22%20%20%20%20%20(%20%25%2B5.1f%20EUR%20for%20%25g%20kWh%20storage%20at%20%25g%20EUR%2FkWh%2C%20%5Cn%22%2C%20storage_cost*storage_capacity%2C%20storage_capacity%2C%20storage_cost%3B%0Aprintf%20%22%20%20%20%20%20%20%20%25%2B5.1f%20EUR%20for%20purchasing%20%25g%20kWh%2C%5Cn%22%2C%20sum%7Bt%20in%20time%7D%20electricity_price%5Bt%5D%20*%20energy_purchase%5Bt%5D%2C%20sum%7Bt%20in%20time%7D%20energy_purchase%5Bt%5D%3B%0Aprintf%20%22%20%20%20%20%20%20%20%25%2B5.1f%20EUR%20from%20selling%20%25g%20kWh)%5Cn%5Cn%22%2C%20-%20sum%7Bt%20in%20time%7D%20selling_price_ratio%20*%20electricity_price%5Bt%5D%20*%20energy_sold%5Bt%5D%2C%20sum%7Bt%20in%20time%7D%20energy_sold%5Bt%5D%3B%0Aprintf%20%22%252s%3A%5Ct%256s%5Ct%256s%5Ct%255s%20%7C%20%255s%5Ct%255s%5Ct%255s%5Cn%22%2C%20%0A%20%20%20%20%20%20%20%22t%22%2C%20%22demand%22%2C%20%22supply%22%2C%20%22price%22%2C%20%22Level%22%2C%20%22Purch%22%2C%20%22Sold%22%3B%0Aprintf%20%22------------------------------%2B----------------------%5Cn%22%3B%0Aprintf%7Bt%20in%20time%7D%3A%20%22%252i%3A%5Ct%256g%5Ct%256g%5Ct%255g%20%7C%20%255g%5Ct%255g%5Ct%255g%5Cn%22%2C%20%0A%20%20%20%20%20%20%20t%2C%20demand%5Bt%5D%2C%20supply%5Bt%5D%2C%20electricity_price%5Bt%5D%2C%20storage_level%5Bt%5D%2C%20%0A%20%20%20%20%20%20%20energy_purchase%5Bt%5D%2C%20energy_sold%5Bt%5D%3B%0Aprintf%20%22------------------------------%2B----------------------%5Cn%22%3B%0Aprintf%20%22%25s%3A%5Ct%256g%5Ct%256g%5Ct%255s%20%7C%20%255s%5Ct%255g%5Ct%255g%5Cn%22%2C%20%22Sum%22%2C%20%0A%20%20%20%20%20%20%20sum%7Bt%20in%20time%7D%20demand%5Bt%5D%2C%20sum%7Bt%20in%20time%7D%20supply%5Bt%5D%2C%20%22---%22%2C%20%22---%22%2C%0A%20%20%20%20%20%20%20sum%7Bt%20in%20time%7D%20energy_purchase%5Bt%5D%2C%20sum%7Bt%20in%20time%7D%20energy_sold%5Bt%5D%3B%0Aprintf%20%22%5Cn%5Cn%22%3B%0A%20%20%20%20%20%20%20%0A%23%20DATA%0Adata%3B%0A%0Aparam%20storage_cost%20%3A%3D%203%3B%20%23%20storage%20capacity%20cost%20(EUR%2FkWh)%20%0Aparam%20selling_price_ratio%20%3A%3D%200.5%3B%20%23%20ratio%20of%20electricity%20price%20(1)%20for%20sold%20energy%0A%0Aparam%3A%20time%3A%20supply%20%20demand%20electricity_price%20%3A%3D%0A%20%20%20%20%20%20%201%20%20%20%20%200%20%20%20%20%20%20%200%20%20%20%20%20%200%0A%20%20%20%20%20%20%202%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%202%0A%20%20%20%20%20%20%203%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%202%0A%20%20%20%20%20%20%204%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%202%0A%20%20%20%20%20%20%205%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%202%0A%20%20%20%20%20%20%206%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%202%0A%20%20%20%20%20%20%207%20%20%20%20%201%20%20%20%20%20%20%202%20%20%20%20%20%201%20%23%20supply%20begins%0A%20%20%20%20%20%20%208%20%20%20%20%203%20%20%20%20%20%20%205%20%20%20%20%20%202%0A%20%20%20%20%20%20%209%20%20%20%20%206%20%20%20%20%20%20%202%20%20%20%20%20%202%0A%20%20%20%20%20%2010%20%20%20%20%205%20%20%20%20%20%20%201%20%20%20%20%20%201%0A%20%20%20%20%20%2011%20%20%20%20%208%20%20%20%20%20%20%201%20%20%20%20%20%201%0A%20%20%20%20%20%2012%20%20%20%20%209%20%20%20%20%20%20%205%20%20%20%20%20%202%0A%20%20%20%20%20%2013%20%20%20%20%209%20%20%20%20%20%20%200%20%20%20%20%20%201%0A%20%20%20%20%20%2014%20%20%20%20%206%20%20%20%20%20%20%200%20%20%20%20%20%201%0A%20%20%20%20%20%2015%20%20%20%20%208%20%20%20%20%20%20%200%20%20%20%20%20%201%0A%20%20%20%20%20%2016%20%20%20%20%207%20%20%20%20%20%20%200%20%20%20%20%20%201%0A%20%20%20%20%20%2017%20%20%20%20%206%20%20%20%20%20%20%206%20%20%20%20%20%205%20%23%20demand%20peak%2C%20price%20peak%20begins%0A%20%20%20%20%20%2018%20%20%20%20%203%20%20%20%20%20%20%209%20%20%20%20%20%205%0A%20%20%20%20%20%2019%20%20%20%20%202%20%20%20%20%20%20%206%20%20%20%20%20%205%20%23%20price%20peak%20ends%0A%20%20%20%20%20%2020%20%20%20%20%201%20%20%20%20%20%20%203%20%20%20%20%20%201%20%23%20supply%20ends%0A%20%20%20%20%20%2021%20%20%20%20%200%20%20%20%20%20%20%204%20%20%20%20%20%201%0A%20%20%20%20%20%2022%20%20%20%20%200%20%20%20%20%20%20%204%20%20%20%20%20%201%0A%20%20%20%20%20%2023%20%20%20%20%200%20%20%20%20%20%20%201%20%20%20%20%20%201%0A%20%20%20%20%20%2024%20%20%20%20%200%20%20%20%20%20%20%200%20%20%20%20%20%201%3B%0Aend%3B%0A|Try SOforSG online]], directly in the browser. +  * {{:software:soforsg.mod|SOforSG.mod}} (Storage Optimization for Smart Gridis a minimal example of a linear optimization problem, dealing for dimensioning and operation of a lossless energy storageIts goal is to minimize operational costs of the household for energy purchaseFor brevity, the model is quite minimalistic. 
-  * {{:software:soforsg.mod|SOforSG.mod}} that can be solved offline using [[http://www.gnu.org/software/glpk/|GLPK]], an open-source linear programming solver. It features more output as it is not limited in length by URL limits+  * {{:software:stockcutting.mod|StockCutting.mod}}  
- +  [[https://ojdo.org/glpk/#PQKgBAKg8gIjA0YCGYDGAbJBnLYD2AZmABZIBOAJmAJYB2WALkragKa6FgBerZeAtHlqswAa1pIADliSpRYSXwBG6VgFtcIYAFgAUHtBgA6mWoMGrWjSsBxAHIBVMAFkkDYgAU+AczBKAnmAAgrQUZKwA7i5IosR4plYAPGpIeAAC3rQArgB08d4AfGBaegbgAMLEAG5uSOhgFOyopkrsyGiYOPhEdIzMbBxEPHyCwmIS0rLyingq6lh6YEsUWSIMeJB4FBQ5YAASIlhxEbjubu0R1I0d2IPI6N7xZsQaYPzWGFkUdL516ItLJTYVhUIR+Mj9YjIUJ+PBZGHxBr+CRqaioBQ+CFqVG0XzvAh0KhmBrUAgE1BZdAMAFgdZgLB4dBVEQzOavOi04giCBbKgYW67ZzxESsAAesgY6H8iHca2oahE4QAjllqOEKDSApz2CI6o9TO5XnSGUyRL0mCw2pxWaojaQGH5WOghL46bKaTztjcut4+CdkLhmGAxZIhJYGNQ6mACPDUBGwZxZRjZrb6dQeDlSrolmAAEqsAi8SxsABcNMqNSY9QAarsABQARgAnAAOAAMAEpEHtyFRxFIZHJk2ysIgoJJdvmsLsAEwtxANgAsbZn-CXDYbuxK+l0knISDUYCsRTb1gs3l4AG4s3usWBnd4ZwB9KwlgC897w3jrtA7YGAn7fjOHbXjut4HmIYDvtGzrxHWD7Pr+oF6OBh5IAA3gAVtYYCbjktAAL5QR+M7FOAdbyAA1EeYDUQ2f7UaRIDkVRNF0W8YCYQxuHIbu+6HkoxFgG2OQAKzFDBeBwVgWRqFhOF4YRyAANqYQAuiBWY1GQYCiuhilEUodDkP4vEpKK8rpiIsyYSW9KyfJHIGSp6kSaKqlqbx04MLsqBSHZMlydhTk5PhRFIB5bmRYkH5KF5jLMrxih0AwRAAEQAEJQA4dgwHZACk1AADq0GliBxShCSpWAaUAMpQAAMtWACiBXFaViCBY5VjORFrngO56mgcltDVWlNhBB4dlLIVJVlX4HFdcFPWhUpfVqVFQ2VSl6UTR4YB1uEmARsyHYFTOYkEPl+VzYgdaCe8S0Kat4WRQNHl-uADZtqeAEVbuVVEN1uEvTVhUFVghX5Vgt1gHoACQmGIAjpK6ZFb4fqespWGldZpcG6BYCI+PzQj63wCjRCDRtGPCdqOMdvjTpEzVNW8RQtRJfxNHQQ2LagYYqCkLiazENQuCoawFg6XSQtSSzKC3hGFKYDp5r9CI256JYFCgUAA|Try TODD online]]: Knapsack problems with variable size 
-===== Cutting stock problem ===== +  [[https://ojdo.org/glpk/#MQAgIgEgsgcgMgLhAQRAWwJYDsNoIYA2IAFGlgQJQgAmGAzgC4BOGAxgyABYCmeD2AcxKQqWbgwDuAeyYBrEFIAO-TAC8+GKVnRTq3AgFgAUKDh5GIAK6LqfbtSQAGAMwpLAyxYBMjgIwA2Y1BkSwZOGSQAKylOPCwxOgA6ahkAMzEmAAEGSzRk7iCQODZuLDpuJABhSscQAB5OBgZFBAB6VtYmXn4AN25WKTQ0LSSZAVbFSwAjAjYU-GxW1W4mKVbfRMdWgD5jQoBVAGVkAHEAUUKBAkU6KSIAWjQaTjICROHqPZMQAHkANTOACU-gBJM4AdUKABVOPR0BgAB72e7YBjcAQrECzMR4JggRSrARMPBDQQkKAguAABSoH30IFS2GodBAYW46DwCNwuRAXT6WEsBW+DCUdykAgAniA4tQQHQMMsFKlpTR6Mw2BweBosEIxJIZPJUjIVQIMPy5eIlXKpJYmKwhaAZTRuPgsLK+kx+PakiAYey6URWHFnawMHoQBJYaxOM7XczWVIQAN4v0OE7CsnygBHQVYBgEKV6UPhqQe1k8LFSIP8LTSt1yhXsqTKtkgKaWDAEDh66RyRJBaGwlncBEkxQEdkDNDcFkSDBhcvso0EAhSOc6kjIQ6VEEg+64jh0WTiaPSrXUCiFHsGkBEvCKGME7j3AZ6WWoxOt2wMPAW9iabQ+EXEBSllZtgMZCdEl9CsMxkDIWWIZAABpwFQiBUIAaSocJPHZKYMCELV+A3RgNBGVC6GsRQZDRWUpilX86HwFdMUKMia20bBgPtPNMWIAAxChoOQFdeRdPBsDJD0vRnJMtB-bjuHnHg8QIoRiDOVCTgoVDCmnWgeWIEEqCdZjCCIYgACFUMqVCACkqD0OM6FQyM2BjfApWIFIQCwKRNTwPoEzbbgqHYjQ6EZexUIwZUCWbec8Bmbh+xMQpKikRgWSrVhbQZY08CoTNmEsf8N0UDBFDkp0pioDEMm1IjuhAbjiMEdif04n1AW4flBValkGpWOxZTCVZ3BjOhItSCUyWcmUfSpKqHXkspSv-WsBmytb5QscDfyDRQ8FDBgJRRN1uGqy683xA8SF4T1OF7WQ6FMt1CkO+8Tvnc69GuvRbuOz0SDwahaE4wh8RYe0rQIXEMTxWgSTRJhULBiGAMIQpHrCF6WSNPFfznPQ8XCCddLbALPMsLsqtmewIxU4DygEadbonHUwmgiAWsuUoRs4+Sdq8kAelxRjhg3drSK6gCfV5rpUNbdSuG6MlOvIsppS6JMtWqxhUPbDhV2rRnUltNkLDwCQ8ClVJVieL8JPrXjUaSL5QBgM4oXBH5AUwkATkBZAqQgQpiEJ1qsEmDhvzwSjuHwgKRSecDILCwo4HEd3nX8tExZWWTXKxbA5LocIJBA6gMR9GBcimFYWQrtdq4xLFSgEMIfQHb4QH7gf+4AVkHweABZR-75xCn75B7nnhfF6sxeF8qFf7jAGfJ8ngAfbeQAAHS3-f+9aVx94P6e+5PkA95vw-j-3s514E9eTkf7e768U+B68D-R68AfQerQ-7X3Hv3AA+she4e57gABab4QKgYvTCH8IHzwQQPA+SCcHQPuPZDBIAx7HwgJgk+E8QC9y+IUQ4PtDjGHKBwGSI4ADcDDLT2HbnOMI3FmEIiTKsOgLI+EsJAKASwboMBdHYIzAA3j0XwqEeheAAL53SkXQdhHBtoMAgWdaqIAEAAF4QCyIAOTXjkGY1CZjhrEk4tYkAZi+SlEFGYlRbCjDUO+FSZAIcoA+yBPQowwMSTC10dgPojB2a6MZPw7YJjHCiNAJpfYgJWhoEvCE3EYSdEQMiTOBgMSIHizxAkkASSxEkDOGk1oUBwQZKyaEp4R0fpnQgdRFYEDZiYA4OUypoB8BcjQDyGiQiMApXxCtJM95TreXqU0nJTwXECm4BA4iyTqm1IWV8ZpHcuacFkZw7gaj+mbOOfsruMZSBZOMHs24tp7TyKLiOU5iTUJ6FSHgWmHABm3gFvYgCMzjpzPJOCRZxIngLTdM8z0ryQD9I+dwL5PyKmbLuUs8J6zuiwrRAiN5FSkUoq7GiqpqT0k7K8VSz2IA-h+JBMgKycAzjBNKYNCB7ZOwMCOTXE5bZsAS02b4EAJjKoGLhJyklSleWmIUUo1RIBUK1BMfnShRg2WtLmTyjEBK-mSo4GKyc31QXEEpWy1Iq4JDapOZsw1+I1yYgta3U14JUJjPnGaCoYtfD3G2Mo1CYgBAaD6AgBRdR7jKNueq3E7Lpr8CihgewuL4UESwIKqpwqTHQvfNoPhg05QzUTdQJVIq-IBWMGyuxWtk34oRYkzZVahY0QkJibiDy7TsjzS6qNGqsoMDoLIvJ+ibVVJ0SyJ0KzBSIRqYCKNNKfhWXsmcSoUIQQAnYjycClj5AFOiaUDgxBNW-Quv9UC+6GSInxAQTwwK2l-Sume26hRSkYGShTOsspiL-MakLMd0c1ZNTlHLEYxhMA4DUE2KYkQkDGEHmOgA2hY8QL0zEAF1YMgAANThLoIhxtAE0MYfuDhxDk7uBoc8RhhhiQGDQSkFBiB26IFjoQBhhDSH9RWNQyKjD-cqJoFkcQOVYsvBUGlTqtV+9OZXPg8J5R3GABUJBePbzybuop+6IFxJAEp+gHKOxdlk4okT3HMMqcnmprAUSNN5hKTGpTR6zpGflahignib7UdowoBj+GtDMb7XQVjRh+7sd81gNDpaVP8fkf+vhajzNYuIrJxT37BYAWS+57enm6MMbI0FkLAXSN9VceR7jJiou5Bi7wl5taEtkexUBJT2bks6djYW+wGWvj728aASoPwYCHChCHEEMAoTBMKM2x1lrdorHFkLbi-k9CBejgIKQZJJt4idVXJ0YX5ISIYBNrKHq+ioRtAwVb62HWbem2Zdrsps17duoG4NQokheb4RywgcQnk9FizVlR+XR5heSyp4jzWegpb03G+g0VqAg+CwPbD0XiAJzqv+45SAehGKmGorb8GE5i3Qwj-uxHkeo7E9oDHYsjF4Fx5a2TRsieD3rTSnp84CpMFtkwWUQnhW+pE1QDbDJpvjRtAIR80yGJtgM9o41v1svC7XN03A84OmKGqkwQTcnRPo95QDlTePtfcbqCYxzEpnMmco98NnHAXFMHKCQBR9RiORvtS267rdReTSmQYqXz3ejsjtWb-uCutvK96d0q7WvjOu-EycwHJOzcW-k-UExhuY9eFQ1b0ANvpdcp90akFv0QqdLxDb6ChwwzsmRakVMSBU0SxDPQIFz7cSvsmXp-V+bCb2jGp+PAx4xaEAGsKkU0oVyt38lge4yxVhD+veyNVb3oI2+Y3L9pDF8l0H01y6P8qKdt3jyppPRvU-sv1cnzPrWzdq41+H+c2fS69NS4C2s1XPQlBZGPmWQgOJArNwrmFmvooFVrmv9gni-lrC1ibtaI8twJ1sTmqipl8LcAQH0I-j8PsFCFSFgXciwHmMqAAEQHxYCAgsr7BwBQgkEkGEFW4EiohEF9aDaHA0GeL0EEEgCEEwDIYGhIADwACkAAHIkL4MqDOiQPwSyE7AFFDNJguNxJIYfm9DQXpIgXBoVhxihqhqofvMjtrgfscmonIZwM5inrptvhfnKvJshAlnxpVrzvvrrhJp3jLqYZnmwfgQwEQScAClrEgEISIWIWkioSRrYr4Q4lnngQwZwb1P1F6gIcIaISADOiES+BoWRhRlERwYQevLkXkawVkV4ZwVCDIQQHwYPAEaISEextuhFthqFuEQRtxsRuxhkZEVSuwUUcQVgACICFCGcAABoFEhKeFEENRIC7bdokFxpIDQ4JqMwPZTHxABRIASJzGw6xhOhLHDGdFEEgD8H3DOAsh7z8FjwsinHnFnEhGEE9CEGoSEENR3GcFxpPGEH5y0GFFEF5HfErw7GjGgGFxwr4oQGEH7GHHHH7FnGQmXF0AhEqY9A6EDxxSQGcQtbbAVKLjaDA4Q4gQEAO5mKOIqbIlQ53ZokYlsjaDg6Q7b7rFFotb6D4mEmIHIlUmtbEA+oknxqw7JZUDom1AUmbFugtZKbskog0mkkQ5UAMnsgEkeHRE5E-GKl-HylglHG3zQkakXEqEqaEGHC5B3EVYCa-bv54pqLYnaGGkAlxaClw44nmEQK0kdYQ42GIHRbGlgFAlqKskil85tZcl0mSl0GjGcEkFnBgDnDKnZFHRIDB5LFbZIBfpbZgqoTbCOCho+p+peCoR1BpnKK+oKIUDUFYAfEjEqkHFeAlzlnHEXHQnXEKKvHKKvFHSvFbYlm7GcGKn5HFlykEF74C5OFeon4Z7cZ8kA6SYDyglVn8EVnTnVljxCCnECBwlqEDzCa2GtTKjp7IQp58mYlOK+pmK4n4nhpMn7z+rjkWbr7m5G6ImTxbmW4qbtndElk9bgDIBQjIDGDxyiK7KYr1ZfrGIgCCF-Lkp1LgoYqQpYrqbFLaaAVDwgUzqNIQW5J9r5JWaFLFJsqAVjybKgX1JIXZKQU36l734cCAW+BDy4WUo0r3yDzdoDz0VbIUrgWEUkiY41azE2gdo2mJYtTGK2GoD3wACck80E+8vgthVktFYlg838+8aU28lQ0lk8cl28Clk8YAtFIlo8MlKlthZwylo82lalthAktF58g8ulo8V828Jwhlg8xlolthEAtFqlA8VlslthII9lA8FCJlK5IA9kPl-cwq8lF5g8gcwlolJ8vgmWo8-8+8NyyFaASAVOxhhiRiAlIAUl28Q8klIASl28xCAVUlBl28Nlk8Slml5VthSlZlNVAVSldlDV28Bl9VelAVBl3l28oC28ZlzVHVfVIA3Vg1k8dlQVLVk8LlI1o8xV283lE1k8FVo8QVkVk8OFXwoELCQAA|Try DHMNL online]] district heating network optimization problem (MILP) with fixed/variable investment cost tradeoff
- +More [[https://github.com/tum-ens/mathprog-energy-models|MathProg energy models]] on GitHub.
- +
-  * [[https://www3.nd.edu/~jeff/mathprog/mathprog.html?model=%23%20Stock%20Cutting%20Problem%0A%0A%23%20Products%0Aset%20PRODUCTS%3B%0Aparam%20pLength%7BPRODUCTS%7D%3B%0Aparam%20demand%7BPRODUCTS%7D%3B%0A%0A%23%20Raw%20Materials%0Aset%20RAWMATERIALS%3B%0Aparam%20rLength%7BRAWMATERIALS%7D%3B%0Aparam%20avail%7BRAWMATERIALS%7D%3B%0A%0A%23%20Big%20M%20should%20be%20greater%20than%20the%20length%20of%20any%20stock%20piece%0Aparam%20bigM%3B%0Acheck%20%7Br%20in%20RAWMATERIALS%7D%20%3A%20bigM%20%3E%20rLength%5Br%5D%3B%0A%0A%23%20Create%20indexed%20sets%20enumerating%20all%20production%20pieces%0Aset%20Q%7Bp%20in%20PRODUCTS%7D%20%3A%3D%201..demand%5Bp%5D%20%3B%0A%0A%23%20Create%20indexed%20sets%20enumerating%20all%20raw%20material%20pieces%0Aset%20S%7Br%20in%20RAWMATERIALS%7D%20%3A%3D%201..avail%5Br%5D%3B%0A%0A%23%20y%5Bp%2Cq%2Cr%2Cs%5D%20%3D%201%20assigns%20(product%20p%2C%20piece%20q)%20to%20(raw%20material%20r%2C%20piece%20s)%0Avar%20y%7Bp%20in%20PRODUCTS%2C%20q%20in%20Q%5Bp%5D%2C%20r%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20binary%3B%0A%0A%23%20u%5Br%2Cs%5D%20%3D%201%20indicates%20use%20of%20(raw%20material%20r%2C%20piece%20s)%0Avar%20u%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20binary%3B%0A%0A%23%20w%5Br%2Cs%5D%20is%20the%20remainder%20left%20over%20from%20(raw%20material%20r%2C%20piece%20s)%0Avar%20w%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20%3E%3D%200%3B%0A%0A%23%20Assign%20product%20(p%2Cq)%20only%20once%20to%20the%20set%20of%20all%20raw%20materials%20(r%2Cs)%0As.t.%20A%7Bp%20in%20PRODUCTS%2C%20q%20in%20Q%5Bp%5D%7D%20%3A%20sum%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20y%5Bp%2Cq%2Cr%2Cs%5D%20%3D%201%3B%0A%0A%23%20Cut%20enough%20pieces%20to%20exactly%20meet%20the%20demand%20for%20each%20product%0As.t.%20B%7Bp%20in%20PRODUCTS%7D%20%3A%20sum%7Bq%20in%20Q%5Bp%5D%2C%20r%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20y%5Bp%2Cq%2Cr%2Cs%5D%20%3D%20demand%5Bp%5D%3B%0A%0A%23%20Do%20not%20exceed%20the%20length%20each%20piece%20of%20raw%20material%0As.t.%20C%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20%3A%20%0A%20%20%20%20sum%7Bp%20in%20PRODUCTS%2C%20q%20in%20Q%5Bp%5D%7D%20pLength%5Bp%5D*y%5Bp%2Cq%2Cr%2Cs%5D%20%2B%20w%5Br%2Cs%5D%20%3D%20rLength%5Br%5D%3B%0A%20%20%20%20%0A%23%20Determine%20if%20a%20piece%20(r%2Cs)%20of%20raw%20material%20is%20used.%0As.t.%20D%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20%3A%20bigM*u%5Br%2Cs%5D%20%3E%3D%20sum%7Bp%20in%20PRODUCTS%2C%20q%20in%20Q%5Bp%5D%7D%20y%5Bp%2Cq%2Cr%2Cs%5D%3B%0A%0Aminimize%20Pieces%20%3A%20sum%7Br%20in%20RAWMATERIALS%2C%20s%20in%20S%5Br%5D%7D%20rLength%5Br%5D*s*u%5Br%2Cs%5D%3B%0A%0Asolve%3B%0A%0Aprintf%20%22Cutting%20Plan%5Cn%22%3B%0Afor%20%7Br%20in%20RAWMATERIALS%7D%20%3A%20%7B%0A%20%20%20%20printf%20%22%20%20%20%20Raw%20Material%20%25s%20%5Cn%22%2C%20r%3B%0A%20%20%20%20for%20%7Bs%20in%20S%5Br%5D%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20printf%20%22%20%20%20%20%20%20%20%20Piece%20%25s-%25d%20%3A%20Remainder%20%3D%20%255.2f%20%3A%20Cut%20product%20pieces%20%22%2C%20r%2Cs%2C%20w%5Br%2Cs%5D%3B%0A%20%20%20%20%20%20%20%20for%20%7Bp%20in%20PRODUCTS%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%7Bq%20in%20Q%5Bp%5D%20%3A%20y%5Bp%2Cq%2Cr%2Cs%5D%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20printf%20%22%25s-%25d%20%22%2C%20p%2C%20q%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20printf%20%22%5Cn%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20printf%20%22%5Cn%22%3B%0A%7D%0A%0Aprintf%20%22Production%20Plan%5Cn%22%3B%0Afor%20%7Bp%20in%20PRODUCTS%7D%20%3A%20%7B%0A%20%20%20%20printf%20%22%20%20%20%20Product%20%25s%20%5Cn%22%2C%20p%3B%0A%20%20%20%20for%20%7Bq%20in%20Q%5Bp%5D%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20printf%20%22%20%20%20%20%20%20%20%20Piece%20%25s-%25d%20%3A%20Cut%20from%20stock%20piece%20%22%2C%20p%2C%20q%3B%0A%20%20%20%20%20%20%20%20for%20%7Br%20in%20RAWMATERIALS%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%7Bs%20in%20S%5Br%5D%20%3A%20y%5Bp%2Cq%2Cr%2Cs%5D%7D%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20printf%20%22%25s-%25d%20%22%2C%20r%2C%20s%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20printf%20%22%5Cn%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20printf%20%22%5Cn%22%3B%0A%7D%0A%0Adata%3B%0A%0Aparam%20bigM%20%3A%3D%2020%3B%0A%0Aparam%3A%20PRODUCTS%3A%20pLength%20demand%20%3A%3D%0A%20%20%20%20%20%20%20%20'7m'%20%20%20%20%20%20%20%207%20%20%20%20%20%20%20%203%0A%20%20%20%20%20%20%20%20'6m'%20%20%20%20%20%20%20%206%20%20%20%20%20%20%20%202%0A%20%20%20%20%20%20%20%20'4m'%20%20%20%20%20%20%20%204%20%20%20%20%20%20%20%206%0A%20%20%20%20%20%20%20%20'3m'%20%20%20%20%20%20%20%203%20%20%20%20%20%20%20%201%20%3B%0A%20%20%0Aparam%3A%20RAWMATERIALS%3A%20rLength%20avail%20%3A%3D%20%0A%20%20%20%20%20%20%20'15m'%20%20%20%20%20%20%2015%20%20%20%20%20%20%20%204%0A%20%20%20%20%20%20%20'10m'%20%20%20%20%20%20%2010%20%20%20%20%20%20%20%205%20%3B%0A%20%20%0Aend%3B%0A|Try StockCutting online]] +
-  * {{:software:stockcutting.mod|StockCutting.mod}} that can be solved offline using GLPK. +
  
 ===== Resources ===== ===== Resources =====
  
-  * [[https://www3.nd.edu/~jeff/mathprog/|MathProg online]], solve (small) optimization models directly in the browser. +  * **[[https://ojdo.org/glpk|ojdo.org GLPK online]]**, solve (small) optimization models directly in the browser; my personal instance of [[https://cocoto.github.io/glpk-online/|cocoto's GLPK online]], using [[https://github.com/hgourvest/glpk.js|glpk.js]] by hgourvest
-  * [[http://lipas.uwasa.fi/~tsottine/lecture_notes/or.pdf|Operations research with GNU Linear Programming Kit]]. Sottinen, Tommi (2009). ORMS1020 course notes. Department of Mathematics and Statistics, University of Vaasa, Finland. +  * [[http://lipas.uwasa.fi/~tsottine/lecture_notes/or.pdf|Operations research with GNU Linear Programming Kit (PDF)]]. Sottinen, Tommi (2009). ORMS1020 course notes. Department of Mathematics and Statistics, University of Vaasa, Finland. 
-  * [[http://www.cs.unb.ca/~bremner/docs/glpk/gmpl.pdf|Modeling Language GNU MathProg]] Language Reference, Draft Edition, for GLPK Version 4.34, December 2008.+  * [[http://www.cs.unb.ca/~bremner/docs/glpk/gmpl.pdf|Modeling Language GNU MathProg (PDF)]] Language Reference, Draft Edition, for GLPK Version 4.34, December 2008.
   * [[http://sourceforge.net/projects/winglpk/files/winglpk/|GLPK for Windows]] hosts binaries of GLPK.   * [[http://sourceforge.net/projects/winglpk/files/winglpk/|GLPK for Windows]] hosts binaries of GLPK.
software/mathprog.txt · Zuletzt geändert: 2021/09/08 13:21 von ojdo