Metody sztucznej inteligencji, takie jak algorytmy ewolucyjne, sztuczne sieci neuronowe lub systemy rozmyte są dosyć powszechne w elektronice, finansach, logistyce lub automatyce. Zastanawiająca jest więc nieufność i niechęć branży „mechanicznej” do stosowania narzędzi z grupy tzw. metod miękkich. A może to właśnie owa „miękkość” tak zniechęca inżynierów?
Inżynierowie traktują te metody niezwykle podejrzliwie ponieważ obawiają się tego nieznanego, nieprecyzyjnie zdefiniowanego narzędzia, które zbyt często korzysta z funkcji random – losowania na chybił trafił. Praca w przemyśle nauczyła nas bowiem nie wierzyć w ślepy los. Chcemy przewidzieć każdą ewentualność, przeanalizować wszystkie możliwe warianty i wyeliminować lub zminimalizować prawdopodobieństwo wystąpienia usterki spowodowanej działaniem czynników losowych. I nagle mamy zacząć korzystać z narzędzi, programów komputerowych, które korzystają z funkcji random – losuj? Nierzadkie jest również przekonanie, że „sztuczna inteligencja” jest zagrożeniem dla człowieka, które sprawi, że stanie się on bezużyteczny w pracy. Ale tak, jak wynalezienie koparki, która wykonuje pracę co najmniej kilku osób, nie spowodowało wzrostu bezrobocia, tak i w tym przypadku nie należy się obawiać, że „sztuczna inteligencja” sprawi, że człowiek stanie się zbędny. Postaram się udowodnić dlaczego, ale po kolei. Najpierw kilka słów wyjaśnienia co jest rozumiane pod pojęciem metod sztucznej inteligencji i jak to naprawdę działa.
Ludzka inteligencja pozwala na dostosowanie, zaadoptowanie działania człowieka do okoliczności, w jakich się znajduje. Osoba obdarzona nawet niewielką inteligencją ma świadomość swoich czynów, a także zna swoje ograniczenia. Cechą ludzkiej inteligencji jest również zdolność myślenia abstrakcyjnego, operowania na symbolach i pojęciach abstrakcyjnych. Cechą jak najbardziej ludzką jest również twórczość, rozumiana jako przeciwieństwo odwzorowywania, czyli umiejętność tworzenia rzeczy nowych, dotąd niespotykanych. Sztuczna inteligencja, o której tutaj mowa to „inteligencja obliczeniowa”. Znajduje ona zastosowanie wszędzie tam, gdzie nie ma możliwości zdefiniowania jasnego algorytmu działania. Inteligencja obliczeniowa potrafi pracować, podobnie jak ludzie, z danymi niepełnymi lub obarczonymi błędami. Niektóre systemy inteligencji obliczeniowej posiadają również możliwość uczenia się czyli adaptacji do zmieniających się warunków. Wszystkie te metody starają się natomiast w mniejszym lub większym stopniu naśladować zachowanie człowieka lub czerpią inspirację z mechanizmów działania przyrody.
Metody sztucznej inteligencji należą do grupy tzw. metod miękkich lub obliczeń miękkich (soft computing). Inżyniera mogą zainteresować trzy z nich:
- metody wykorzystujące algorytmy ewolucyjne,
- metody bazujące na sztucznych sieciach neuronowych,
- systemy rozmyte wykorzystujące logikę rozmytą (fuzzy logic).
Przygodę ze sztuczną inteligencją proponuję rozpocząć od algorytmów ewolucyjnych i tę właśnie metodę postaram się przybliżyć na kilku następnych stronach.
Algorytmy genetyczne i wywodzące się od nich algorytmy ewolucyjne są metodami optymalizacji globalnej. W przeciwieństwie do wielu popularnych i powszechnie stosowanych metod optymalizacji gradientowej, algorytmy genetyczne pozwalają na prowadzenie poszukiwań optimum w całym obszarze rozwiązań – globalnie. Metody tradycyjne, wyspecjalizowane mają trudności ze znalezieniem globalnego optimum – rozwiązania najlepszego z wszystkich możliwych. Metody analityczne mają tendencję do „utykania” w lokalnym optimum. Innymi słowy, jeżeli zadaniem jest znalezienie najwyższego szczytu ze wszystkich, to metoda analityczna znajdzie najbliższy i utknie w miejscu twierdząc, że to jest najlepsze rozwiązanie.

Algorytmy ewolucyjne pełnymi garściami czerpią z nauk przyrodniczych. Naśladują naturalne procesy ewolucji stosując mechanizmy doboru naturalnego i dziedziczności. Nawet terminologia jest wzięta z biologii. Algorytmy te pracują na „populacji osobników” wyposażonych w chromosomy składające się z genów. Dokonywana jest ocena stopnia przystosowania danego „osobnika” do środowiska, najlepsze z „osobników” stają się „rodzicami” i wydają „potomstwo”. „Potomstwo” tworzy następne pokolenie. Najłatwiej jest jednak wytłumaczyć wszystko na przykładzie. Zatem jeszcze raz, od początku. Zadanie optymalizacji jest proste – rura podparta na obu końcach obciążona jest w połowie siłą. Odległości między podporami są stałe. Strzałka ugięcia zależy zatem od kombinacji średnicy zewnętrznej i wewnętrznej rury.

Cena rury, która powiązana jest z objętością materiału, również zależy od kombinacji średnic zewnętrznej i wewnętrznej. Przy czym, wraz ze wzrostem ceny rury wzrasta jej sztywność, a więc maleje strzałka ugięcia. Należy znaleźć optymalną kombinację, która daje minimalną strzałkę ugięcia, za jak najmniejszą cenę. Jako funkcję optymalizowaną przyjęto więc sumę ważoną strzałki ugięcia i ceny. Zadanie jest banalnie proste, posiada tylko jedno maksimum i można je rozwiązać dowolną metodą optymalizacji. Świetnie jednak nadaje się jako przykład ilustrujący sposób działania algorytmu ewolucyjnego. Wykres przedstawia zależność strzałki ugięcia oraz ceny w zależności od jednej tylko zmiennej – średnicy wewnętrznej rury. Przedstawiona jest również funkcja celu będąca odwrotnością sumy ważonej krzywych przedstawiających ugięcie i cenę.

Jak już wspomniałem algorytm ewolucyjny działa na populacji osobników. W tym zadaniu „osobnikiem” jest rura. Rura jest opisywana przez dwie zmienne średnicę zewnętrzną i średnicę wewnętrzną (materiał oraz długość rury się nie zmieniają). „Chromosom” osobnika (rury) składa się więc z dwóch „genów”, z których jeden opisuje średnicę zewnętrzną, a drugi wewnętrzną. „Chromosom” to po prostu macierz, w której opisane są cechy charakterystyczne konstrukcji. „Geny” to poszczególne komórki macierzy.

Funkcją przystosowania jest odwrotność sumy ważonej strzałki ugięcia i ceny materiału. Im „osobnik” jest lepiej przystosowany tym ten wskaźnik (wartość przystosowania do środowiska) jest większy.
Algorytm buduje więc pierwszą populację. Przyjmijmy, że 20 „osobników”. Są one tworzone przez losowanie. Dla każdego osobnika z populacji obliczana jest wartość funkcji przystosowania. Najlepsze dostają zgodę na reprodukcję – mogą zostać „rodzicami”. Krzyżują się między sobą i dają „potomstwo”. Najprostszy sposób krzyżowania to wymiana jednego genu. Np. potomek dostaje gen odpowiedzialny za średnicę zewnętrzną od jednego rodzica i gen odpowiedzialny za średnicę wewnętrzną od drugiego rodzica.

Tak utworzona populacja potomków zostaje oceniona – obliczone zostaje ich przystosowanie. Najlepsi znowu mogą zostać „rodzicami” i utworzyć kolejne, tym razem już trzecie, pokolenie. I tak do skutku tzn. do momentu zatrzymania algorytmu. Warunkiem zatrzymania może być osiągnięcie zakładanej liczby iteracji algorytmu. Zatrzymanie algorytmu może również nastąpić, gdy przez kilka następujących po sobie iteracji nie zauważa się poprawy czyli wzrostu wartości funkcji przystosowania najlepszych rozwiązań. Można wtedy założyć, że algorytm ewolucyjny osiągnął optimum. Rozwiązaniem zadania jest najlepiej przystosowany osobnik ze wszystkich populacji.
Oczywiście krzyżowanie to nie jedyna operacja jaką przechodzą osobniki. Naukowcy zajmujący się algorytmami ewolucyjnymi wykazują się tutaj dużą wyobraźnią. Osobniki mogą podlegać „mutacji” – losowo wybranemu osobnikowi z populacji nagle zmienia się gen na inny. Bardzo dobrze przystosowane osobniki mogą mieć kilku potomków. Istnieje również coś takiego jak „kara śmierci” – najgorsze rozwiązania są usuwane ze zbioru. Dozwolone jest również „klonowanie” – tworzenie idealnej kopii dobrze przystosowanego osobnika.
Jest udowodnione, że działający w ten sposób algorytm ewolucyjny jest w stanie odnaleźć najlepsze rozwiązanie – optimum globalne. Czas jaki musi minąć, czyli innymi słowy liczba pokoleń algorytmu zależy od stopnia skomplikowania zadania oraz od liczebności populacji (zależy również od parametrów algorytmu, ale to już temat na zupełnie inną opowieść). Przykład ze zginaną rurą przedstawiony powyżej jest banalny i nie warto dla niego uruchamiać algorytmu ewolucyjnego. Dlaczego więc tak rozpisuję się na temat tych algorytmów? Ponieważ są znakomitymi narzędziami mogącymi służyć do optymalizacji konstrukcji. Macierz opisująca konstrukcję nazywana tutaj „chromosomem” nie musi składać się z dwóch zmiennych, może zawierać ich kilkadziesiąt lub więcej. Funkcja przystosowania nie musi występować w postaci precyzyjnie określonego wzoru. W środowiskach naukowych zajmujących się optymalizacją dosyć powszechne jest łączenie ze sobą algorytmów genetycznych bądź ewolucyjnych z metodą elementów skończonych. Algorytm ewolucyjny jest odpowiedzialny za optymalizację natomiast przystosowanie osobników (z których każdy jest propozycją optymalizacji konstrukcji) jest obliczane za pomocą programu MES. Bardzo prężnie w tym obszarze działa grupa naukowców z Politechniki Śląskiej skupiona wokół prof. Tadeusza Burczyńskiego. Prowadzą oni z powodzeniem badania nad sprzężeniem programów MESowskich z programami optymalizacji ewolucyjnej. Poniżej przedstawiam kilka przykładów wykonanych przez dr inż. Mirosława Szczepanika oraz dr inż. Arkadiusza Poteralskiego z Politechniki Śląskiej.
Pierwszy przykład przedstawia optymalizację wspornika ze względu na minimalizację jego masy przy jednoczesnej minimalizacji naprężeń występujących w konstrukcji.
Jako punkt startowy zastosowano prostokątną tarczę o geometrii i sposobie obciążenia przedstawionym na rysunku. Funkcję przystosowania obliczano wykorzystując MES.

Kolejnym przykładem zastosowania AE połączonego z MES jest optymalizacja ramy rowerowej. Kryterium minimalizacji masy dopuszczało również optymalizację rodzaju materiału, z którego zbudowana jest konstrukcja. Podobnie jak poprzednio punktem startowym była prostokątna tarcza. Efekt ostateczny jest widoczny na rysunku.

Powyższe przykłady dotyczyły płaskich modeli dwuwymiarowych. Możliwe jest również optymalizowanie modeli trójwymiarowych. Poniżej przedstawiam optymalizację kształtu felgi samochodowej wykonanej ze stopów aluminium. Przy czym optymalizacji podlegała nie tylko geometria modelowana za pomocą elementów typu shell, ale również grubość materiału.


I na koniec dwa przykłady niezwykle trudnej optymalizacji kształtu trójwymiarowych modeli bryłowych. Trudność polega na sprzężeniu i zautomatyzowaniu pracy algorytmu ewolucyjnego, który ma za zadanie współpracować z komercyjnym profesjonalnym oprogramowaniem do analiz wytrzymałościowych metodą elementów skończonych. W obydwu przypadkach kryterium była minimalizacja masy konstrukcji przy jednoczesnym zachowaniu jej sztywności.




Należy zaznaczyć, że wszystkie kształty zoptymalizowanych konstrukcji zostały stworzone – „wymyślone” – przez algorytm ewolucyjny bez interwencji człowieka. Czy to już zatem rzeczywiście inteligencja (choćby nawet i sztuczna), czy tylko dobre narzędzie zbudowane przez zdolnych naukowców? Rzecz jasna, to tylko narzędzie. Fakt, że optymalizacja jest wykonywana przez komputer nie oznacza, że proces może obywać się bez ludzkiej pomocy. Przed uruchomieniem algorytmu należy przecież zdefiniować warunki brzegowe, sposoby podparcia i obciążenia konstrukcji. Konieczne jest również prawidłowe określenie funkcji celu, czyli innymi słowy kryteriów optymalizacji. Łatwo zauważyć, że niektóre optymalne rozwiązania znalezione przez algorytm są niemożliwe do zaakceptowania z punktu widzenia procesu produkcji. Tak więc na końcu procesu optymalizacji zawsze musi znaleźć się doświadczona osoba, która zweryfikuje efekty działania algorytmu pod kątem wykonalności, estetyki danej konstrukcji oraz innych kryteriów, których zdefiniowanie było zbyt trudne, aby je uwzględnić w procesie optymalizacji.
Nie wspomniałem jeszcze o dodatkowej trudności na jaką natknie się osoba próbująca swych sił w optymalizacji z wykorzystaniem AE. Jest nią czas trwania procesu optymalizacji. Trzeba w końcu przeprowadzić analizy MES dla każdego osobnika w każdej populacji. W przypadku gdy mamy 50 osobników w pokoleniu i proces optymalizacji potrwa 50 pokoleń, da nam to 2500 trójwymiarowych analiz MES na elementach typu solid. Czas trwania takiej optymalizacji i miejsce potrzebne do składowania wyników jest ogromne. Można sobie jednak poradzić również z tym problemem.
Antoni Skrobol
artykuł pochodzi z wydania 5 (20) maj 2009