(Symulacyjny program komputerowy wyznaczania wielkości składo)

Transkrypt

(Symulacyjny program komputerowy wyznaczania wielkości składo)
Mgr inż. Michał Krzemiński
Politechnika Warszawska
SYMULACYJNY PROGRAM KOMPUTEROWY WYZNACZANIA
WIELKOŚCI SKŁADOWISK
1. Wprowadzenie
Budownictwo, podobnie jak inne dziedziny gospodarki podlega w ostatnich latach
bardzo istotnym zmianom. Wynikają one z wprowadzania nowych technologii, materiałów,
narzędzi, ale także z coraz większego wpływu ekonomii na proces budowlany. Coraz częściej
mamy do czynienia z prowadzeniem skomplikowanych budów w terenach miejskich o
zwartej zabudowie, gdzie występuje znaczne ograniczenie możliwości stworzenia zaplecza
budowy czy zajęcia okolicznych dróg. Szeroka dostępność materiałów budowlanych nie
wymaga obecnie od realizatora budowy gromadzenia ich zapasów w celu uniknięcia
przestojów, ale z drugiej strony produkcja wielu spośród tych materiałów realizowana jest
dopiero pod konkretne zamówienie.
Obecny sposób finansowania procesu inwestycyjnego wymusza maksymalne
skracanie cykli budowlanych. Wszystkie te czynniki powodują, że współczesna budowa
stanowi poważne wyzwanie dla osób zajmujących się jej organizacją. Jednym z
najistotniejszych elementów organizacji budowy jest jej zaopatrzenie w materiały, które ma
znaczący wpływ na terminową, zgodną z przyjętym harmonogramem realizację prac.
Podstawowym problemem występującym podczas realizacji zadań przez pracowników
odpowiedzialnych za zaopatrzenie jest optymalne zaplanowanie zapasów materiałów
budowlanych. Oszacowanie zapasu materiałów w zbyt małej ilości może być powodem
zakłóceń w terminowości wykonania obiektów. Natomiast zbyt duża ilość zapasów może
prowadzić
do
nadmiernych
kosztów
zagwarantowania
i
utrzymania
powierzchni
magazynowej. Coraz częściej spotyka się budowy, które dysponują placem budowy, a więc
także powierzchnią magazynową o bardzo ograniczonych rozmiarach. Dlatego też coraz
większą wagę przywiązuje się do planowania częstotliwości i wielkości do dostaw. W tym
artykule zaprezentowano program komputerowy stanowiący uniwersalne narzędzie
wspomagające planowanie gospodarki zaopatrzeniowo magazynowej poszczególnych
1
procesów budowlanych. Program został napisany w języku Delhi 7.0 [3,4,5] i dostosowany
do współpracy ze środowiskiem Windows. Bazy danych do programu tworzone są w plikach
typu „*.txt”, co umożliwia łatwą modyfikację istniejących baz danych przy użyciu dowolnego
edytora tekstu. Algorytm programu zbudowany został z wykorzystaniem symulacyjnego
modelu wyznaczenia zapasu materiałów budowlanych z uwzględnieniem losowego
charakteru terminów dostaw i zużycia materiałów budowlanych [1].
2
3
Rys. 1. Schemat blokowy algorytmu programu komputerowego
4
2. Algorytm programu komputerowego „SWWS”
W tym punkcie przedstawiono opis poszczególnych elementów algorytmu programu
komputerowego „Symulacyjnego Wyznaczania Składowisk” - SWWS, którego schemat
przedstawiono na rys. 1.
1. Na ekranie pokazuje się strona tytułowa. Aby przejść do dalszej części programu należy
nacisnąć przycisk „Dalej”. Naciśnięcie tego przycisku spowoduje przejście do właściwej
części programu. Aby rozpocząć obliczenia należy wybrać przycisk „Obliczenia”, chcąc
dowiedzieć się czegoś więcej na temat samego programu można przejść do opcji „O
programie”.
2. Wybieranie ma charakter dwustopniowy. Pierwszy wybór jakiego dokonuje użytkownik,
to wybór miejsca składowania materiału. Są trzy możliwe opcje: na otwartym placu
składowym, pod zadaszeniem, w magazynie zamkniętym. Następnie dokonuje się - z listy
zamieszczonej w programie - wyboru materiału.
3. Program nie uwzględnia układu kalendarzowego, nie ma więc w nim podziału na dni
tygodnia. Program przyjmuje tylko liczby dodatnie i całkowite.
4. Wprowadzane liczby to liczby dodatnie i zero. Zero wprowadza się w celu zasymulowania
dnia wolnego (np. sobota, niedziela), w którym zużycie danego materiału jest zerowe. Liczby
wprowadza się w tabeli, której wielkość jest generowana automatycznie na podstawie danych
uzyskanych w poprzednim punkcie.
5. Jednostką czasową jest w tym przypadku, tak samo jak w przypadku harmonogramu
zużycia, dzień. Np. chcąc wprowadzić dostawę co 4 dni użytkownik wprowadza liczbę 4.
Częstotliwość może być wprowadzana jedynie jako liczby całkowite dodatnie.
6. W celu wyznaczenia ilości dostaw całkowity czas dzielony jest przez zakładaną
częstotliwość. W celu wyznaczenia wielkości dostaw dzielone jest całkowite zużycie przez
ilość dostaw. Podział następuje automatycznie i równomiernie, jednakże użytkownik ma
prawo ingerencji w wielkości poszczególnych dostaw. Pierwsza dostawa, w późniejszej
części programu, automatycznie stanie się zapasem początkowym.
7. Funkcją generującą liczby jest funkcja wewnętrzna programu Delphi 7.0. Dane
statystyczne określane są dla dwóch odrębnych zjawisk, pierwsze to terminowość dostaw,
drugie to wielkość dziennego zużycia danego materiału. Każda z danych określana jest w
tabelach. Dane podawane są w formie procentowej i pochodzą najczęściej z własnych
obserwacji osoby zajmującej się danymi zagadnieniami w firmie.
5
8. Dystrybuanta dostaw, wiersz pierwszy zawiera liczbę zero oznaczającą, że dostawa jest o
czasie, na lewo od niej liczby dodatnie mówiące nam o tym, że dostawa nastąpi wcześniej i na
prawo liczby ujemne mówiące, że dostawa będzie opóźniona. W wierszu drugim
przypisujemy odpowiednio kolumnami prawdopodobieństwo wystąpienia poszczególnych
zjawisk. Wiersz trzeci tworzy się automatycznie. Wiersz czwarty natomiast powstaje poprzez
odjęcie od wartości częstotliwości wartości z wiersza pierwszego. Dystrybuantę wahań
wielkości zużycia wprowadza się w nieco uproszczony sposób, gdyż jest ona bardziej
zautomatyzowana. Użytkownik ma jedynie za zadanie prawidłowe wypełnienie wierszy
pierwszego i drugiego.
9. Polega ono na automatycznym przyjęciu jako zapasu początkowego wielkości pierwszej
dostawy. Chcąc więc uzyskać większy zapas początkowy należy to uczynić modyfikując
wielkości poszczególnych dostaw.
10. Liczbę wprowadza się w specjalnym oknie. Liczba musi być z zakresu od 1 do 1000. Po
wprowadzeniu liczby powtórzeń możemy przejść do uruchomienia właściwego algorytmu
symulacyjnego i do wprowadzenia pierwszej liczby losowej.
11. Po wprowadzeniu wszystkich danych można przejść do algorytmu symulacyjnego
mającego na celu znalezienie maksymalnej ilości materiału, jaką w okresie całego zużycia
trzeba będzie składować.
12. Losowanie liczby dotyczącej terminu dostawy odbywa się automatycznie przy użyciu
wewnętrznej funkcji programu Delphi 7.0. Liczba losowana jest z zakresu od 1 do 99.
13. Mając wylosowaną liczbę z zakresu od 1 do 99 należy odczytać przy użyciu tej liczby z
dystrybuanty wahań terminów dostaw za ile dni dostarczony zostanie materiał.
14. Wiedząc z poprzedniego punktu, za ile dni nastąpi dostawa, należy przy użyciu
programowego generatora liczb losowych wylosować odpowiednią ilość liczb losowych.
15. Mając wylosowane liczby kolejnego zużycia w dniach przed następną dostawą należy
przy ich użyciu odczytać zużycie jednostkowe z tabeli dystrybuanty wahań zużycia
jednostkowego dziennego.
16. Rzeczywiste zużycie dzienne uzyskujemy poprzez przemnożenie kolejnych zużyć
jednostkowych przez odpowiadające im kolejne wartości z harmonogramu zużycia.
17. Zapas oblicza się w następujący sposób. Należy odejmować kolejno rzeczywiste dzienne
zużycie od stanu dnia poprzedniego. Początkowy stan to stan po dostawie. Następnie należy
odjąć od niego wartości zużyć aż do momentu nadejścia kolejnej dostawy, którą należy dodać
do stanu po dniach, w których następowało zużycie.
6
18. Uzupełnienie zapasu materiałów nową dostawą, polega na dopisaniu do tabeli wartość
kolejnej dostawy. Jest to powodowane tym, że minął już czas zużycia materiału, po jakim
miała nadejść kolejna dostawa. Wartość dostawy, jaka zostanie dopisana zależy od tego, jaka
została zaplanowana w punkcie 6.
19. Ustalenie licznika dostaw k := k + 1, polega na prowadzeniu zliczenia ilości dostaw, jakie
już zostały dostarczone na budowę. Ma to na celu określenie czy można już przejść do
następnej części programu czy należy powtórnie powrócić i przeprowadzić kolejne losowanie
terminu następnej dostawy.
20. k < d. Sprawdzenie to ma na celu określenie, czy została już osiągnięta zakładana liczba
dostaw. Jeżeli ilość została osiągnięta można przejść do przeprowadzenia korekty
zwiększającej bądź zmniejszającej wielkość zapasu początkowego materiału.
21.
∨Z
j
j
< 0 . Sprawdzenie to ma na celu określenie, czy w ciągu całej symulacji nie
nastąpił ujemny zapas materiału. Polega ono na przebadaniu kolumny, w której występują
rzeczywiste zapasy materiałów na okoliczność występowania liczb ujemnych.
22. W
tym punkcie następuje wyrównanie ujemnego stanu materiału. Znajdowany jest
największy ujemny stan materiału i o jego wartość zwiększane są wszystkie stany materiałów.
Powstaje w ten sposób skorygowany stan zapasu materiału. Korektę prowadzi się
rozpoczynając od stanu początkowego a kończąc na stanie zapasu po ostatniej dostawie.
23. Wielkość tą wyznacza się poprzez znalezienie maksymalnej wartości zapasu materiału w
kolumnie skorygowanego zapasu materiału. Wielkość ta selekcjonowana jest przy użyciu
matematycznej funkcji maksymalizacji.
24.
∨Z
j
j
> 0 . Sprawdzenie to ma na celu określenie, czy istnieje wielkość większa od
wielkości zero. Jeżeli występuje taka wielkość, należy przejść do korekty zmniejszającej stan
zapasu materiału i w ten sposób zostanie stworzona kolumna skorygowanego zapasu
materiału. Korektę tę prowadzi się przez odjęcie od wszystkich wartości, poczynając od
wartości
początkowej
a
kończąc
na
wartości
po
ostatniej
dostawie,
wartości
wyselekcjonowanej jako najmniejszą dodatnią.
25. Znajdowany jest najmniejszy dodatni stan materiału i o jego wartość zmniejszane są
wszystkie stany materiałów. Powstaje w ten sposób skorygowany stan zapasu materiału.
Korektę prowadzi się rozpoczynając od stanu początkowego a kończąc na stanie zapasu po
ostatniej dostawie.
7
26. Wielkość tą wyznacza się poprzez znalezienie maksymalnej wartości zapasu materiału w
kolumnie skorygowanego zapasu materiału. Wielkość ta selekcjonowana jest przy użyciu
matematycznej funkcji maksymalizacji.
27. Jeżeli wyniki ułożą się tak, że nie występuje ani zapas ujemny ani mocno dodatni, to od
razu można przejść do wyznaczenia maksymalnego zapasu materiału. Wielkość tą wyznacza
się poprzez znalezienie maksymalnej wartości zapasu materiału w kolumnie skorygowanego
zapasu materiału. Wielkość ta selekcjonowana jest przy użyciu matematycznej funkcji
maksymalizacji.
28. Jest to punkt w którym następuje zakończenie pojedynczego cyklu symulacyjnego.
Następnie można przejść do powtórnego cyklu bądź do wyliczenia maksymalnej wartości
zapasu materiału, który trzeba będzie zmagazynować.
29. Po każdym kolejnym cyklu symulacyjnym należy zapamiętać wynik maksymalnego
zapasu skorygowanego. Jest to ważne z tego względu, że aby znaleźć wynik niezbędny do
wyliczenia powierzchni magazynowej, trzeba będzie porównać wyniki wszystkich cykli
symulacyjnych.
30. Przed rozpoczęciem pierwszego cyklu symulacyjnego przyjęta została liczba cykli, jakie
zostaną wykonane. Aby więc móc przystąpić do wyznaczenia maksymalnej ilości zapasu
materiału, należy przeprowadzić wszystkie założone cykle symulacyjne.
31. Po przeprowadzeniu wszystkich cykli symulacyjnych należy przystąpić do wyznaczenia
maksymalnej wartości zapasu jaka została znaleziona podczas wszystkich eksperymentów.
Wartość ta niezbędna jest do wyznaczenia wielkości powierzchni potrzebnej na
zmagazynowanie materiału.
32. Wyznacza się ją poprzez przemnożenie wyniku symulacji przez normatyw składowania
ilości materiału na jeden metr kwadratowy oraz przez odwrotność współczynnika alfa[2],
odpowiedzialnego za wygodny i racjonalny dostęp do składowanego materiału.
33. Wyniki zapamiętywane są w plikach tekstowych typu „*.txt”. Takie zarchiwizowanie
wyniku wraz z danymi pozwala na stworzenie własnych baz danych. Dodatkowo zapis w
plikach typu „*.txt” pozwala na łatwy dostęp do informacji przy użyciu dowolnego edytora
takich plików.
34. Zakończenie programu. Jest ostatni punkt algorytmu. Punkt ten kończy działanie
programu.
8
3. Wprowadzenie danych wejściowych
Użytkownik programu wprowadza następujące dane:
- sposób składowania materiału,
- rodzaj składowanego materiału,
- ilość dni zużycia danego materiału,
- zapotrzebowanie na dany materiału dla każdego dnia,
- częstotliwość dostaw,
- dane statystyczne dotyczące wahań terminów dostaw oraz wielkości zużycia materiału
budowlanego,
- dystrybuanty,
- liczbę powtórzeń algorytmu symulacyjnego,
Dane dotyczące sposobu składowania materiału oraz rodzaju składowanego materiału
wybierane są z listy zamieszczonej w programie[2]. Użytkownik może w prosty sposób
modyfikować listy, o których mowa powyżej. Pozostałe informacje użytkownik wprowadza
przy użyciu klawiatury numerycznej. Program posiada zabezpieczenia przed wprowadzeniem
przez użytkownika nieprawidłowych danych liczbowych (na przykład: zużycie materiału
określone liczbą ujemną). W przypadku wprowadzenia takiej danej program sygnalizuje błąd
użytkownika wyświetlając komunikat błędu. Po wprowadzeniu przez użytkownika
harmonogramu zapotrzebowania i częstotliwości dostaw, program automatycznie wylicza
ilość i wielkości kolejnych dostaw. Dostawa pierwsza traktowana jest jako zapas początkowy.
Użytkownik
ma
możliwość
modyfikacji
wielkości
wszystkich
dostaw.
Suma
zmodyfikowanych wielkości dostaw musi być równa całkowitemu zużyciu danego materiału,
w przeciwnym przypadku program zasygnalizuje błąd we wprowadzonych danych.
Wyznaczenie dystrybuant wymaga od użytkownika doświadczenia w zakresie planowania
dostaw materiałów i ich zużycia z uwzględnieniem lokalnych warunków prowadzenia prac
budowlanych. Program korzysta z generatora liczb losowych programu Delphi oraz z
algorytmu symulacyjnego uwzględniającego losowy charakter terminów dostaw oraz zużycia
materiałów budowlanych[1].
4. Forma wyprowadzanych wyników
W wyniku przetworzenia danych wejściowych program oblicza następujące wielkości:
9
- niezbędny zapas materiału,
- powierzchnie magazynową.
Dla celów poglądowych i kontrolnych program został wyposażony w generator
wykresu harmonogramu zapotrzebowania dziennego materiałów budowlanych. Możliwy jest
także przegląd przebiegu poszczególnych eksperymentów symulacyjnych. Program ma
możliwość archiwizacji wyników wraz z danymi w postaci plików tekstowych. Wydruk
danych wejściowych i wyjściowych następuje z pliku tekstowego. Program nie posiada
szczególnych wymagań sprzętowych, jednak z uwagi na dużą liczbę wykonywanych w nim
obliczeń przy założonej dużej liczbie interacji (powyżej 500) zaleca się stosowanie
komputerów o procesorze taktowanym powyżej jednego GigaHertza (1 GHz).
Przykład liczbowy
Poniżej przedstawiono rysunki, na których znajdują się zdjęcia z ekranu, które
powstały podczas prowadzenia pracy w programie.
Rys. 2. Forma wprowadzenia danych dotyczących zużycia materiału
10
Rys. 2 obrazuje pierwszy etap korzystania z programu. Można kolejno odczytać że
składowanym materiałem będą bloczki ścienne z betonów lekkich, są to materiały
składowane pod podcieniami (wiatami). Znajdują się tam również informacje na temat
harmonogramu zużycia, jest on podany w formie tabelarycznej. Na rys. 3 można obejrzeć ten
harmonogram w formie graficznej. Z rys. 2 można również odczytać dane dotyczące
całkowitego zużycia, częstotliwości, wielkości oraz ilości dostaw. Aby obejrzeć graficzną
postać harmonogramu zużycia należy nacisnąć przycisk „Pokaż harmonogram zużycia”. Aby
przyjść do następnej części programu należy nacisnąć przycisk „Wykonaj obliczenia”
Rys. 3. Harmonogram zapotrzebowania na materiał budowlany
Rys. 3 obrazuje harmonogram zapotrzebowania na materiał budowlany w formie
graficznej. Na osi poziomej znajdują się dane czasu, na osi pionowej dane dotyczące
wielkości zużycia. Miejsca w których zużycie jest zerowe oznaczają dni wolne od pracy.
11
Rys. 4.Forma wprowadzenia danych statystycznych oraz wyniki obliczeń
Na rys. 4 widać jaki materiał został wybrany do składowania, jaka będzie ilość
częstotliwość dostaw. Pokazane są wypełnione dwie dystrybuanty dostaw i zużycia. Na dole
ekranu znajduje się białe okno w którym można oglądać wyniki poszczególnych interacji.
Poniżej białego okna można odczytać, jaki będzie niezbędny maksymalny zapas oraz jaka
będzie niezbędna powierzchnia magazynowa. Zakończyć pracę można na dwa sposoby. Jeden
to wyjście bez zapisu, drugi to wyjście z zapisem wyników.
12
5. Podsumowanie
Opracowany program komputerowy „SWWS” jest narzędziem przeznaczonym dla
osób zajmujących się organizacją zaopatrzenia w procesach budowlanych. Może być także
wykorzystany w procesie dydaktycznym w przedmiotach z zakresu organizacji i planowania
budowy.
Program wymaga od użytkownika posiadania znajomości podstawowych zasad
zarządzania zapasami. Istotna jest także w tym przypadku wiedza na temat lokalnego rynku
materiałów budowlanych oraz czynników mających wpływ na terminowość dostaw. Dzięki
szybkiemu uzyskiwaniu wyników program umożliwia przeprowadzenie symulacji polegającej
na dostosowaniu harmonogramów dostaw, na przykład do wielkości powierzchni
magazynowej.
Program nie ma charakteru zamkniętego, ponieważ baza jego danych wejściowych
może być uzupełniana o nowe rodzaje materiałów, a także aktualizowana w przypadku
zmiany sposobu składowania. Archiwizowanie danych umożliwia użytkownikowi praktyczną
weryfikację przyjmowanych danych statystycznych, wraz ze zmianami następującymi w
zaopatrzeniu i zużyciu materiałów.
6. Literatura
1. Jaworski K. M. : Metodologia projektowania realizacji budowy. Wydawnictwo
Naukowe PWN, Warszawa 1999.
2. Jaworski K. M. : Zagospodarowanie placu budowy domu jednorodzinnego i małego
osiedla. Arkady, Warszawa 1989.
3. Boduch A.: Delphi 7. Kompendium programisty, Helion 2003.
4. Grażyński A., Zarzycki Z.: Delphi 7 dla każdego, Helion 2003.
5. Daniluk A.: ABC Delphi 7, Helion 2003.
13

Podobne dokumenty