Teräsrakenteiden Diskreetti Optimointi
Huusko, Jaakko (2021)
Huusko, Jaakko
2021
Rakennustekniikan DI-ohjelma - Master's Programme in Civil Engineering
Rakennetun ympäristön tiedekunta - Faculty of Built Environment
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-05-18
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104223321
https://urn.fi/URN:NBN:fi:tuni-202104223321
Tiivistelmä
Diskreetillä optimoinnilla tarkoitetaan optimointitehtävää, missä yksi tai useampi suunnittelumuuttujista saa diskreettejä arvoja, kuten kokonaislukuja tai binäärisiä arvoja. Tavanomaiset teräsrakenteet muodostuvat teollisuudessa yleisesti käytetystä standardiprofiileista, joka tekee suunnittelutehtävästä diskreetin. Diskreettien optimointitehtävien haasteena on hakuavaruuden laajuus, sillä sen suuruus kasvaa eksponentiaalisesti käytettävissä olevien profiilien mukaan.
Työssä tarkastellaan erilaisia menetelmiä lähestyä diskreettiä optimointiongelmaa käyttäen apuna kirjallisuudessa yleisesti käytettyjä ristikkorakenteita. Työn teoriaosuudessa käydään läpi matemaattisen optimoinnin käsitteitä sekä tehtävien ratkaisemiseen käytettyjen algoritmien toimintaperiaateet.
Työssä tarkastellaan eurokoodin mukaisesti mitoitetun tasoristikon geometriaoptimointia. Liitosten mitoitus suoritetaan geometriaoptimoinnin kanssa samanaikaisesti. Eurokoodin mukaiset sauvan ja liitoksen kestävyysehdot esitetään muodostettaessa optimointitehtävän rajoitusehtoja. Optimointitehtävän kohdefunktiona käytetään ristikon massaa.
Ristikko optimoidaan kahdessa vaiheessa. Ensimmäisessä vaiheessa tehtävä relaksoidaan ja ratkaistaan jatkuvien muuttujien avulla. Toisessa vaiheessa ratkaisu diskretoidaan käyttäen indeksimuuttujia. Optimoidun ristikon massa jakautuu 50-30-20 -suhteessa ylä- ja alapaarteen sekä uumasauvojen kesken. Jatkuvan tehtävän ratkaisu on noin 10 % kevyempi kuin paras diskreetti ratkaisu. Määrääviksi rajoitusehdoiksi muodostuu lähes kaikissa tapauksissa jokin liitoksen geometriaehdoista tai yläpaarteen stabiilisuus.
Tehtävien ratkaisemiseen käytettiin Python -ohjelmointikielellä kehitettyä optimointikehystä. Algoritmien implementoimisessa hyödynnettiin DEAP (Distributed Evolutionary Algorithms in Python) sekä COIN-OR (Computational Infrastructure for Operations Research) julkaisemia avoimen lähdekoodin ratkaisijoita. Discrete optimization is a branch of mathematical optimization, where some or all of the design variables get discrete values, such as integers or binary values. Common steel structures are assembled using standardized profiles which makes the optimization problem discrete. The challenge of discrete problems is the size of the search space, which grows exponentially with respect to the size of the available profiles.
Different methods for approaching discrete optimization problems are discussed using commonly used benchmark structures for comparing the results. Common terminology of mathematical optimization and the algorithms used in this study are expressed in the theory section of this study.
Geometry optimization of one-span planar steel truss according to Eurocodes is discussed. Truss’ joints are designed simultaneously during geometry optimization. Steel member design and joint strength formulas according to Eurocodes are represented while formulating optimization problem’s constraints. The weight of the truss is used as the optimization problem’s objective function.
A two-stage optimization process is used to solve the discrete truss optimization problem. In the first phase the problem is relaxed and continuous variables are used to solve the problem. The second phase consist of discretizing the continuous solution using index variables. Continuous solution is approximately 10 % lighter than the best discrete solution. In most cases joint geometry or member stability constraints define the optimal solution.
Problems are solved using optimization framework developed using Python programming language. Optimization solvers are implemented using DEAP (Distributed Evolutionary Algorithms in Python) and COIN-OR (Computational Infrastructure for Operations Research) open source optimization libraries.
Työssä tarkastellaan erilaisia menetelmiä lähestyä diskreettiä optimointiongelmaa käyttäen apuna kirjallisuudessa yleisesti käytettyjä ristikkorakenteita. Työn teoriaosuudessa käydään läpi matemaattisen optimoinnin käsitteitä sekä tehtävien ratkaisemiseen käytettyjen algoritmien toimintaperiaateet.
Työssä tarkastellaan eurokoodin mukaisesti mitoitetun tasoristikon geometriaoptimointia. Liitosten mitoitus suoritetaan geometriaoptimoinnin kanssa samanaikaisesti. Eurokoodin mukaiset sauvan ja liitoksen kestävyysehdot esitetään muodostettaessa optimointitehtävän rajoitusehtoja. Optimointitehtävän kohdefunktiona käytetään ristikon massaa.
Ristikko optimoidaan kahdessa vaiheessa. Ensimmäisessä vaiheessa tehtävä relaksoidaan ja ratkaistaan jatkuvien muuttujien avulla. Toisessa vaiheessa ratkaisu diskretoidaan käyttäen indeksimuuttujia. Optimoidun ristikon massa jakautuu 50-30-20 -suhteessa ylä- ja alapaarteen sekä uumasauvojen kesken. Jatkuvan tehtävän ratkaisu on noin 10 % kevyempi kuin paras diskreetti ratkaisu. Määrääviksi rajoitusehdoiksi muodostuu lähes kaikissa tapauksissa jokin liitoksen geometriaehdoista tai yläpaarteen stabiilisuus.
Tehtävien ratkaisemiseen käytettiin Python -ohjelmointikielellä kehitettyä optimointikehystä. Algoritmien implementoimisessa hyödynnettiin DEAP (Distributed Evolutionary Algorithms in Python) sekä COIN-OR (Computational Infrastructure for Operations Research) julkaisemia avoimen lähdekoodin ratkaisijoita.
Different methods for approaching discrete optimization problems are discussed using commonly used benchmark structures for comparing the results. Common terminology of mathematical optimization and the algorithms used in this study are expressed in the theory section of this study.
Geometry optimization of one-span planar steel truss according to Eurocodes is discussed. Truss’ joints are designed simultaneously during geometry optimization. Steel member design and joint strength formulas according to Eurocodes are represented while formulating optimization problem’s constraints. The weight of the truss is used as the optimization problem’s objective function.
A two-stage optimization process is used to solve the discrete truss optimization problem. In the first phase the problem is relaxed and continuous variables are used to solve the problem. The second phase consist of discretizing the continuous solution using index variables. Continuous solution is approximately 10 % lighter than the best discrete solution. In most cases joint geometry or member stability constraints define the optimal solution.
Problems are solved using optimization framework developed using Python programming language. Optimization solvers are implemented using DEAP (Distributed Evolutionary Algorithms in Python) and COIN-OR (Computational Infrastructure for Operations Research) open source optimization libraries.