• Nie Znaleziono Wyników

3. ANALIZY KONSTRUKCJI ZADASZENIA

4.2 MODUŁ EKSPERCKI DO OCENY OBCIĄŻENIA ZADASZENIA ŚNIEGIEM

4.2.2 ROZWIĄZANIE WYKORZYSTUJĄCE PROCESY EWOLUCYJNE

4.2.2.2 PROGRAM EWOLUCYJNY

Algorytmy genetyczne są wygodnym narzędziem do rozwiazywania wielu problemów. Wymagają one jednak modyfikacji pierwotnego zadania do postaci binarnej, co może być bardzo skomplikowane. Zamiast tego można zastosować inne podejście – zmienić reprezentację chromosomową z binarnej na rzeczywiste struktury danych i dostosować do nich operatory genetyczne. Metody takie gdzie nie modyfikuje się zadania, a algorytm, zostały nazwane w [19] programami ewolucyjnymi.

300

Liczba iteracji potrzebna do znalezienia rozwzania Czas potrzebny do znalezienia jednego rozwzania [s]

Rys. 154 Zależność czasu i ilości iteracji potrzebnych do znalezienia pojedynczego rozwiązania od liczebności populacji

czas

Ilość iteracji

Liczebność populacji

Podstawowy schemat działania takich programów jest identyczny z przedstawionym na rysunku 151 działaniem algorytmu genetycznego. Operacje wykonywane dostosowane są jednak do zaprogramowanej struktury rozwiązania – jego chromosomowej reprezentacji. Współczesne techniki programowania obiektowego dają w zasadzie nieograniczone możliwości definiowania takiego chromosomu, gdzie pojedynczym genem może być liczba, wektor, macierz złożone z liczb całkowitych, rzeczywistych lub nawet zespolonych.

By lepiej pokazać schemat działania i możliwości budowy struktury programu ewolucyjnego posłużono się przykładem. Problemem do rozwiązania będzie dobranie optymalnych przekrojów zdefiniowanej konstrukcji pod konkretne obciążenie. Zagadnienie to z uwagi na różnorodność przekrojów oraz ilość elementów w konstrukcji jest trudne do zakodowania w postaci binarnej, co komplikuje zastosowanie klasycznego algorytmu genetycznego. Znacznie łatwiejsze jest posłużenie się złożoną strukturą danych i dostosowanie do niej operatorów genetycznych. Działający kod napisano w języku obiektowym C++.

W każdym zadaniu optymalizacyjnym musimy określić czym będziemy się kierowali w procesie doboru kolejnych rozwiązań – musimy zdefiniować funkcje oceny. Zastosowanie złożonej struktury danych w programach ewolucyjnych pozwala na dowolne przyjęcie takich funkcji, przy jednoczesnej prostocie ich stosowania, co jest wielką zaletą. W przykładzie tak jak w projektowaniu, dążymy do jak najmniejszego przekroju przy spełnieniu warunków nośności lub użytkowania. Założono, że przekrój został dobrze dobrany, jeżeli jego wykorzystanie mieści się w zakresie 80÷99 %. Należy jednak zwrócić uwagę, że przy zmianie przekrojów, w konstrukcji zmienia się również ich ciężar własny. Skutkuje to zmianami sił wewnętrznych we wszystkich elementach, co ma wpływ na ich wytężenie. Fakt ten wymusza każdorazowo po zmianie przekroju, przeliczenie konstrukcji. Dlatego też, zaimplementowano w programie moduł obliczeniowy wykorzystujący macierzową metodę przemieszczeń (MMP) dla układów prętowych [20], a w strukturze rozwiązania zawarto informacje o konstrukcji, niezbędne do jej przeliczenia. Na rysunku 155 przedstawiono elementy składowe pojedynczego rozwiązania.

Dla tak przyjętej struktury rozwiązań zdefiniowano odpowiednie operatory genetyczne. Modyfikacjom podlegają numery zastosowanych przekrojów dla danych elementów, gdzie numer odpowiada charakterystykom w zdefiniowanej wcześniej tablicy. W wyniku procesu krzyżowania utworzony zostaje potomek z dwojga wybranych w drodze turnieju losowego rozwiązań. Jego genotyp zbudowany jest z najlepiej ocenionych przekrojów dla danych elementów rodziców. Takie podejście pozwala na szybkie znalezienie dobrego rozwiązania.

Drugi operator – mutację – zdefiniowano jako zmniejszenie numeru przekroju losowego elementu konstrukcji o jeden stopień. Powstałe nowe rozwiązania, po przeliczeniu podlegają ocenie, a następnie na drodze sukcesji elitarnej (wyborze najlepszych chromosomów z potomków i rodziców) wybierane są osobniki do reprodukcji. Dodatkowo wprowadzane jest kilka nowych losowych rozwiązań w celu zwiększenia różnorodności genotypów w populacji. Nowe pokolenie zostaje rodzicami i cały proces jest kontynuowany do momentu, aż wszystkie elementy będą charakteryzowały się odpowiednim wytężeniem przekroju.

Ostateczną weryfikacją programu jest sprawdzenie go w praktyce. Test wykonano na dwóch modelach konstrukcji. Populację początkową stanowiły losowo wygenerowane rozwiązania zgodnie z zadanymi schematami. Pierwszy z nich to wspornik o długości 20 [m], złożony z 20 elementów i obciążony ciężarem własnym oraz siłą skupioną na końcu (rys. 156).

Przekroje

Rys. 155 Informacje zawarte w pojedynczym rozwiązaniu

Rys. 156 Schemat modelu wspornika użytego do testu

20 [m]

150 [kN]

Jako tablicę przekrojów, wykorzystano grupę profili HEB. W wyniku procesu optymalizacji uzyskano dobór przekrojów pokazany na wizualizacji na rysunku 157. Wytężenie elementów zestawiono w tabeli 15. Poprawność otrzymanych w wyniku analiz sił wewnętrznych potwierdzono niezależnymi obliczeniami.

Za drugi przykład posłużył schemat belki wolnopodpartej, również podzielonej na 20 elementów, o łącznej długości 20 [m]. Obciążenie w tym wypadku stanowiły ciężar własny oraz siła skupiona w środku rozpiętości (rys. 158).

W wynik działania programu – dobór przekrojów grupy HEB – pokazano na rysunku 159, a wytężenie elementów zestawiono w tabeli 16. Poprawność obliczeń zweryfikowano niezależnym sprawdzeniem. Jak

wynika z analizy wykorzystanie przekrojów elementów 2 i 19 wynosi poniżej 80%, co nie spełnia założonych kryteriów. Spowodowane jest to jednak brakiem zdefiniowanego przekroju pośredniego w tablicy, a nie działaniem algorytmu. Przekrój o stopień mniejszy, użyty dla elementów 1 i 20, gdzie siły wewnętrzne są mniejsze, wykorzystany jest w

Rys. 157 Wizualizacja dobranych przekrojów

100 [kN]

20 [m]

Rys. 158 Schemat modelu belki wolnopodpartej użytej do testu

Nr elementu Wytężenie

Rys. 159 Wizualizacja dobranych przekrojów

Należy zwrócić uwagę, że dla przedstawionych konstrukcji zastosowanie programu ewolucyjnego nie jest najprostszą i najbardziej efektywną metodą optymalnego dobierania przekrojów konstrukcji. Przykład ten natomiast dobrze pokazuje zasadę działania programu ewolucyjnego. Opisane postępowanie daje bardzo duże możliwości rozwiązywania przeróżnych zagadnień wymagających optymalizacji. Odpowiednie określenie funkcji oceny i operatorów genetycznych może posłużyć do optymalnego dobierania materiałów, elementów, kształtu konstrukcji jak również do określenia obciążenia działającego na strukturę. W tym ostatnim celu napisano moduł ekspercki pozwalający na określenie ilości i rozłożenia śniegu na zadaszeniu stadionu PGE Arena w Gdańsku.