|
|
Ralf Wieland <rwieland-at-zalf.de> O Autorze: Używam Linux'a (od 0.99pl12) do programowania symulacji środowiskowych, sieci neuronowych i układów(systemów) rozmytych. Również interesuje mnie elektronika i sprzęt więc używam Linuksa również do takich zastosowań. Translated to Polish by: Mariusz Kozłowski <sp3fxc(at)linuxfocus.org> Zawartość: |
Notka:
Artykuł ten stara się odpowiedzieć na pytanie: "Jak będzie wyglądała ludzka populacja za 50 lub 100 lat, jeśli tempo przyrostu utrzyma się na obecnym poziomie?".
Jako próbę mojej odpowiedzi na to pytanie zaprezentuję małą aplikację QT, na której czytelnicy mogą sobie sami poeksperymentować.
Może ktoś z Was zrobi z niej uzytek i jakoś ją ulepszy.
Imigracja i integracja obcokrajowców w naszym kraju (chodzi tu o Niemcy -> przyp. tlum.) jest jednym z głównych punktów dyskusji jakie się toczą pośród naszych polityków. Firmy bazują strategie dotyczące swoich produktów na wzroście demograficznym. Ostatnio nawet przeczytałem, że emeryci staną się wkrótce główną grupą kupującą samochody w Niemczech. System opieki zdrowotnej, system emerytalny itd. wszystko to bazuje na tym jak będzie się kształtował przyrost ludności w najbliższych latach.
W dziedzinie tej prowadzi się wiele poszukiwań. Publikowane są liczne prace naukowe. Pomimo tego wielu ludzi całkowicie ignoruje prawa rządzące tymi procesami. Artykuł ten porusza w mniejszym stopniu aspekty polityczne i naukowe tego problemu skupiając się raczej na własych eksperymentach. Dlaczego nie mielbyśmy spojrzeć na to z własnego punktu widzenia na to co będzie się działo za 50 czy 100 lat? Co dzieje się gdy ludzie opuszczają dany kraj i co dzieje się gdy przyjeżdżają do innego kraju? Aby poeksperymentować z różnymi możliwościami napisałem niewielki program oparty na QT.
Większość ludzi choć raz na jakiś czas zastanawia się skąd biorą sie te 'piramidy ludności' która nieraz są pojawiają się w artykułach w gazetach - chodzi o te przedstaiwające wygląd populacji za np 50 lat. Na jakiej podstawie opierają się autorzy tych publikacji?
Jeśli zaczniesz się zastanawiać, zdasz sobie sprawę, że wszystko zależy na liczbie urodzeń dzieci, śmiertelności w społeczeństwie i od ilości ludzi opuszczających kraj i osiadających w nim na stałe - innymi słowy na migracji.
Zacznijmy od pierwszej rzeczy jaka będzie Ci potrzebna do skonstruowania wykresu populacji: ilość urodzeń. Każdego roku pewna ilość dzieci się rodzi. Ilość urodzeń to średnia ilość dzieci przypadająca na jedną kobietę podczas jej życia. Ten współczynnik różni się dość znacznie w zależności od kraju gdyż zależy od wielu czynników i tradycji takich jak kultura, sytuacja ekonomiczna, edukacja i tradycja. w Niemczech ten wspóczynnik wacha się w granicach 1.3 dziecka na kobietę.
Niektóre kraje prowadzą politykę bardziej "pro-rodzinną" niż inne, a w niektórych krajach dzieci są uważane za inwestycję na przyszłość , gdyż z liczbą dzieci wzrastają pieniądze jakie daje państwo dla danego rodzica. Dla naszych celów ilość urodzeń można ustaiwać w granicach od 0 do 10 dzieci na kobietę. Znaczy to, że możemy zmieniać ten współczynnik w zależności od scenariuszy na przyszłość jakie przyjmiemy.
Liczba urodzonych dzieci nie zależy tylko od liczby urodzeń ale zależy równieź od ilości kobiet które są w wieku odpowiednim do rodzenia dzieci. W naszym modelu liczba kobiet w tym wieku (na nasze cele wiek wacha się w granicach od 15 do 45 lat) jest poprostu dodawana i mnożona razy ilość urodzeń. Aby potem policzyć ilość urodzeń na rok liczba ta jest dzielona przez 45-15=30. Oparte jet to na założeniu, że przeciętna kobieta będzie miała ilość dzieci założoną jako ilość urodzeń. Niektórzy z Was mogą się zastanawiać czy ilość urodzeń jest akurat właściwa gdyż jedna kobieta może mieć siedmioro dzieci, a inna może nie mieć wcale. To pytanie ociera się o statystykę i odpowiedzi na nie lepiej szukać w odpowiedniej literaturze. W naszym programie mniej skupiamy się na statystyce a bardziej na możliwościach eksperymentowania np.: co by się stało gdyby w Niemczech nastała moda na posiadanie więcej niż troje dzieci w rodzinie?
Naturalnie tam gdzie dzieci się rodzą również umierają ludzie. Umieralność to współczynnik podobny do ilości urodzeń, poza tym, że dotyczu już nie tylko samych kobiet ale całej populacji (oczywiście męszczyzni też odgrywaja rolę w ilości urodzeń ale to nie miejsc na taką dyskusję ;)). Wiek danej grupy ma oczywiśćie największe znaczenie we umieralności, ponieważ statystycznie starsi ludzie mają większe szanse umrzeć niż młodsi. W Niemczech jest oficjalna tabela śmiertelności, która jest używana np.: przez agencje ubezpieczeniowe do obliczania przeróżnych stawek. Nasz program jest oparty na danych wlaśnie ztej tabeli. Będziesz musiał zmienić odpowiednio dane jeśli chcesz przeprowadzać poprawne symulacje w innych krajach.
Zauważ, że w krajach uprzemysłowionych współczynnik ten powinien opierać się tylko na wieku osoby a nie na np.: klasie społecznej. Jednakże pewien znajomy Meksykanin wyjaśnił mi, że to nie może być tak uniwersalnie stosowane. W naszym programie śmiertelność zależy tylko od wieku, więc jeśli ktoś chce aby czynniki społeczne grały rolę bedzie musiał rozwinąć odpowiednio ten program. Może ktoś chciałby to zrobić?
Na koniec jeszcze migracja powinna być wzięta pod uwagę. Proces migracji zawsze grał istotną rolę. Na przykład w poprzednich wiekach ludność wiejska migrowała do miast. Nie stanowiło to problemu jakoże ilość urodzeń zrekompensowała "straty" w ludności. W naszych czasach procesy migracji sa zdecydowanie inne. Jednakże osiedlanie się ludności na wsi w Niemczech jest fenomenem we współczesnych niemczech i spowoduje wzrost odizolowania niektórych regionów.
Cały ten proces jest automatyczny i nie mamy na niego wpływu. Wpływ mogą mieć takie czynniki jak udogodnienia dla dzieci w danym regionie. Nie warto jest mieć udogodnienia dla dzieci w rejonie gdzie jest mało dzieci. Tak samo nie wielu ludzi będzie chciało się przenieść w rejon gdzie nie ma udogodnien dla dzieci. To samo sie tyczy zaplecza kultralnego. Bez wnikania w szczegóły można stwierdzić ze migracje ludności mogą być oparte na wielu przyczynach i spowodowane przez wiele czynników. Jedną z najważniejszych rzeczy z jakich trzeba zdać sobie sprawę to to, że pod względem wieku struktura ludności żyjącej w danym regionie różni sie od struktury ludności emigrującej do tego regionu. Aby odzwierciedlić to w programie możesz zaadoptować pole "Distribution" w kodzie zrodłowym "./demogra/demogra1.cpp" do własnych celów. Jednakże nie jest to konieczne do prowadzenia prób.
Pola "Immigration" i "Emigration" służą do wprowadzania tych danych. Wprowadzaj tam doatnie wartości. Więc jeśli 10.000 ludzi na rok przenosi się w dany region, wprowadz liczbę 10.000 w pole "Immigration".
Na koniec trzeba dodać, że co rok jesteśmy starsi. Aby wziąc to pod uwagę, pętla lat postarza kogoś kto mial 40 lat na 41 lat w kolejnym swoim obiegu. Pole "Step" pozwala wprowadzić krok z jakim będziemy się posuwać do przodu w naszej symulacji za jednym razem - np.: jeśli podasz 10 to model przedstawiać będzie zmiany demograficzne w odstępie co 10 lat./p>
Spójrzmy na interfejs użytkownika tego programu:
Pola do wprowadzania danych opisane powyżej są umieszczone po lewej stronie ekranu. Połączona w całość ilość mężczyzn i kobiet jest wynikiem działania programu zmieniającym się co odpowiednia ilość zadanych lat. Te pola są tylko wyjściami programu. Podobnie cała część graficzna programu jest przeznaczona tylko do wizualizacji. Przyciski na dole po lewej służą do kontroli przbiegu symulacji. Przycisk "Step" służy do krokowej pracy programu. "Reset" resetuje wszystkie ustawienia i wprowadza je w stan początkowy. Bieżący stan symulacji może być zachowany w pliku "simulation.dat". Plik ten zawiera liczbę mężczyzn i kobiet w odpowiednim wieku tak jak w symulowanym modelu gdy zachowywalismy stan symulacji. Jest możliwe aby opierając się na tym pliku robić inne analizy. Nazwy przycisków "Help" i "Quit" mówią same za siebie więc nie trzeba tlumaczyć ich znaczenia.
Niższa część wykresu pokazuje maksymalną ilość mężczyzn i kobiet we wszystkich grupach wiekowych. Zuważ, że rozmiar paska zależy od tych wrtości. Może to nie jest najlepsze rozwiązanie, ale nie przychodzi mi na razie nic lepszego do glowy. Ma ktoś jakiś pomysł co do tego?
Symulacja powinna być jasna i zrozumiała. Jeśli jednen z parametrów wejściowych jest bardzo duży lub znacznie odbiega od norm , np.: liczba emigrantów jest bardzo duża - pojawią się dziury w piramidzie wiekowej. Taki przypadek raczej nie zdarza się w rzeczywistości więc trzeba podać odpowiednią warość wejściową. Czy z drugiej strony może patologiczny fenomen, jak AIDS, spowodować w rzeczywistości taki efekt. Czy może się zdarzyć, że jedna grupa wiekowa jest zarażona przez AIDS wtedy reszta społeczeństwa migruje w inne rejonty świata?
Program podlega warunkom licencji GPL. Licencja TrollTech obejmuje go w także z powodu użycia QT.
Instalacja jest bardzo prosta. Po pierwsze ściągnij model demograficzny. Użyj tar -zxvf demographie-0.2.tar.gz aby rozpakować plik "demographie-0.2.tar.gz". Instalację zacznij z nowo utworzonego po rozpakowaniu katalogu używając make lub starszego qmake. Wymagane są QT3 i gcc. Program został pomyślnie przetestowany pod SuSE 8.0 i SuSE 8.1 i powinien pracować dobrz również z innymi dystrybucjami.
Aby uruchomić program wykonaj "./demographie" z lini polwceń. Upewnij się, że plik "demo.csv" jest przechowywany w tym samym katalogu. Pik ten zawiera lata, wielkości dla kobiet i mężczyzn oraz śmiertelność dla obu płci, wszystko odseparowane przecinkiem. Ieśli chcesz zmienić dane aby dopasować je do konkretnego regionu zrób to właśnie w tym pliku. W naszym przyadku gazeta była zródłem wielkości dla Niemiec. Mogą one nie być całkiem dokładne ale w zupełności wystarczają do naszych symulacji.
Program stał się częścią systemu regionalnej symulacji. System ten powstał, aby odpowiedzieć na takie pytania: jak będzie zmieniała się populacja w dobrze zdefiniowanym środowisku geograficznym (wiejska część północnego Berlinu)? W szczególności system przewiduje osiedlanie się młodych rodzin w okolicach Berlina i wyjeżdżanie młodych ludzi do zachodniego Bundesländer. Rezultaty pokazują znaczne różnice w zależności od regionu. Są miejsca gdzie populacja rośnie i są takie gdzie maleje. Niektóre miejsca, zwłaszcza te bardziej odległe stają się coraz bardziej opustoszałe. Zauważalny efekt w tym procesie odnosi się do tego co było opisane powyżej.
Musimy być ostrożni z prognazami takimi jak ta, ponieważ nie używamy wszystkich danych do naszej symulacji jakie w rzeczywistośći maja wpływ na te procesy. Np.: fenomen telepracy (praca na odległość) znaczy, że odległość od Berlina ma coraz mniejsze znaczenie. Programy promujące poszczególne regiony mogą również wpłynąć na rozwój wydarzeń. Dlategoteż, model reprezentuje kontynuację stanu obecnego dla celów tylko orientacyjnych.
Jeśli chcemy dostosować program do innych części świata musimy wziąć pod uwagę również inne czynniki. Byłoby interesujące użycie programu do badania całkowicie innego regionu np.: wiejskie rejony Meksyku. Potrzeba tutaj dużo pomysłowośći. Może ktoś chciałby wgryżć się bardizej w szczegóły tego programu i dostosować go do innych regionów? Byłbym szczęśliwy jeśli ktoś się tym zainteresuje.
Chiałbym wyrazić szczere podziękowania dla społeczności Linuksowej, która rozwinęła tak wspaniały system. Dziękuję również firmie Troll Tech za genialną bibliotekę QT i za udostępnienie jej pod Linuksem. No i oczywiście specjalne podziękowania dla FSF za wiele narzędzi, min. gcc, bez których prezentowana praca nie mogła by być wykonana.
Happy hacking!
|
Strona prowadzona przez redakcję LinuxFocus
© Ralf Wieland, FDL LinuxFocus.org |
tłumaczenie:
|
2002-12-26, generated by lfparser version 2.33