Wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej Koło Naukowe Matematyków Uniwersytet Rzeszowski Krzysztof Gąsior Wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej
wiele problemów rozwiązywanych komputerów to problemy matematyczne”(2) „Matematyka często przeplata się z informatyka i wiele problemów rozwiązywanych za pomocą komputerów to problemy matematyczne”(2)
Wprowadzenie Czy zastanawialiście się kiedyś: jak działają programy wykorzystujące pojęcia matematyczne? dlaczego różne implementacje tej samej metody teoretycznej dają niekiedy różne wyniki lub z różną dokładnością? jak dokładnie program został zaimplementowany? algorytm Euklidesa sito Erastotelesa algorytm Fermata
Przypomnienie Algorytm jest przepisem na rozwiązanie postawionego zadania, będącym określonym układem elementarnych instrukcji wraz z porządkiem ich wykonania. Sposoby zapisu algorytmu: opisu słownego listy kroków schematu blokowego lub innego grafu programu komputerowego
Przypomnienie c.d. Cechy każdego algorytmu: Skończoność co oznacza, że realizowany ciąg operacji powinien mieć swój koniec Określoność co oznacza, że zarówno operacje, jak i porządek ich wykonywania powinny być ściśle określone, nie zostawiając miejsca na dowolną interpretację użytkownika Ogólność algorytm nie ogranicza się do szczegółowego przypadku, ale odnosi się do pewnej klasy zadań Efektywność algorytm prowadzi do rozwiązania możliwie najprostszą drogą
Do czego służą algorytmy w matematyce? W matematyce algorytm jest pojęciem służącym do formułowania rozwiązań i badania rozstrzygalności problemów
Obliczenie wartości logarytmu naturalnego Zadanie Oblicz wartość ln 4; Rozwiązanie: Wartość ln 4 możemy wyznaczyć przy pomocy: kalkulatora; gotowych programów np.: Excela, Matematica, Matlab; skonstruować własny programu;
Jak można napisać własny program? Z analizy matematycznej wiadomo, że: Powyższą całkę możemy policzyć za pomocą algorytmów numerycznych: metoda prostokątów metoda trapezów metoda parabol (Simpsona) metoda Romberga metoda Monte Carlo
Metoda Monte Carlo Metoda Monte - Carlo jest prostą metodą, którą stosuje się w metodach numerycznych. Metoda ta służy do modelowania procesów złożonych, które nie mogą być modelowane za pomocą bardziej wyrafinowanych metod (tzn. o większej złożoności obliczeniowej).
Przykład zastosowania Monte Carlo – obliczanie całki - początek przedziału całkowania - koniec przedziału całkowania - funkcja podcałkowa - punkty losowo wybierane z przedziału - ilość losowanych punktów
Metoda Monte Carlo
( ) Schemat Blokowy Start Czytaj (a, n); s = 0; i = 1; Pisz (s); Stop NIE ( ) ; 1 - = a n s Pisz (s); i++; Stop
Obliczanie wyznacznika macierzy Zadanie Oblicz wyznacznik macierzy:
=WYZNACZNIK.MACIERZY(B2:F6)
Jak można stworzyć własny program? Twierdzenie (o rozwinięciu Laplace’a). Niech będzie dana macierz gdzie n > 1. Wówczas jest rozwinięciem Laplace’a względem j - tej kolumny.
Wzór rekurencyjny n – stopień macierzy
Wzór rekurencyjny Definicja Podwyznacznikiem (minor) macierzy A nazywamy wyznacznik macierzy powstałej przez skreśleniu i − tego wiersza i j − tej kolumny tej macierzy i jest oznaczany przez
Tworzenie programu Aby uniknąć zbędnego kopiowania elementów w programie wyliczającym wyznacznik macierzy, będziemy przekazywali tylko obraz minora w postaci wektora wiersza, a jego wymiar będzie oznaczał rozważaną kolumnę.
Tworzenie programu cd. - wektor wiersza numer kolumny = 2
Problem maksymalizacji zysku produkcji Zakład produkuje dwa wyroby, zużywając do tego celu pewną ilość środków produkcji, z których cztery: energia elektryczna, stal, drewno oraz praca są limitowane. W produkcji są zużywane w ilościach: Wyrób Energia Stal Drewno Praca I 5 6 10 II 25
Problem maksymalizacji zysku produkcji Zasoby tych środków wynoszą: energia – 1200 jednostek, stal – 600 jednostek, drewno – 420 jednostek, praca – 900 jednostek. Ile poszczególnych wyrobów powinien produkować zakład, aby zysk jego był maksymalny, jeżeli jednostkowy wynosi: z produkcji wyrobu I – 10 zł, wyrobu II – 20 zł. Zakładamy przy tym, że siła robocza musi być wykorzystana w takiej ilości jaką dysponuje.
Schemat rozwiązania Określenie danych wejściowych i celu, czyli wyniku Stworzenie modelu matematycznego Znaleźnie metody rozwiązania, czyli algorytmu Stworzenie własnego programu lub skorzystanie z już istniejącego Analiza poprawności rozwiązania
Programowanie liniowe Programowanie linowe jest działem matematyki poświęconym teorii i praktycznym algorytmom wyznaczania ekstremum funkcji wielu zmiennych przy ograniczeniach na obszar ich zmienności.
Programowanie liniowe Zagadnie programowania linowego formułuje się w następujący sposób: min (max) warunki ograniczające funkcja celu (funkcja ekonomiczna)
Programowanie liniowe Wspomniany wcześniej problem jest klasycznym przykładem zagadnienia programowania linowego. Funkcja celu - zmienne decyzyjne Warunki ograniczające bilans energii bilans stali bilans drewna bilans pracy warunki nieujemności
Obszar spełniający wszystkie warunki – obszar dopuszczalny Metoda graficzna Twierdzenie. Jeżeli istnieje rozwiązanie optymalne zadania programowania liniowego, to istnieje wierzchołek zbioru dopuszczalnego będący rozwiązaniem optymalnym. Rozwiązaniem zadania jest x1= 60 i x2 = 30 w którym funkcja celu osiąga wartość f(60, 30) = 1200 A(30, 60) Obszar spełniający wszystkie warunki – obszar dopuszczalny
Metoda eliminacji zmiennej Z równości w warunkach ograniczających możemy wyeliminować drugą zmienną i ograniczyć obszar poszukiwań: funkcja celu Warunki ograniczające
Za pomocą metody kolejnych iteracji przeszukujemy obszar możliwych rozwiązań w poszukiwaniu maksimum funkcji celu.
Warunki ograniczające: =B3*$B$7+C3*$C$7 =B4*$B$7+C4*$C$7 =B5*$B$7+C5*$C$7 =B6*$B$7+C6*$C$7 Komórki zmieniane Komórka celu: =10*B7+20*C7
gdy chcemy rozwiązać problem optymalizacji liniowej. Zaznaczenie tego pole przyśpieszy poszukiwanie rozwiązania w przypadku, gdy chcemy rozwiązać problem optymalizacji liniowej.
Sprawia, że dla wszystkich komórek zmienianych, dla których nie ustawiono dolnej granicy przyjmuje się dolną granicę równą 0.
Maksymalny zysk
Literatura S. Krawczyk „Programowanie Matematyczne, zbiór zadań”, PWE, Warszawa 1987 A. Kierzkowski „Turbo Pascal. Ćwiczenia praktyczne”, Helion, Gliwice 2006 M Sysło, „Elementy Informatyki”, PWN, Warszawa 1993 B. Gleichgewicht, „Algebra, Podręcznik dla kierunków nauczycielskich studiów matematycznych”, PWN, Warszawa 1983
Literatura Z. Suraj, T. Rumak „Algorytmiczne rozwiązywanie zadań i problemów”, Fosze, Rzeszów 1995 A. Sebyła „Algorytmy matematyczne języku Basic i Turbo Pascal”, PLJ, Warszawa1993
Internet Materiały dydaktyczne prof. Zbigniewa Łuckiego, „Matematyczne techniki zarządzania” Strony dydaktyczne, mgr Jerzy Wałaszek Algorytmy i struktury danych Nowe cechy języka Java w wersji 1.5
Metoda graficzna
Metoda graficzna
Metoda graficzna