PRACA DYPLOMOWA INŻYNIERSKA

Wielkość: px
Rozpocząć pokaz od strony:

Download "PRACA DYPLOMOWA INŻYNIERSKA"

Transkrypt

1 Politechnika Warszawska Rok akademicki 22/23 Wydział Elektroniki i Technik Informacyjnych Kierunek Elektronika i Telekomunikacja Specjalność Inżynieria Komputerowa PRACA DYPLOMOWA INŻYNIERSKA Dawid Mazurek System komputerowy minimalizacji funkcji boolowskich zmodyfikowaną metodą ekspansji. The computer system of Boolean function minimization by modified expansion method. Praca inżynierska Napisana pod kierunkiem Prof. dr hab. Tadeusza Łuby

2 Spis Treści Wstęp...3.Teoria Zmodyfikowana procedura Ekspansji Complement procedura uzupełniania Strategia minimalizacji Program Hummingbird Wnioski...39 Bibliografia...4 Dodatek...4 2

3 Wstęp Od czasu rozwoju elektroniki trudno sobie wyobrazić świat bez układów cyfrowych a co za tym idzie, standardowego ich pojęcia jakim są funkcje boolowskie potocznie zwane logicznymi. Rozwój ten pociągnął za sobą budowę coraz to bardziej zaawansowanych systemów komputerowych, systemów automatycznego sterowania czy też po prostu elektroniki użytkowej. Funkcje boolowskie możemy wykorzystać w prawie każdej dziedzinie nauki. Funkcje takie ściśle wiążą się ze stosowaniem bramek logicznych do konstrukcji układów i systemów cyfrowych. W dzisiejszych czasach dążymy do optymalnego wykorzystania przestrzeni i miniaturyzacji oraz energooszczędności. Programy komputerowe również w wielu przypadkach wymagają optymalnego wykorzystania pamięci i jak najmniejszej liczby instrukcji wykonywanych przez procesor. Stąd też wypracowano wiele metod minimalizacji funkcji boolowskich. Jedną z bardziej znanych jest heurystyczna metoda minimalizacji funkcji logicznych Espresso [2]. Została ona opracowana na Uniwersytecie Kalifornijskim w Berkeley na początku lat 8 ubiegłego wieku. Zyskała ona ogromną popularność dzięki wolnej dystrybucji oraz dużej skuteczności i wydajności czasowej obliczeń. Metoda Espresso ma również istotne ograniczenia. W szczególności nie posiada ona procedur redukcji argumentów. Wielokrotnie na przestrzeni lat zwracano na to uwagę w różnych pracach [], [7]. Powstało kilka programów na naszej uczelni służących do minimalizacji funkcji logicznych wykorzystując redukcję argumentów np. program Pandor realizujący redukcję i ekspansję, program Proton realizujący samą redukcję, czy też program Błyskawica również realizujący redukcję. Często również w tych programach w wyniku nieefektywnych procedur poszukiwania minimalnego pokrycia kolumnowego nie można było w pełni wykorzystać zalet redukcji argumentów. Jednocześnie sam problem redukcji argumentów zyskał ogromnie na znaczeniu w wyniku rozwoju informatyki, w której zagadnienie redukcji okazało się niezwykle ważne w zagadnieniach eksploracji danych i uzyskało nazwę redukcji atrybutów. Stąd też pomysł na moją pracę, której celem było stworzenie oprogramowania realizującego minimalizację za pomocą ekspansji wykorzystując redukcję oraz wydajniejsze procedury wyszukiwania pokryć kolumnowych. Tak oto powstał program Hummingbird. Niniejsza praca ma na celu porównanie i wykazanie, iż pod wieloma względami program Hummingbird radzi sobie sprawniej, szybciej i lepiej niż popularne procedury Espresso [2], RSES [], LERS [4], stosowane z jednej strony w syntezie logicznej układów cyfrowych, a drugiej w eksploracji danych. 3

4 Streszczenie Celem niniejszej pracy było stworzenie programu Hummingbird, który znajduje szczególne zastosowanie przy przeprowadzaniu eksperymentów w obszarze minimalizacji funkcji boolowskich i indukcji reguł decyzyjnych. Główny algorytm obliczeniowy programu stanowi procedura uzupełniania funkcji boolowskich. W pracy zaprezentowano metodologię przeprowadzania doświadczeń i porównań służących poszukiwaniu jak najefektywniejszych rozwiązań przy uogólnianiu i redukcji zbioru reguł decyzyjnych. Abstract The main objective of this thesis was to provide a tool (Hummingbird application) which would be particularly useful for conducting experiments in the area of Boolean function minimization and decision rule induction. The algorithm engine of the application is based on the complement of boolean functions. The thesis presents a methodology to carry out experiments and comparisons that would facilitate search for most effective solutions relating to decision rule set reduction and simplification. 4

5 .Teoria. Funkcje boolowskie, reguły decyzyjne Naturalną metodą specyfikacji funkcji boolowskich są tablice prawdy. Tablica prawdy to tabela która posiada n+ kolumn oraz m wierszy. Kolejno zapisywane są w tych wierszach wartości odpowiednich sygnałów wejściowych ( kolejne składowe wektora x) oraz wartości funkcji wyjściowych, y = f(x). Każdą funkcję którą opisuje tabela prawdy można przedstawić za pomocą odpowiedniego wyrażenia boolowskiego. Dla układów logicznych bardzo ważne jest uproszczenie wyrażeń boolowskich. Opracowano wiele metod realizacji tego procesu, powszechnie nazywanego minimalizacją funkcji boolowskiej. Niestety złożoność procesu minimalizacji ogranicza stosowanie systematycznych (dokładnych) metod minimalizacji. Bezpośrednią przyczyną nadmiernej złożoności jest ogromna liczba implikantów prostych, a także mało skuteczne algorytmy selekcji tych implikantów. Podobny problem występuje w algorytmach uogólniania reguł decyzyjnych dla tablic danych. Przykładem binarnej tablicy danych może być tablica pokazana na rysunku.4. Zapisane są w niej hipotetyczne dane dotyczące wyników ankiet zadowolenia klientów z działu obsługi telefonicznej. Klientom zadawano pięć prostych pytań na które mieli dopowiedzieć tak lub nie. Wynikiem była informacja czy po rozmowie klient jest zadowolony z obsługi czy też nie. Dla odpowiedzi na pytania tak przyporządkowano wartość, dla odpowiedzi nie, wartość. Ocena zadowolenia klienta została podana w kolumnie y wpisami tak/nie. Typowym dla takiego przykładu postępowaniem w eksploracji danych jest obliczenie uogólnionej reguły decyzyjnej, która określałaby dla dowolnych odpowiedzi na pytania z ankiet czy klient będzie zadowolony czy tez nie. Dla tablicy podanej na rys. możemy wyliczyć uogólnioną regułę decyzyjną w postaci : (x = ) & (x5 = ) lub (x3 = ) & (x4 = ) (y = tak) 5

6 Obliczenie tej reguły zostało wykonane znaną w syntezie logicznej procedurą Ekspansji. Rys. Przykładowa tablica a) prawdy b) danych binarnych. x x 2 x 3 f Widać iż zachodzi współzależność pomiędzy tabelami prawdy a tablicami decyzyjnymi. Tabele prawdy można łatwo przedstawić jako binarną tablicę danych. Sygnały wejściowe są odpowiednikami atrybutów, a decyzją jest wartość funkcji. Z tych powodów znany w eksploracji danych problem uogólniania reguł decyzyjnych można sprowadzić do problemu minimalizacji funkcji boolowskich. Stąd pomysł niniejszej pracy, aby w procesie minimalizacji funkcji boolowskich znacznie pełniej wykorzystywać strategie obliczeniowe eksploracji danych, i odwrotnie, aby w typowych algorytmach minimalizacji wykorzystać ostatnio opracowane szybkie procedury uzupełniania funkcji boolowskich..2 Minimalizacja funkcji boolowskiej Pojęciem podstawowym w metodzie ekspansji jest podobnie jak w innych metodach minimalizacji pojęcie kostki. Kostkami nazywać będziemy ciągi elementów ze zbioru {,, }. Kostki będziemy oznaczać nieindeksowanymi literami, na przykład K, a ich składowe będziemy indeksowali, na przykład k i. Również, w celu uproszczenia oznaczeń kostki (i wektory) będziemy zapisywać bez przecinków. Na przykład (,,,,) zapiszemy jako ( ). 6

7 Kostka to uproszczony zapis zbioru wektorów binarnych. Kostka K = ( ) reprezentuje zbiór wektorów: Kostka reprezentuje również niepełny iloczyn zmiennych binarnych: Na przykład kostkę K = można zapisać jako x x3. Najmniejszą kostkę nazywa się mintermem. Na przykład kostka jest mintermem, który może być zapisany w postaci iloczynu: x x2x3x4 Celem minimalizacji jest reprezentacja funkcji w postaci sumy iloczynów, dlatego taki najkrótszy iloczyn nazywa się implikantem v i v j v k + v p v q v r v s + (v oznacza afirmację albo negację zmiennej x) z najmniejszą liczbą składników oraz najmniejszą łączną liczbą literałów, co zapewnia realizację z np. najmniejszą ilością bramek AND i najmniejszą liczbą połączeń (ścieżek metalizowanych), czyli najmniejszą liczbą wejść do tych bramek ( rys.2 ) 7

8 Rys..2. Realizacja funkcji f: a) bezpośrednio, b) po procesie minimalizacji Implikant - danej funkcji f jest to iloczyn literałów (zmiennych prostych i zanegowanych) taki, że odpowiadający mu zbiór wektorów binarnych nie zawiera wektora zerowego funkcji. implikantem. Prosty implikant - jest to implikant, który zmniejszony o dowolny literał przestaje być Typowy proces minimalizacji funkcji boolowskiej składa się zatem wyłącznie z dwóch etapów, a mianowicie generacji implikantów prostych, a następnie ich selekcji. Niestety ogromna złożoność obliczeniowa procedur selekcji uniemożliwia zastosowanie takiej najprostszej, ale systematycznej i dokładnej strategii minimalizacji. 8

9 2. Zmodyfikowana procedura Ekspansji 2. Teoria ekspansji Ekspansja funkcji boolowskich została wykorzystana jako jedna z procedur metody minimalizacji funkcji logicznych Espresso, którą opracowano na Uniwersytecie Berkeley w Kaliforni przez R. Braytona, aby wykorzystywać ją przy projektowaniu układów logicznych [2], [8]. Procedurę ekspansji kostki k F wykonuje się biorąc pod uwagę zasadę, że składowa k * kostki k = ( k, k2,..., kn ) F można zastąpić przez ki * i wtedy, gdy w zbiorze R nie znajdzie się kostka r taka, że r k = ( e e,..., e ), gdzie e = θ dla j = i oraz *, 2 n i e = θ dla j i. Opis powyższy możemy rozumieć tak, iż dążymy do wygenerowania implikantów prostych które pokrywają kostkę k. Powiększamy kostkę k maksymalizujemy liczby * w definicji kostki, tak by nie pokryć jednocześnie żadnej kostki zbioru R który powstaje dla wartości funkcji. Definicję pokrycia obrazuje tablica Rys 2. [8] i i Rys 2. [7] Pokrycia Na tablicy tej przedstawiono, że kostka a pokrywa kostkę b, jeśli pokrywa kostkę b, jeśli a b a b. i i i a i a a b. Kostka a ściśle i i 2.2 Macierze generowane F i R Procedurę ekspansji rozpoczynamy generowaniem dwóch macierzy F i R z zbiorów F i R powstających zbioru funkcji poddawanej ekspansji. R są to wiersze dla których funkcja przyjmuje wartość równą, F wiersze dla których funkcja przyjmuje wartość równą. 9

10 Warto rozważyć to na przykładzie. x x 2 x 3 x 4 x 5 x 6 x 7 f k k 2 k 3 k 4 k 5 F = R = Rys 2.2 Przykład generowania macierzy F i R [8] Jak widać na powyższym rysunku z tablicy logicznej funkcji generuje się dwie tablice F i R. Trzeba tutaj zaznaczyć, że gdy funkcja posiada więcej niż jedno wyjście procedurę ekspansji trzeba zastosować osobno dla każdego wyjście. Gdy powstają przy tej procedurze identyczne wiersze ich nadmiar należy usunąć na samym początku. 2.3 Macierz blokująca B Macierz blokującą kostkę k definiujemy jako B(k,R) = [bij ], i R, j n w której element bij {,} może przyjmować następujące wartości: b b ij ij =,( k j = r = ) ( k =, pozostałe przypadki ij j = r ij = )

11 Z zapisu powyższego wynika, że macierz blokująca wyznacza maksymalny zakres jaki jest dopuszczalny dla danej kostki k należącej do zbioru F. Macierz blokująca powstaje poprzez porównanie danej kostki k do każdej z kostek w zbiorze R oraz stworzeniu nowej macierzy gdzie na pozycjach, które przyjmują przeciwne wartości dla składowych kostki z macierzy F i R wpisuje się. Przykład zastosowania powyższej zasady dla kostki k = pokazano na rysunku 2.3. R = B = Rys 2.3 Tworzenie macierzy blokującej dla kostki k [8] W podobny sposób postępujemy z kolejnymi kostkami z zbioru F i tworzymy macierze blokujące dla każdej z nich. Każdy z wierszy powstających w ten sposób macierzy blokujących powinien posiadać przynajmniej jedną. Gdyby zdarzyła się sytuacja, że któryś z wierszy macierzy B posiadałby same, znaczyło by to, iż funkcja którą poddajemy ekspansji jest sprzeczna kostka będąca także minitermem tej funkcji znajduje się również w zbiorze R. Gdy zostanie już wygenerowana macierz blokująca jest ona macierzą wyjściową do dalszego procesu ekspansji kostki. Pozycje oznaczone w macierzy B zawierają tzw. argumenty blokujące czyli takie które powinny być zachowane i są kluczowe aby żadna z kostek z zbioru F nie pokryła jakiejś kostki z zbioru R. Tak przygotowaną macierz B możemy poddać dalszemu krokowi ekspansji. 2.4 Wyszukiwanie minimalnego pokrycia kolumnowego Pokryciem kolumnowym macierzy blokującej B = [bij], i {,...,w}, j {,...,n} jest zbiór z numerami kolumn L {,..., n}, taki, że dla każdego i istnieje takie j L, dla którego bij =. Gwarantuje to, że w zbiorze tych kolumn każdy z wierszy macierzy B będzie posiadał co najmniej jedną.

12 Minimalne pokrycie kolumnowe jest to podzbiór L taki, że nie istnieje żaden mniejszy podzbiór L, który byłby pokryciem kolumnowym macierzy B. B = Rys 2.4 Macierz blokująca Na przykład dla macierzy blokującej przedstawionej na rysunku 2.4 dwa z pokryć kolumnowych to L = {2,3,6} oraz L={4,7}. Zgodnie z powyższą definicją minimalnym pokryciem kolumnowym danej macierzy B będzie L = {4,7}, ponieważ zawiera mniejszą liczbę elementów niż drugie podane pokrycie kolumnowe. Ekspansję kostki ki możemy zdefiniować jako: k + j k j, ( L, k) = *, gdy j L w pozostałych przypadkach Ekspansja danego zbioru pokrycia kolumnowego powstaje z kostki k gdy wstawiamy * czyli wartość nieokreśloną w miejscu argumentów na pozycjach o numerach nie należących do minimalnego pokrycia kolumnowego. Np. dla kostki k () gdy wyznaczyliśmy minimalne + = pokrycie kolumnowe macierzy B L={4,7} więc ekspansja kostki k ( L, k) (*****). Następnie wyznaczamy zbiór implikantów prostych korzystając z ekspansji kostki zapisanej tak, że jedynki odpowiadają kolejnym literałom określonym przez pozycję argumentu, gdy literał jest wpisywany w miejsce jest negowany a w miejscu * literały usuwamy z definicji implikantu. Przeprowadzając ekspansję otrzymujemy dla każdego z wektorów zbioru F będącego kostką k zbiór który definiuje pokrywające je implikanty proste. Należy podkreślić, że jest to inna strategia obliczeń niż stosowana w ekspansji programu Espresso. W programie Espresso nie oblicza się globalnego zbioru implikantów prostych. 2

13 Rys 2.5 Proces ekspansji w krokach. Powyższy rysunek przedstawia proces zmodyfikowanej ekspansji w krokach. Można je opisać następująco: ) Dla k obliczyć macierz blokującą, 2) Wyznaczyć wszystkie minimalne pokrycia kolumnowe. 3) Wyznaczyć wszystkie implikanty proste 4) Dopisać wyznaczone implikanty do ich zbioru 5) Powyższe kroki powtarzamy dla każdej kostki należącej do funkcji 6) Po utworzeniu zbioru implikantów prostych usuwamy implikanty powtarzające się. 3

14 3. Complement procedura uzupełniania 3. Teoria metody uzupełniania Uzupełnianie tak jak i ekspansja jest procedurą która należy do metody Espresso[7]. W Espresso wyznacza ona zbiór będący zbiorem wszystkich nieokreśloności funkcji czyli zbioru D. Natomiast w strategii minimalizacji programu Hummingbird procedura ta jest zastosowana do selekcji zbioru implikantów prostych. Procedurę uzupełniania zaczyna się od przekształcenia macierzy funkcji F w macierz porównań M. Proces tej transformacji możemy opisać : Każdy wiersz i macierzy M,która jest uzupełnieniem macierzy porównań M, reprezentuje pokrycie kolumnowe M, gdzie j M wtedy i tylko wtedy, gdy M ij =. Z powyższego stwierdzenia można wywnioskować że generowanie pokryć kolumnowych badanych macierzy możemy sprowadzić do obliczenia uzupełniania jednorodnej funkcji boolowskiej. Procedura ta jest nazywana Unate Complement. Użyta została w programie Hummingbird do wyszukiwania minimalnych pokryć kolumnowych wszelkich macierzy potrzebnych do obliczania ekspansji funkcji logicznych. Warto tutaj zaznaczyć, że wyszukiwanie minimalnych pokryć kolumnowych jest problemem NP zupełnym a więc skomplikowanym obliczeniowo i wymagającym sporych zasobów. 3.2 Rozkład Shannona Uzupełnianie polega na iteracyjnym rozkłądzie zbioru kostek pochodzących z macierzy F na kofaktory zerowy i jedynkowy. Powstaje w ten sposób struktura drzewa gdzie korzeniem jest rozkładana macierz a liściami poszczególne kofaktory, gdy spełniają one warunek zakończenia 4

15 rozkładu. Po zakończeniu rozkładu uzupełnienie macierzy M, a więc macierz M generujemy poprzez przejście przez całe drzewo od liści do korzenia. Postępuje się w ten sposób gdyż uzupełnienie funkcji reprezentowanej rozkładem Shannona: można wyznaczyć wyliczając kofakotry fxj oraz f, a w kolejnym kroku ich uzupełnienie: x j Następnie wyliczając uzupełnienie funkcji czyli f poprzez sklejanie poszczególnych wyników czyli kofaktorów minimalnych f xj oraz x j f. Dla funkcji monotonicznych, wyliczenie uzupełniania zostaje uproszczone do wzorów: 3.3 Algorytm Obliczenie kofaktorów otrzymanej macierzy M rozpoczynamy od wyboru odpowiedniej zmiennej do rozkładu, co ma istotne znaczenie dla redukcji obliczeń. Wybór zmiennej przeprowadzamy według następującego algorytmu: a) wybieramy kostkę (wiersz macierzy M) z największą liczbą zer, b) w wybranej kostce wybieramy zmienne zwierające jedynkę, c) spośród wybranych w punkcie b) zmiennych wybieramy tę, która ma nawięcej jedynek w swojej kolumnie. Kofaktory obliczamy wedłu następującego schematu : Kofaktor jedynkowy macierzy M względem zmiennej x j otrzymujemy, poprzez ustawienie wszystkich pozycji j-tej kolumny macierzy M na zera. Kofaktor zerowy macierzy M względem zmiennej x j otrzymujemy przez wypisanie z M tych kostek (wierszy), w których zmienna x j przyjmuje wartość zero. 5

16 Na przykład dla macierzy : M = wybór zmiennej x 3 prowadzi do wyznaczenia kofaktorów dla x 3 = oraz [ ] dla x 3 = Obliczanie uzupełnienia funkcji jednorodnej polega na rozkładaniu macierzy M na kostki, których uzupełnienie można łatwo obliczyć. Możemy wyróżnić trzy przypadki kiedy to kofaktor znajduje się w najprostszej postaci a więc staje się liściem drzewa kofaktorów. W wypadkach tych uzupełnienie oblicza się bezpośrednio z postaci uzyskanego kofaktora: a) Kofaktor jest zbiorem pustym. Tylko kofaktor może się znaleźć w takim stanie. Funkcja jest stałą o wartości logicznej. Jej uzupełnienie w tym wypadku jest funkcją stałą o wartości a więc tautologią. b) Kofaktor ma jeden z wierszy złożony z samych zer. Tylko kofaktor może się znaleźć w takim stanie. Jest to kostka uniwersalna a więc także tautologia. Uzupełnienie jest zbiorem pustym. c) Kofaktor z jednym wierszem. Pojedyncza kostka. Uzupełnienie kofaktora o jednym wierszu oblicza się zgodnie z następującymi zasadami: a) jeżeli kofaktor zawiera tylko jedną jedynkę, jego uzupełnienie jest identyczne jak kofaktor. b) jeżeli kofaktor zawiera więcej niż jedną jedynkę, jego uzupełnienie zawiera tyle kostek (wierszy), ile jest jedynek w kofaktorze, przy czym wszystkie wiersze mają jedynkę na 6

17 pozycjach odpowiadających kolejnym jedynkom kofaktora, a na pozostałych pozycjach są zera. Np. dla kofaktora [ ] uzyskujemy następującej jego uzupełnienie: Po obliczeniu uzupłenień na poszczególnych poziomach rozkładu możemy przystąpić do scalania poszczególnych wyników. Scalanie przeprowadzamy zgodnie z wzorem: F = x j F + F Oznacza to, że jeśli otrzymany kofaktor był zerowy ( oznaczony F ), to mnożymy go przez odpowiednie x j i dodajemy, a jeżeli był jedynkowy ( oznaczony F ), to tylko dodajemy. Na poniższym rysunku 3. przedstawiono rozkład funkcji na kofakotry. Można zauważyć, iż rozkład zatrzymuje się w momencie wystąpienia jednego z warunków zakończenia ( kofaktor minimalny czyli pojedynczy wiersz, tautologia czyli wiersz samych zer lub zbiór pusty). 7

18 Rys 3. Obliczanie uzupełnienia funkcji jednorodnej W wyniku scalania uzyskujemy macierz : 8

19 4. Strategia minimalizacji Celem niniejszej pracy było stworzenie programu komputerowego, który w procesie minimalizacji funkcji boolowskich wykorzystywać będzie dwa etapy obliczeń tj. generację implikantów prostych oraz ich selekcję. Jednak w odróżnieniu od klasycznego podejścia w procesie generacji implikantów zastosowano metodę ekspansji stosowaną w programie Espresso [2], a w procesie selekcji zastosowano metodę zaproponowaną w [] polegającą na wykorzystaniu szybkiego algorytmu uzupełniania funkcji boolowskiej. W rezultacie proces minimalizacji sprowadza się do następujących etapów: a) stworzenie macierzy blokującej B dla konkretnej kostki zbioru F b) obliczenie minimalnego pokrycia kolumnowego danej macierzy blokującej B z wykorzystaniem metody uzupełniania funkcji logicznych c) utworzenie minimalnego zbioru implikantów dla każdej kostki zbioru F d) stworzenie globalnej tablicy implikantów prostych i wyszukanie jej minimalnego pokrycia kolumnowego e) wyznaczenie minimalnego zbioru implikantów, który będzie reprezentował wszystkie kostki pierwotnej funkcji przy kolejnym zastosowaniu procedury uzupełniania funkcji boolowskich Przykład: Tabela funkcji f = Kolejne wiersze tej tabeli zawierają kostki funkcji które możemy oznaczyć jako k,,k7; składowe każdej z kostek oznaczymy x,,x9. 9

20 Tabela funkcji f = Macierz blokująca dla kostki k = () Obliczamy minimalne pokrycie kolumnowe danej macierzy i uzyskujemy zbiór implikantów prostych (zapis w postaci kostek): ******* ******* Postępując tak samo dla wszystkich kostek obliczamy pozostałe implikanty i uzyskujemy globalny zbiór wszystkich implikantów: ******* ==>!x5x6 I ******* ==> x6x7 I2 ******* ==> x2x9 I3 ******* ==>!x3!x4 I4 ******* ==>!x3x5 I5 ******* ==>!x3x6 I6 ******* ==>!x3!x7 I7 ******* ==>!x3x8 I8 ******* ==>!x3x9 I9 ******* ==>!x4x9 I ******* ==> x5x9 I ******* ==> x6x8 I2 ******* ==> x6x9 I3 ******* ==>!x7x9 I4 ******* ==> x8x9 I5 ******* ==> xx7 I6 ******* ==> xx9 I7 ******* ==> x5x7 I8 ******* ==>!x2x8 I9 ******* ==> x4x8 I2 ******* ==>!x5!x7 I2 ******* ==>!x2!x3 I22 2

21 Kolejne implikanty proste oznaczamy od I,, I22 W tym wypadku globalna tablica implikantów prostych będzie się przedstawiać następująco: Kolumny oznaczamy od I do I22. Minimalne pokrycia kolumnowe tej macierzy to : L={,9,8,2} oraz L = {2,9,8,2} stąd też odpowiadające numerom kolumn implikanty proste tworzą zbiory, które przedstawiają wszystkie minimalne rozwiązania. Odpowiednie wyrażenia boolowskie są następujące: y =!x5x6 +!x3x9 + x5x7 +!x5!x7 y = x6x7 +!x3x9 + x5x7 +!x5!x7 Warto tutaj zaznaczyć, że wynik uzyskany przez program Espresso y =!x5!x7 + x3x7!x8!x9 + x5x7 +!x3x9 jest gorszy ze względu na liczbę literałów. Trzeba jednak pamiętać, iż metoda ta ma swoje ograniczenia. Dla większych funkcji gdy tablica implikantów prostych staje się zbyt duża aby znaleźć pokrycie kolumnowe, liczenie systematyczne traci sens ze względu na ilość czasu potrzebną do obliczeń oraz zapotrzebowanie na zasoby. Korzystne w tym wypadku jest wykorzystanie procedury redukcji argumentów. Po wyszukaniu minimalnej liczby argumentów od których funkcja zależy możemy utworzyć nową tablicę funkcji logicznej zawierającą tylko wartości funkcji dla wyliczonych reduktów. Powoduje to zmniejszenie wymiarów tablicy, a w rezultacie znacząco upraszcza obliczenia. 2

22 Przykładowo rozważmy poniżej podaną funkcję kaz.pla. Variables = 2 Functions = Data lines = 3 W podanej powyżej funkcji tablica implikantów prostych jest takich rozmiarów, iż trudne okazuje się znalezienie jej pokrycia kolumnowego nawet przy zastosowaniu rozkładu Shannona. W wypadku tym obliczamy redukty dla tej funkcji. 22

23 Wyliczone redukty za pomocą programu Pandor : R = {x,x5,x8,x,x5} R2 = {x2,x4,x5,x9,x8} R3 = {x2,x4,x5,x8,x2} R4 = {x2,x4,x7,x9,x6} R5 = {x2,x4,x7,x9,x9} R6 = {x2,x4,x9,x,x9} R7 = {x2,x4,x9,x3,x9} R8 = {x2,x4,x9,x5,x9} R9 = {x2,x4,x9,x7,x9} R = {x2,x4,x9,x8,x9} R = {x2,x4,x9,x9,x2} R2 = {x2,x4,x,x9,x2} R3 = {x2,x4,x6,x7,x2} R4 = {x2,x5,x8,x7,x2} R5 = {x2,x9,x,x9,x2} R6 = {x2,x,x6,x7,x2} R7 = {x3,x5,x8,x,x5} R8 = {x4,x5,x8,x,x5} R9 = {x4,x7,x8,x9,x9} R2 = {x4,x7,x9,x2,x9} R2 = {x4,x7,x9,x6,x9} R22 = {x4,x9,x,x3,x6} R23 = {x4,x9,x2,x7,x9} R24 = {x4,x9,x4,x6,x7} R25 = {x4,x9,x6,x7,x9} R26 = {x4,x,x5,x7,x9} R27 = {x4,x,x2,x3,x6} R28 = {x4,x6,x7,x9,x2} R29 = {x5,x8,x,x,x5} R3 = {x5,x8,x,x2,x5} R3 = {x5,x8,x,x5,x7} R32 = {x5,x8,x,x5,x9} R33 = {x5,x8,x2,x3,x4} R34 = {x8,x,x5,x9,x2} R35 = {x,x5,x7,x9,x2} Posiadając listę reduktów możemy wybrać którykolwiek z nich i na tej podstawie stworzyć nową tabelę funkcji, opartą na wybranym zestawie reduktów. 23

24 Przykładowo wybierając redukt czyli R = {x2,x4,x9,x8,x9} otrzymujemy następującą tabelę zredukowanej funkcji kaz.pla: Po zastosowaniu ekspansji zgodnie z podanymi na początku tego rozdziału etapami otrzymujemy w bardzo krótkim czasie następujące rozwiązania : y =!x2x4!x9 + x4!x9x8 + x2!x4x9x9 +!x2!x4x9!x8 y =!x2x4!x9 + x4!x9x8 + x2!x4x9x9 +!x2!x4x9!x9 y =!x2x4!x9 + x4!x9x8 + x2!x4x8x9 +!x2!x4x9!x8 y =!x2x4!x9 + x4!x9x8 + x2!x4x8x9 +!x2!x4x9!x9 y =!x2x4!x9 + x2!x4x9x9 +!x2!x4x9!x8 + x2!x9x8 y =!x2x4!x9 + x2!x4x9x9 +!x2!x4x9!x9 + x2!x9x8 y =!x2x4!x9 + x2!x4x8x9 +!x2!x4x9!x8 + x2!x9x8 y =!x2x4!x9 + x2!x4x8x9 +!x2!x4x9!x9 + x2!x9x8 Zastosowanie redukcji umożliwia szybkie znalezienie rozwiązań dla większych i bardziej skomplikowanych funkcji boolowskich. 24

25 5. Program Hummingbird 5. Ogólny opis programu Program Hummingbird został stworzony specjalnie na potrzeby tej pracy dyplomowej. Jego zadaniem jest nowoczesne podejście do tematu minimalizacji funkcji boolowskich. Ma sprawdzić efektywność procesu uogólniania reguł decyzyjnych i poszukać granic tej efektywności w obliczeniach systematycznych. Jest dobrym narzędziem które może być wykorzystane do wszelkich dziedzin nauki i techniki, gdzie do czynienia mamy z funkcjami logicznymi. Jednocześnie dzięki zastosowaniu procedury Complement do wyszukiwania minimalnego pokrycia kolumnowego, znacznie zyskuje na efektywności czasowej wyszukiwanie końcowego rozwiązania. 5.2 Okno główne oraz funkcje Hummingbird charakteryzuje się bardzo prostym interfejsem graficznym. Ma być to narzędzie które służy do eksperymentów dlatego interfejs taki w pełni spełnia swoją rolę jednocześnie nie wymagając od użytkownika znajomości skomplikowanych funkcji. Całość jest intuicyjna. Okno główne przedstawiono na rysunku 5. 25

26 Rys 5. Okno główne programu Hummingbird W oknie głównym możemy znaleźć trzy przyciski oraz jedno okno wyboru opcji. Wyniki oraz wczytana funkcja logiczna podawane są w oknie tekstowym po prawej stronie przycisków. Krótki opis funkcji każdego z przycisków: Otwórz plik jak sama nazwa wskazuje przycisk ten służy do wczytywania funkcji logicznych które pragniemy poddać procesowi uogólniania reguł decyzyjnych. Program wczytuje pliki z funkcjami logicznymi w standardzie Espresso a więc z rozszerzeniem *.pla. Dzięki temu możliwe jest łatwe porównanie efektywności oraz wydajności obu programów. Możliwe jest wczytywanie funkcji podawanych w sposób standardowy lub funkcji z kostakmi czyli takich w których niektóre z argumentów przyjmują obie wartości oraz. Są one w tym wypadku oznaczone w wierszach jako -. 26

27 Ekspansja przycisk ten służy do wyliczenia uogólnionych reguł decyzyjnych dla funkcji wczytanej przez program. Nie jest możliwe rozpoczęcie obliczeń bez wczytanej funkcji. Jest on aktywny gdy funkcja logiczna zostaje załadowana z wskazanego pliku oraz wyświetlona w oknie tekstowym. Sposób realizacji procedury ekspansji zależy od wybranych opcji. Gdy nie jest zaznaczona opcja Heurystyka program dokonuje wyliczeń w sposób systematyczny. Wynik w tym wypadku jest jak najbardziej optymalny. Jeśli funkcja jest zbyt duża do wyliczenia program wyświetla komunikat pokazany na rysunku 5.2 Rys 5.2 Komunikat wyświetlany gdy funkcja jest zbyt duża do wyliczenia w sposób systematyczny. W takim wypadku należy włączyć opcję heurysytczną poprzez zanznaczenie okienka wyboru tej opcji poniżej przycisków głównych. Niestety mimo tego, iż opcja heurystyczna jest bardziej wydajna od systematycznej traci na tym efektywność wyniku końcowego. Po zaznaczeniu opcji Heurystyka klikamy ponownie przycisk Ekspansja aby rozpocząć obliczenia z zastosowaniem heurystyki. 27

28 Wprowadź redukty przyciśniecie tego przycisku powoduje wyświetlenie okna przedstawionego na rysunku 5.3. Rys 5.3 Okno wprowadzania reduktów funkcji logicznej. Okno to pozwala wprowadzić redukty wczytanej funkcji logicznej. Na dzień dzisiejszy redukty należy wprowadzić ręcznie poprzez podanie ich jako liczb oddzielonych spacjami. Po wpisaniu zatwierdzamy przyciskiem wczytaj redukty. Program Hummingbird na nowo tworzy wtedy tabelę logiczną funkcji opierając się na podanych reduktach. Oczywiście znacznie zmniejsza to pierwotnie podaną funkcję dzięki czemu korzystając z podanych reduktów możemy wyliczyć w sposób systematyczny bardziej skomplikowane funkcje. Docelowo program Hummingbird będzie posiadał opcję wyliczania reduktów wczytanej funkcji logicznej jednak jest to tematem odrębnej pracy dyplomowej. Heurystyka to okienko wyboru opcji służy do włączenia heurystyki dla obliczania uogólnionych reguł decyzyjnych. Jak sama nazwa wskazuje heurystyka jest metodą znajdowania rozwiązań, w której nie mamy gwarancji znalezienia rozwiązania optymalnego. Rozwiązania tego używamy wtedy gdy wyliczenie funkcji w sposób systematyczny jest zbyt kosztowne a nie chcemy 28

29 poddawać jej redukcji. Różnica w wyliczeniach polega na zastosowaniu innego sposobu wyszukiwania minimalnego pokrycia kolumnowego dla macierzy implikantów prostych. Algorytm heurystyczny możemy opisać w następujących krokach: ) Proces wstępny : Wyszukiwanie implikantów zasadniczych. Wyszukiwanie to realizujemy poprzez znalezienie wierszy które zawierają tylko jedną jedynkę w tablicy implikantów prostych. Po odnalezieniu takiego wiersza wykreślamy z tablicy implikantów kolumnę wskazaną przez jedynkę oraz wszystkie wiersze które w tej kolumnie mają jedynkę 2) Wyszukiwanie wiersza z najmniejszą liczbą jedynek. Jedynki w wybranym wierszu wskazują kolumny. 3) Spośród wskazanych przez wiersz kolumn wybieramy kolumnę z największą ilością jedynek i wykreślamy kolumnę oraz jednocześnie wiersze które w wybranej kolumnie mają jedynki. Wybrana kolumna wskazuje implikant wchodzący w skład rozwiązania 4) Proces powtarzamy od punktu 2 aż do całkowitego wykreślenia wierszy i kolum z tablicy implikantów prostych. Na rysunku 5.4 przedstawiono program Hummingbird wraz z wczytaną funkcją logiczną oraz z podanymi rozwiązaniami procedury uogólniania reguł decyzyjnych. Po wczytaniu funkcji podawana jest liczba wejść funkcji logicznej, liczba jej wyjść oraz linie tabeli prawdy czyli ilość wierszy z wartościami poszczególnych argumentów. Argumenty funkcji zostają ponumerowane. Jak widać na rysunku dla wczytanej funkcji przyjmują oznaczenia x,, x9. Wyjście funkcji oznaczono jako y. 29

30 Rys 5.4 Okno główne z wczytaną funkcją oraz podanym rozwiązaniem 5.3 Wyniki eksperymentów Zbadanie możliwości obliczeń systematycznych w procesie minimalizacji funkcji boolowskich polegało na analizie kilku przykładów, które uporządkowano według rosnącej liczby argumentów/atrybutów w zależności od zastosowań, czyli oprogramowania użytego do porównań. Wyniki uzyskane programem Espresso, RSES porównano z wynikami uzyskanymi programem Hummingbird. Porównania dokonano na następującej platformie sprzętowej: - procesor Intel Core 2 Duo CPU T93 2,5 GHz - pamięć operacyjna RAM 2GB - system operacyjny Microsoft Windows XP Professional 3

31 Program Espresso w procesie minimalizacji funkcji boolowskich korzysta z własnych procedur pokazanych na rysunku 5.5. Rys 5.5 Procedury programu Espresso W programie Hummingbird do obliczeń stosuje się algorytmy systematyczne bazujące na zmodyfikowanej procedurze ekspansji (Expand) i uzupełniania (Complement) również wywodzących się z Espresso. Program Espresso generuje jedno zoptymalizowane wyrażenie boolowskie, natomiast w przypadku Hummingbird generowane są zestawy rozwiązań o najmniejszej liczności pod względem liczby termów tzn. generowane jest więcej niż jedno rozwiązanie w przypadku gdy występują rozwiązania równoliczne. W każdym z przypadków badano liczbę implikantów oraz liczbę argumentów użytych w rozwiązaniu dla danej funkcji oraz maksymalną liczbę argumentów w największym implikancie rozwiązania. 3

32 Przykła d Licz ba obie któw Liczb a atryb utów Wynik Espresso l. r e g l.a rg. /m ax atr Wynik Hummingbird l.r e g l.arg./m ax atr DGL 2 7 y = x6x7 + x5x6 + x4!x5 + x2!x4 4 5/ 2 y: x3+x4x6+x2!x4 y: x3+x4x6+!x4x5 y: x3+x4x6+x2x7 y: x3+x4x6+x5x7 3 5/2 MARK 7 7 y = x2x3!x5!x6!x7 +!x2!x3!x4!x5!x6 +!x2x3!x4!x5!x7 3 6/ 5 y:!x3x7+!x2x3x6+!xx2x3+x!x2+x2x4 y:!x3x7+!x2x3x6+!xx2x3+x!x2+xx4 y:!x3x7+!xx3x6+!xx2x3+x!x2+x2x4 y:!x3x7+!xx3x6+!xx2x3+x!x2+xx4 5 6/2 TL27 25 y =!x5!x6x8 +!x!x2!x5 + x5!x6!x8!x + x4!x7x + x7!x9 + x6x7x 6 9/ 4 y:!xx+!x!x2x8+!x!x4!x6+x7!x9+xx2x4 y:!xx+!x!x2!x7+!x!x4!x6+x7!x9+xx2x4 y:!xx+!x!x2!x5+!x!x4!x6+x7!x9+xx2x4 y:!xx+!x2!x3+!x!x4!x6+x7!x9+xx2x4 5 8/3 32

33 KAZ 3 2 y =!x2x4!x9x2 + x7!x8!x2 + x5x8!x2 3 9/ 4 Funcja zbyt duża dla reduktów : x2 x4 x9 x9 x2 y:!x2x4!x9+x2x9!x2+!x2!x4x9!x9 y:!x2x4!x9+x2x9!x2+!x2x9!x9!x2 dla reduktów : x2 x4 x9 x9 x2 3 5/4 HOUSE y = x6!xx4 + x2!x3 +!x4!x7x5 + x!x3 +!x3x4 +!xx6!x5!x6 6 2 /4 Funkcja zbyt duża dla reduktów: x x2 x4 x6 x3 x4 x5 x6 y: x2!x3+x4!x3+!x3x4+x6!x3+x4x6x4x5+!x4!x4x5+!xx6!x5!x6 y: x2!x3+!x3x4+!x3!x6+x6!x3+x4x6x4x5+! x4!x4x5+!xx6!x5!x6 7 8/4 Wyniki eksperymentów pokazują, że w większości przypadków poddawanych analizie, metoda systematyczna dostarcza dużo wydajniejszych rozwiązań. W prawie każdej analizowanej funkcji maksymalna liczba argumentów w rozwiązaniach generowanych przez Hummingbird jest niższa niż w tych które generuje Espresso, w pozostałych jest równa. Rozważając wyniki eksperymentów na poszczególnych funkcjach możemy stwierdzić, iż w każdym z przypadków rozwiązania generowane przez program Hummingbird są znacznie korzystniejsze niż te podawane przez Espresso. Jeśli nawet liczba termów jest większa to za każdym razem rozwiązanie zawiera mniejszą maksymalną liczbę argumentów przypadających na term lub rozwiązanie jest podane na mniejszej liczbie argumentów. Przykładem może być funkcja TL27. Espresso w tym wypadku generuje rozwiązanie na 6 termach z wykorzystaniem 9 argumentów i maksymalną liczbą 4 argumentów w termie; Hummingbird generuje rozwiązanie na 5 termach z wykorzystaniem 8 argumentów i maksymalną liczbą 3 argumentów w termie. Mniejsze liczby argumentów, termów i maksymalnej liczby argumentów w termach wskazują, że rozwiązanie Hummingbird a jest bardziej optymalne i mniej złożone. 33

34 Jednak daje się także dostrzec ograniczenia systematycznego sposobu obliczania minimalnych postaci funkcji. Dla funkcji takich jak HOUSE czy KAZ Hummingbird informuje, iż funkcje te są zbyt skomplikowane do wyliczeń systematycznych. Wiąże się to z ilością pamięci potrzebną do zapisu drzewa rozkładu kofaktorów tablicy implikantów prostych. Wzrost liczby argumentów zwiększa ilość generowanych implikantów, co powoduje wzrost zapotrzebowania na zasoby sprzętowe. W tym przypadku można skorzystać z zewnętrznej procedury redukcji argumentów-atrybutów dla wczytanej funkcji boolowskiej. Procedury takie zostały opracowane m.in. w [] oraz pracach dyplomowych [5], [6]. Opracowane w ramach tych prac algorytmy redukcji argumentów działają wielokrotnie szybciej niż analogiczny algorytm w systemie RSES. Dzięki temu obliczenie rozwiązania dla większych przykładów (metodą systematyczną) nie stanowi problemu. Np. funkcja HOUSE poddana została procedurze ekspansji po podaniu najmniej licznego jej reduktu tj. : x x2 x4 x6 x3 x4 x5 x6. Po wykorzystaniu tych reduktów program Hummingbird po raz kolejny generuje rozwiązanie korzystniejsze od Espresso. Espresso podaje 6 termów na 2 zmiennych i maksymalnej liczbie argumentów w termie 4, a Hummingbird co prawda 7 termów, jednak na 8 argumentach - także przy maksymalnej liczbie argumentów w termie 4. Oczywiście można również skorzystać z procedury heurystycznej. Warto wspomnieć tutaj, że jakość rozwiązań nie wiąże się z większym czasem obliczeń. Implikanty w przypadku nawet skomplikowanych funkcji przy użyciu redukcji generowane są w ułamkach sekund. Duże znaczenie ma tutaj zastosowanie procedury Complement, która wydajnie i szybko poszukuje minimalnych pokryć kolumnowych. Ciekawym doświadczeniem jest również porównanie programu Hummingbird z programem Pandor. Program Pandor realizował podobnie jak Hummingbird procedurę ekspansji oraz posiadał procedurę redukcji argumentów funkcji logicznej. Jednak nie zastosowano w nim algorytmu Complement do wyszukiwania minimalnych pokryć kolumnowych. Poniżej przedstawiono porównanie tych dwóch programów pod względem czasu obliczeń uogólnionych reguł decyzyjnych dla różnych funkcji logicznych. 34

35 Porównanie czasu obliczeń dla różnych funkcji logicznych Funkcja Liczba Liczba Czas obliczeń Czas obliczeń obiektów atrybutów Pandor Hummingbird A.pla s 2s F5.pla s 2s TL27.pla 25 28s s< B2.pla 3 7s s< K3.pla 45 3 >8s 23s Rys 5.6 Porównanie czasu obliczeń programu Pandor oraz Hummingbird Jak widać dzięki zastosowaniu Complement u do poszukiwania minimalnych pokryć kolumnowych uzyskano wielokrotnie lepsze czasy obliczeń. Odrębnego omówienia wymaga zastosowanie zaproponowanej metody minimalizacji do eksploracji danych. Nietrudno wykazać, że w procedurach indukcji (generacji) reguł decyzyjnych można zastosować te same algorytmy, jakie stosuje się w procesach minimalizacji funkcji boolowskich. W tym przypadku będziemy porównywali wyniki obliczeń ze słynnym systemem eksploracji danych jakim jest RSES (Rough Set Exploration System), opracowany na Wydziale Matematyki Uniwersytetu Warszawskiego i omawiany w dziesiątkach publikacji na całym świecie. Na wstępie pokażemy (na przykładzie prostej funkcji EXTL) różnice w specyfikacjach danych dla potrzeb syntezy logicznej oraz eksploracji danych. Funkcja EXTL zapisana w standardzie Espresso (stosowanym również w programie Hummingbird) oraz ta sama funkcja zapisana w standardzie systemu RSES podane są w poniższych tablicach. 35

36 Program Hummingbird generuje dla tej funkcji (w obliczeniach systematycznych) następujące minimalne wyrażenie boolowskie: y:!x4!x7+x2!x6 Warto podkreślić, że taki sam wynik program Hummingbird wygeneruje w obliczeniach heurystycznych. Wynik procedury indukcji reguł uzyskany w systemie RSES dla tej samej funkcji jest następujący: (x=)&(x5=)&(x6=)&(x2=)=>(x8=) (x=)&(x2=)&(x5=)&(x3=)&(x4=)&(x6=)=>(x8=) (x4=)&(x=)&(x2=)&(x7=)=>(x8=) (x2=)&(x4=)&(x5=)&(x6=)=>(x8=) 36

37 Uwzględniając reguły z istotną dla układów logicznych wartościa decyzji x8 = i zpisując te reguły w postaci wyrażenia boolowskiego uzyskujemy: y:!x4x!x2!x7+x2!x4x5!x6 Na tej podstawie stwierdzamy, że obliczenia zmodyfikowaną metodą ekspansji pozwalają uzyskać ogólniejsze reguły. Należy jednak mieć świadomość, że obliczenia systematyczne dla algorytmów minimalizacji funkcji boolowskich, jak tez dla algorytmów indukcji reguł decyzyjnych, należą do klasy problemów o ogromnej złożoności obliczeniowej. I już dla większych przykładów (np. omawianych wyżej funkcji House i Kaz) obliczenia systematyczne są niemożliwe. Z tych powodów do programu Hummingbird wprowadzono specjalną procedurę heurystyczną. Działanie tej procedury jest bardzo skuteczne. Świadczą o tym m.in. eksperymenty z przykładami Lei3 oraz I2S6A. Tablice prawdy tych przykładów, a także poprzednio omawianej funkcji House podane są w dodatku oraz dołączone na płycie CD. Reguły Lei3 wg procedury LEM2 programu RSES DECISION_VALUES 2 RULES: (x5=)&(x28=)&(x27=)&(x=)=>(x3={[8]}) (x22=)&(x6=)&(x=)&(x9=)&(x5=)=>(x3={[7]}) (x7=)&(x=)&(x2=)&(x29=)&(x4=)=>(x3={[7]}) (x5=)&(x2=)&(x6=)&(x7=)&(x25=)=>(x3={[6]}) (x4=)&(x2=)&(x6=)&(x2=)=>(x3={[6]}) (x2=)&(x4=)&(x3=)&(x2=)&(x9=)=>(x3={[5]}) (x7=)&(x5=)&(x25=)&(x3=)&(x8=)=>(x3={[3]}) (x8=)&(x26=)&(x2=)&(x7=)&(x27=)&(x4=)&(x5=)&(x=)&(x2=)&(x3=) =>(x3={[3]}) (x=)&(x=)&(x=)&(x2=)&(x22=)&(x3=)&(x2=)=>(x3={[3]}) (x2=)&(x8=)&(x3=)&(x4=)&(x5=)&(x7=)=>(x3={[3]}) Dla potrzeb porównania zapiszemy reguły dla decyzji o wartości w postaci wyrażenia boolowskiego 37

38 x5x28!x27x +!x7x5!x25x3!x8 + x8x26x2!x7!x27x4!x5xx2!x3 +!xxx!x2x22x3x2 +!x2x8!x3!x4x5x7 = Łatwo zauważyć, że Ekspansja funkcji Lei3 wg Hummingbird: y:!x7!x8!x25+x2x4!x8+x23x24x26+!x6!x!x28+!x4x8!x2 jest reprezentowana znacznie prostszym wyrażeniem. Reguły I2S6A wg procedury LEM2 programu RSES DECISION_VALUES 2 RULES (x=)(x6=)(x=)(x3=)(x4=)=>(x2=[5]) 5 (x3=)(x5=)(x=)(x7=)=>(x2=[5]) 5 (x2=)(x4=)(x7=)=>(x2=[5]) 5 (x2=)(x3=)(x8=)(x6=)(x4=)(x9=)=>(x2=[5]) 5 (x=)(x4=)(x6=)(x5=)(x8=)=>(x2=[5]) 5 (x8=)(x2=)(x8=)(x2=)(x6=)(x=)=>(x2=[5]) 5 (x=)(x5=)(x4=)(x9=)(x4=)(x=)=>(x2=[4]) 4 (x6=)(x=)(x=)(x2=)(x=)=>(x2=[3]) 3 (x=)(x8=)(x3=)(x6=)(x7=)=>(x2=[3]) 3 (x=)(x4=)(x2=)(x4=)(x3=)(x6=)(x5=)(x7=)=>(x2=[]) Podobnie jak poprzednio zapisujemy powyższe reguły dla decyzji!xx6x!x3!x4 +!x3x5!x!x7 +!x2!x4!x7 +!x!x5x4x9!x4x + x6!xxx2!x = i porównujemy z wynikiem obliczonym programem Hummingbird: Ekspansja funkcji : y:!x7x9!x+x2x6+!x4x2+x6!x8!x2+!x!x5!x7 38

39 6. Wnioski Program Hummingbird, który powstał na potrzeby tego opracowania i przeprowadzone przy jego pomocy eksperymenty pokazują, że stosowane dzisiaj narzędzia do eksploracji danych nie wykorzystują do końca możliwości dostępnych i znanych algorytmów używanych w syntezie logicznej. Przy stosowaniu w procedurach eksploracji danych algorytmu uzupełniania funkcji boolowskiej Complement, możemy znacznie przyśpieszyć proces obliczania minimalnych reguł decyzyjnych w sposób systematyczny. Oczywiście jak każdy, również ten algorytm ma swoje ograniczenia i zawsze znajdą się funkcje, które wskutek dużej ilości danych wejściowych będą wymagały zbyt dużych zasobów, aby realizować takie wyliczenia w sposób systematyczny. Jednak wtedy z pomocą przychodzi wykorzystanie algorytmu obliczania reduktów danej funkcji, który dzięki swojej szybkości daje możliwość zminimalizowania danych wejściowych funkcji do postaci możliwej do wyliczenia w sposób systematyczny. Można również opracowywać specjalne procedury heurystyczne. Również w Hummingbird jedną z takich heurystycznych procedur zaimplementowano. Po przeprowadzonych doświadczeniach można zauważyć, iż w wielu przypadkach zastosowanie heurystyki generuje równie dobre rozwiązania co metoda systematyczna. Eksperymenty z takimi procedurami wykonane w ramach niniejszej pracy pozwalają stwierdzić, że prace nad takimi metodami powinny być kontynuowane, gdyż pokazały, że możliwe jest uzyskanie lepszych wyników zarówno pod względem uogólniania reguł decyzyjnych (nawet w porównaniu do słynnego systemu RSES), jak też minimalizacji funkcji boolowskich (w porównaniu do metody Espresso). Z tych powodów program Hummingbird można uznać za skuteczne narzędzie, które można wykorzystać jako punkt wyjściowy do dalszych poszukiwań jeszcze wydajniejszych algorytmów a także z powodzeniem używać jako zamiennik Espresso czy też systemu RSES. Skuteczniejsze algorytmy w procedurach uogólniania reguł decyzyjnych lub minimalizacji funkcji boolowskich łatwo przenoszą się na wymierne korzyści w realizacjach układów logicznych o znacznie mniejszej złożoności, jak też eksplorację coraz większych baz danych. 39

40 Bibliografia [] Borowik, G., Łuba, T., Zydek, D.: Features Reduction using logic minimization techniques. In: Intl. Journal of Electronics and Telecommunications, vol. 58, No., pp. 7-76, (22) [2] Brayton R.K., Hachtel G.D., McMullen C.T., Sangiovanni-Vincentelli A.: Logic Minimization Algorithms for VLSI Synthesis, Kluwer Academic Publishers, 984. [3] Cagara M.: Minimalizacja funkcji boolowskich metodą redukcji i ekspansji. Praca dyplomowa, WEiTI 25. [4] Grzymała-Busse J.W.: LERS A System to Learning from Examples Based on Rough Sets. In: Słowiński R. (ed.): Intelligent Decision Support Handbook of Application and Advanced of the Rough Sets Theory, Kluwer Academic Publishers, 992. [5] Królikowski K.: Implementacja algorytmu obliczania reduktów metodą uzupełniania funkcji boolowskich, praca dyplomowa, WIT, Warszawa 22. [6] Księżak M.: Redukcja atrybutów metodą uogólniana reguł decyzyjnych. Praca dyplomowa, WEiTI 2/2. [7] Łuba T., Rybnik J.: Rough Sets and Some Aspects in Logic synthesis. In: Słowiński R. (ed.): Intelligent Decision Support Handbook of Application and Advances of the Rough Sets Theory, Kluwer Academic Publishers, 992. [8] Łuba T.: Synteza układów logicznych, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 25. [9] Pawlak Z.: Rough Sets: Theoretical Aspects of Reasoning about Data. Kluwer Academic Publishers, 99. [] RSES Rough Set Exploration System, [] Skowron A., Rauszer C.: The Discernibility Matrices and Functions in Information Systems. In: Słowiński R. (ed.): Intelligent Decision Support - Handbook of Application and Advances of the Rough Sets Theory, Kluwer Academic Publishers, 992. [2] [3] [4] [5] 4

41 Dodatek Funkcja DGL.type fr.i 7.o.p 2.e Funkcja MARK.type fr.i 7.o.p 7.e 4

42 Funkcja TL27.type fr.i.o.p 25.e Funkcja KAZ.type fr.i 2.o.p 3 42

43 .end Funkcja HOUSE.type fr.i 6.o.p

44 44

45 45

46 46

47 47

48 .e Funkcja LeI3.type fr.i 3.o.p 5 48

49 .e 49

50 Funkcja I26A.type fr.i 2.o.p 4.e 5

51 Funkcja A.i 22.o.p 3.type fr.e Funkcja B2.i.o.p 3.type fr 5

52 .e Funkcja F5.i 24.o.p 2.type fr 52

53 .e Funkcja K3.i 3.o.p 45.type fr 53

54 .e 54

Minimalizacja funkcji boolowskich c.d.

Minimalizacja funkcji boolowskich c.d. Minimalizacja funkcji boolowskich c.d. Metoda tablic Karnaugha Metoda Quine a McCluskey a Absolutnie nieprzydatna do obliczeń komputerowych Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych

Bardziej szczegółowo

Minimalizacja form boolowskich UC1, 2009

Minimalizacja form boolowskich UC1, 2009 Minimalizacja form boolowskich UC, 29 mplikanty funkcji boolowskiej UC, 29 2 mplikanty funkcji boolowskiej UC, 29 3 Metody minimalizacji UC, 29 4 Siatki Karnaugh UC, 29 5 Siatki Karnaugh UC, 29 Stosowanie

Bardziej szczegółowo

PRACA DYPLOMOWA. Andrzej Kisiel DISCOVERING DECISION RULES OF BINARY DATA TABLES USING COMPLEMENT OF BOOLEAN FUNCTIONS

PRACA DYPLOMOWA. Andrzej Kisiel DISCOVERING DECISION RULES OF BINARY DATA TABLES USING COMPLEMENT OF BOOLEAN FUNCTIONS WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA pod auspicjami Polskiej Akademii Nauk WYDZIAŁ INFORMATYKI STUDIA I STOPNIA (INŻYNIERSKIE) Kierunek INFORMATYKA PRACA DYPLOMOWA Andrzej Kisiel UOGÓLNIANIE

Bardziej szczegółowo

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ. Elementy cyfrowe i układy logiczne Wykład Legenda Kryterium kosztu realizacji Minimalizacja i optymalizacja Optymalizacja układów dwupoziomowych Tablica (mapa) Karnaugh a Metoda Quine a-mccluskey a Złożoność

Bardziej szczegółowo

Minimalizacja form boolowskich

Minimalizacja form boolowskich Sławomir Kulesza Technika cyfrowa Minimalizacja form boolowskich Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Minimalizacja form boolowskich Minimalizacja proces przekształcania form

Bardziej szczegółowo

Minimalizacja funkcji boolowskich

Minimalizacja funkcji boolowskich Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych 20 wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 80. rzyczyna:

Bardziej szczegółowo

Minimalizacja formuł Boolowskich

Minimalizacja formuł Boolowskich Minimalizacja formuł Boolowskich Stosowanie reguł algebry Boole a w celu minimalizacji funkcji logicznych jest niedogodne brak metody, aby stwierdzić czy dana formuła może być jeszcze minimalizowana czasami

Bardziej szczegółowo

Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera

Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera Temat lekcji: Minimalizacja funkcji logicznych Etapy lekcji: 1. Podanie tematu i określenie celu lekcji SOSOBY MINIMALIZACJI

Bardziej szczegółowo

Technika cyfrowa Synteza układów kombinacyjnych (I)

Technika cyfrowa Synteza układów kombinacyjnych (I) Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych (I) Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

Bardziej szczegółowo

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

Bardziej szczegółowo

Instrukcja obsługi programu Do-Exp

Instrukcja obsługi programu Do-Exp Instrukcja obsługi programu Do-Exp Autor: Wojciech Stark. Program został utworzony w ramach pracy dyplomowej na Wydziale Chemicznym Politechniki Warszawskiej. Instrukcja dotyczy programu Do-Exp w wersji

Bardziej szczegółowo

Technika cyfrowa Synteza układów kombinacyjnych

Technika cyfrowa Synteza układów kombinacyjnych Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1 y 1

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k. Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Teoria automatów

Wstęp do Techniki Cyfrowej... Teoria automatów Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

Bardziej szczegółowo

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych. DODATEK: FUNKCJE LOGICZNE CD. 1 FUNKCJE LOGICZNE 1. Tablice Karnaugha Do reprezentacji funkcji boolowskiej n-zmiennych można wykorzystać tablicę prawdy o 2 n wierszach lub np. tablice Karnaugha. Tablica

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska. SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska INFORMACJE WSTĘPNE Hipotezy do uczenia się lub tworzenia

Bardziej szczegółowo

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Uzupełnij pola tabeli zgodnie z przykładem poniżej, 1. Wykonaj bazę danych biblioteki szkolnej, Otwórz MS Access a następnie z menu plik wybierz przycisk nowy, w oknie nowy plik wybieramy pusta baza danych nadaj jej nazwę Biblioteka i wybierz miejsce w

Bardziej szczegółowo

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a i układy logiczne 1 Elementy logiki dla informatyków Wykład III Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO D. Miszczyńska, M.Miszczyński KBO UŁ GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO Gra w sensie niżej przedstawionym to zasady którymi kierują się decydenci. Zakładamy, że rezultatem gry jest wypłata,

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska DRZEWO REGRESYJNE Sposób konstrukcji i przycinania

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z funktorami realizującymi podstawowe funkcje logiczne poprzez zaprojektowanie, wykonanie i przetestowanie kombinacyjnego układu logicznego realizującego

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Algebra Boole a

Wstęp do Techniki Cyfrowej... Algebra Boole a Wstęp do Techniki Cyfrowej... Algebra Boole a Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Podstawowe układy cyfrowe

Podstawowe układy cyfrowe ELEKTRONIKA CYFROWA SPRAWOZDANIE NR 4 Podstawowe układy cyfrowe Grupa 6 Prowadzący: Roman Płaneta Aleksandra Gierut CEL ĆWICZENIA Celem ćwiczenia jest zapoznanie się z podstawowymi bramkami logicznymi,

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.1 Opis programów Do rozwiązania zadań programowania

Bardziej szczegółowo

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2 Document: Exercise*02*-*manual ---2014/11/12 ---8:31---page1of8 PRZEDMIOT TEMAT KATEDRA MECHANIKI STOSOWANEJ Wydział Mechaniczny POLITECHNIKA LUBELSKA INSTRUKCJA DO ĆWICZENIA NR 2 Wybrane zagadnienia z

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

Metoda list inwersyjnych. Wykład III

Metoda list inwersyjnych. Wykład III Metoda list inwersyjnych Wykład III Plan wykładu Cele metody Tworzenie kartoteki wyszukiwawczej Redundancja i zajętość pamięci Wyszukiwanie informacji Czasy wyszukiwania Ocena metody: wady i zalety Modyfikacje

Bardziej szczegółowo

8. Neuron z ciągłą funkcją aktywacji.

8. Neuron z ciągłą funkcją aktywacji. 8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i

Bardziej szczegółowo

III TUTORIAL Z METOD OBLICZENIOWYCH

III TUTORIAL Z METOD OBLICZENIOWYCH III TUTORIAL Z METOD OBLICZENIOWYCH ALGORYTMY ROZWIĄZYWANIA UKŁADÓW RÓWNAŃ LINIOWYCH Opracowanie: Agata Smokowska Marcin Zmuda Trzebiatowski Koło Naukowe Mechaniki Budowli KOMBO Spis treści: 1. Wstęp do

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

dr inż. Małgorzata Langer Architektura komputerów

dr inż. Małgorzata Langer Architektura komputerów Instrukcja współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią,

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku Diary przydatne polecenie diary nazwa_pliku Polecenie to powoduje, że od tego momentu sesja MATLAB-a, tj. polecenia i teksty wysyłane na ekran (nie dotyczy grafiki) będą zapisywane w pliku o podanej nazwie.

Bardziej szczegółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

ZAGADNIENIE TRANSPORTOWE

ZAGADNIENIE TRANSPORTOWE ZAGADNIENIE TRANSPORTOWE ZT jest specyficznym problemem z zakresu zastosowań programowania liniowego. ZT wykorzystuje się najczęściej do: optymalnego planowania transportu towarów, przy minimalizacji kosztów,

Bardziej szczegółowo

Klasyczne zagadnienie przydziału

Klasyczne zagadnienie przydziału Klasyczne zagadnienie przydziału Można wyodrębnić kilka grup problemów, w których zadaniem jest odpowiednie rozmieszczenie posiadanych zasobów. Najprostszy problem tej grupy nazywamy klasycznym zagadnieniem

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Sortowanie zewnętrzne

Sortowanie zewnętrzne Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często

Bardziej szczegółowo

Algebra Boole a i jej zastosowania

Algebra Boole a i jej zastosowania lgebra oole a i jej zastosowania Wprowadzenie Niech dany będzie zbiór dwuelementowy, którego elementy oznaczymy symbolami 0 oraz 1, tj. {0, 1}. W zbiorze tym określamy działania sumy :, iloczynu : _ oraz

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Zadanie 1. Suma silni (11 pkt)

Zadanie 1. Suma silni (11 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję

Bardziej szczegółowo

Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych Rozwiązywanie układów równań liniowych Marcin Orchel 1 Wstęp Jeśli znamy macierz odwrotną A 1, to możęmy znaleźć rozwiązanie układu Ax = b w wyniku mnożenia x = A 1 b (1) 1.1 Metoda eliminacji Gaussa Pierwszy

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA WYKŁAD 10. WNIOSKOWANIE W LOGICE ROZMYTEJ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska WNIOSKOWANIE W LOGICE DWUWARTOŚCIOWEJ W logice

Bardziej szczegółowo

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO

Bardziej szczegółowo

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska Funkcje liniowe i wieloliniowe w praktyce szkolnej Opracowanie : mgr inż. Renata Rzepińska . Wprowadzenie pojęcia funkcji liniowej w nauczaniu matematyki w gimnazjum. W programie nauczania matematyki w

Bardziej szczegółowo

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

Bardziej szczegółowo

Zajęcia nr. 3 notatki

Zajęcia nr. 3 notatki Zajęcia nr. 3 notatki 22 kwietnia 2005 1 Funkcje liczbowe wprowadzenie Istnieje nieskończenie wiele funkcji w matematyce. W dodaktu nie wszystkie są liczbowe. Rozpatruje się funkcje które pobierają argumenty

Bardziej szczegółowo

Zad. 3: Układ równań liniowych

Zad. 3: Układ równań liniowych 1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich

Bardziej szczegółowo

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH Jednym z zastosowań metod numerycznych jest wyznaczenie pierwiastka lub pierwiastków równania nieliniowego. W tym celu stosuje się szereg metod obliczeniowych np:

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Sztuczna inteligencja

Sztuczna inteligencja POLITECHNIKA KRAKOWSKA WIEiK KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Sztuczna inteligencja www.pk.edu.pl/~zk/si_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 10: Zbiory przybliżone

Bardziej szczegółowo

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 13 stycznia 2012 P. Modliński, GiK PW Rozw.

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Logika i teoria mnogości Wykład 14

Logika i teoria mnogości Wykład 14 Teoria rekursji Teoria rekursji to dział logiki matematycznej zapoczątkowany w latach trzydziestych XX w. Inicjatorzy tej dziedziny to: Alan Turing i Stephen Kleene. Teoria rekursji bada obiekty (np. funkcje,

Bardziej szczegółowo

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1) ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest

Bardziej szczegółowo

Systemy liczbowe używane w technice komputerowej

Systemy liczbowe używane w technice komputerowej Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.

Bardziej szczegółowo

PTI S1 Tabele. Tabele. Tabele

PTI S1 Tabele. Tabele. Tabele Tabele Tabele 43 1.3. Tabele Jako że bazy danych składają się z tabel, musimy nauczyć się jak je zaprojektować, a następnie stworzyć i zarządzać nimi w programie Microsoft Access 2013. Zajmiemy się również

Bardziej szczegółowo

Minimalizacja funkcji boolowskich

Minimalizacja funkcji boolowskich Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych 2 wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 8. rzyczyna:

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego

Bardziej szczegółowo

Krótki opis programu pandor.exe

Krótki opis programu pandor.exe Krótki opis programu pandor.exe 1. Budowa panelu głównego Po uruchomieniu programu oba pola są puste. Lewe służy do wprowadzania badanej funkcji w postaci tablicy prawdy, w prawym natomiast prezentowane

Bardziej szczegółowo

Synteza logiczna w eksploracji danych

Synteza logiczna w eksploracji danych Synteza logiczna w eksploracji danych Eksploracja danych (Data mining) jest dynamicznie rozwijającą się dziedziną informatyki o coraz szerszych zastosowaniach niemal w każdej dziedzinie życia medycynie

Bardziej szczegółowo

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania: Zadania-7 1. Opracować program prowadzący spis pracowników firmy (max.. 50 pracowników). Każdy pracownik opisany jest za pomocą struktury zawierającej nazwisko i pensję. Program realizuje następujące polecenia:

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

O MACIERZACH I UKŁADACH RÓWNAŃ

O MACIERZACH I UKŁADACH RÓWNAŃ O MACIERZACH I UKŁADACH RÓWNAŃ Problem Jak rozwiązać podany układ równań? 2x + 5y 8z = 8 4x + 3y z = 2x + 3y 5z = 7 x + 8y 7z = Definicja Równanie postaci a x + a 2 x 2 + + a n x n = b gdzie a, a 2, a

Bardziej szczegółowo

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ KDEMI MORSK KTEDR NWIGCJI TECHNICZEJ ELEMETY ELEKTRONIKI LORTORIUM Kierunek NWIGCJ Specjalność Transport morski Semestr II Ćw. 4 Podstawy techniki cyfrowej Wersja opracowania Marzec 5 Opracowanie: mgr

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

Identyfikacja znamion ukrytego plagiatu. Z wykorzystaniem IDEA Caseware

Identyfikacja znamion ukrytego plagiatu. Z wykorzystaniem IDEA Caseware Identyfikacja znamion ukrytego plagiatu Z wykorzystaniem IDEA Caseware Dzięki zastosowaniu w IDEI zaawansowanego modułu importu danych istnieje możliwość wykorzystania oprogramowania do identyfikacji tzw.

Bardziej szczegółowo

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for. Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9

Bardziej szczegółowo

Wprowadzenie do programu Mathcad 15 cz. 1

Wprowadzenie do programu Mathcad 15 cz. 1 Wpisywanie tekstu Wprowadzenie do programu Mathcad 15 cz. 1 Domyślnie, Mathcad traktuje wpisywany tekst jako wyrażenia matematyczne. Do trybu tekstowego można przejść na dwa sposoby: Zaczynając wpisywanie

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo