ScanImage003 (11)

ScanImage003 (11)



1.1. ALGORYTMY

nic ważny element procesu rozwiązywania poważnych zadań, niezależnie od obszaru zastosowań.

Kiedy stajemy przed koniecznością napisania złożonego programu komputerowego, wiele wysiłku musimy włożyć w zrozumienie problemu, zdefiniowanie konkretnego zadania, które ma zostać rozwiązane, poradzenie sobie z jego złożonością i rozkład na zadania mniejsze, a więc prostsze w implementacji. Często zdarza się tak, że zadania cząstkowe powstałe z dekompozycji dużego zadania na mniejsze są trywialne. W większości wypadków jednak dochodzi się do pewnego zbioru algorytmów, których realizacja jest krytyczna dla całej aplikacji, ponieważ pochłoną one większość zasobów systemowych. To właśnie na algorytmach tego typu skoncentrujemy się w niniejszej książce. Przeanalizujemy wiele fundamentalnych algorytmów wykorzystywanych do rozwiązywania zadań z bardzo szerokiego spektrum zastosowań.

Obecnie coraz bardziej popularne staje się korzystanie w obrębie jednego systemu ze wspólnych programów', dlatego też nie można wyrokować, czy będzie się używać sporej czy niewielkiej części algorytmów z tej książki. Implementacje większości najważniejszych algorytmów są dostępne tu i ówrdzie, na przykład w bibliotece C++ Standard Template Library. Jednak zaimplementowanie uproszczonych ich wersji nie jest bezcelowe, pomoże nam bowiem lepiej zrozumieć te algorytmy, a tym samym efektywniej ich używać i ewentualnie poprawiać ich zaawansowane wersje z biblioteki. Co ważniejsze, konieczność niezależnego realizowania prostych algorytmów' pojawia się często. Głównym powodem tego stanu rzeczy jest to, że zbyt często stajemy w obliczu kompletnie nowych środowisk przetwarzania (sprzętowych i programowych), wyposażonych w nowe funkcje niedostępne w starych systemach. Skorzystanie z istniejących rozwiązań, a więc zignorow'anie nowych możliwości systemu, oznaczałoby niepełne wykorzystywanie nowego środowiska.

inaczej mówiąc, często pojawia się konieczność ponownej implementacji algorytmów' istniejących od lat, ale takiej implementacji, która będzie ściśle dopasowana do nowego problemu (starego problemu w now'ych szatach, żeby być ścisłym). Możliwość polegania na procedurach systemowych, która zapewniłaby lepszą przenośność rozwiązań i ich dłuższy czas życia, jest ostatnio mniej powszechnie wykorzystywana. Istnieje jeszcze inna przyczyna ponownego implementowania typowego algorytmu: mimo rozwoju języków' programowania i nowych możliwości, jakimi dysponuje C h , mechanizmy używane do współużytkowania oprogramowania nic zawsze wystarczajądo tego, by dało się za ich pomocą wygodnie dopasować uogólnione programy biblioteczne do wymogów' bardzo konkretnego zadania.

Programy komputerowe są często zbyt optymalizowane. Niejednokrotnie nie warto ponosić trudów związanych z ponowną implementacją algorytmu i opracowywaniem najbardziej efektywnego rozwiązania, jeżeli algorytm nie będzie przeznaczony do rozwiązywania dużych zadań. Na ogół wystarcza stosunkowo prosta, aczkolwiek staranna implementacja. Możemy mieć pewność, że będzie ona działać i prawdopodobnie będzie tylko pięć do dziesięciu razy wolniejsza od najlepszej, co w praktyce oznacza dodatkowych kilka sekund pracy programu. Z kolei właściwy wybór algorytmu może skracać czas działania programu sto, tysiąc i wdęcej razy, co może się przekładać na minuty', godziny, a nawet większe jednostki czasu. W tej książce skoncentrujemy się na najprostszych rozsądnych implementacjach najbardziej typowych algorytmów.

5


Wyszukiwarka

Podobne podstrony:
zbiorach skończonych. Algorytmy na grafach znajdują zastosowanie w rozwiązywaniu wielu zadań praktyc
str02 (11) nadal uważna była ona za pełnowartościowy sprzęt bojowy. Niezależnie od tego. utworzona w
bożena wojtasik doradca zawodu strona8 119 11S taj, że nie możesz za kogoś rozwiązywać jego problem
IMGq13 . ,1^1 w umiejętności czytania i pisania mogą blokować proces , .£>nia się i s;t niezależn
DSC01278 (11) Wiatry lokalne mogą być wynikiem lokalnej cyrkulacji powietrza, niezależnej od ogólnej
23877 wykłady z socjologii 13 2014 (79) 2013-11-25 Ossowski - władza jest możliwością podejmowania i
22 110 Terroir - kwintesencja francuskiej filozofii wina Zespół czynników, niezależnych od człowiek
Proces rozwiązywania zadania, nieformalna specyfikacja ( wejściowo wyjściowa ) problemu, algorytm, f
74804 ScanImage004 (11) WPROWADZENIEsa# mf &ms && vss& om Wybór najlepszego algorytm
ScanImage002 (11) Tsm B5S? WPROWADZENIE kacjach. Zaczniemy od rozwiązania prostego, intuicyjnego, by
ScanImage002 (11) Tsm B5S? WPROWADZENIE kacjach. Zaczniemy od rozwiązania prostego, intuicyjnego, by
ScanImage012 (5) i żm KttK MK BBS WPROWADZENIE Program 1.2. Rozwiązanie problemu połączeniowego. Alg
DCP11 regulacji nic można sprostać stosując regulator FID, w technice analogowej szuka się rozwią.

więcej podobnych podstron