EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE

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

Download "EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE"

Transkrypt

1 EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE 1. Plan laboratorium VI 1.1. Ineks owrotny 1.2. w-shingling 1.3. Suffix tree algorytm naiwny oraz algorytm Ukkonena; zastosowanie struktur ineksujących 1.4. Suffix array algorytm qsufsort 1.5. Lucene 2. Inverte inex - ineks (plik) owrócony Struktura anych przechowująca poszczególne termy jako klucze, oraz ientyfikatory plików, w których te termy wystąpiły jako wartości (najczęściej implementowana jako tablica hashująca lub rzewo binarne). Cel: zwiększenie szybkości ziałania wyszukiwarki przy poniesieniu kosztu oania informacji o okumencie o ineksu W ineksie najczęściej przechowywane są ineksy okumentów (numery porząkowe). Doatkowo la każego termu często przechowywana jest ługość listy okumentów, które go zawierają. W wersji pełnej ineksu przechowuje się pary (DocID, TermPos), gzie TermPos jest pozycją termu w ramach okumentu o ientyfikatorze DocID. Zwykle okumenty la anego termu są uszeregowane zgonie z DocID. Inne pomysły polegają na wykorzystaniu tzw. statycznej jakości okumentu (np. miary PageRank) lub miary TF. 3. w-shingling zbiór ciagłych posekwencji tokenów w okumencie w oznacza licznę tokenów w każym pociągu wykorzystywany o baania poobieństwa okumentów (w tym przee wszystkim wykrywania plagiatów) po wzglęem wspólnych sekwencji o określonym rozmiarze sim( 1, 2 ) = S( S( 1 1 ) S( ) S( 2 2 ) ) 4. Drzewo sufiksów - suffix tree Prefiks określenie początkowych znaków ciągu (np. S la U jeśli U=SU ). Sufiks określenie końcowych znaków ciągu (np. S la U jeśli U=U S) Drzewo sufiksów - struktura anych reprezentująca zbiór sufiksów anego słowa lub tekstu. umożliwia efektywną obsługę zapytań, które wymagają wyszukania w tekstach ciągów słów lub ciągów znaków ineksowany tekst jest traktowany jako jeen ługi ciąg znaków; Suffix trie - struktura rzewiasta o przechowywania ciągów znaków, której każy możliwy sufiks można znaleźć na ścieżce o korzenia o któregoś liścia. Drzewo sufiksów (suffix tree) to barziej zwięzła reprezentacja struktury suffix trie (każy węzeł z pojeynczym potomkiem jest eliminowany (poprzez połączenie węzła z potomkiem w pojeynczy węzeł)

2 Drzewo sufiksów T (suffix tree) la ciągu znaków S o ługości m to rzewo o następujących właściwościach: posiaa korzeń i jest skierowane m liści oznakowanych o 1 o m każa krawęź etykietowana pociągiem znaków S złączenie etykiet poszczególnych krawęzi na ścieżce o korzenia o liścia i aje sufiks i ciągu S (oznaczmy go jako S i m ) każy wewnętrzny wierzchołek ma co najmniej wójkę zieci krawęzie wychozące z korzenia muszą zaczynać się o różnych znaków Naive Suffix Tree Builing (złożoność O(m 2 )) Dla i=1 o m Doaj sufiks S i m o T, znajując najłuższy pasujący prefiks S i m, który jest już w T i rozgałęziając o tego miejsca Algorytm Ukkonena On-line zaczyna o pierwszego znaku, potem rugi, it. Wersja postawowa (złożoność O(m 3 )) Zbuuj I1 (oaj pierwszy znak o rzewa). Dla i=1 o m-1 Dla j = 1 o i+1 Znajź ścieźkę o korzenia zaetykietowaną S j i Doaj znak S i+1 na koniec ścieżki, jeśli to konieczne Trzy reguły oawania znaku na koniec ścieżki Reguła 1 Jeśli ścieżka S j i w rzewie kończy się liściem, oaj S i+1 na koniec etykiety Reguła 2 Jeśli w rzewie są ścieżki S j i, które nie kończą się w liściu i nie następuje po nich S i+1, utwórz nowy liść z etykietą S i+1 na końcu ścieżki S j i (tworząc nowy wierzchołek wewnętrzny, jeśli S j i kończy się w śroku etykiety) Reguła 3 Jeśli w rzewie są ścieżki S j i, które nie kończą się w liściu, ale po jenej z nich następuje S i+1, nie rób nic - 2 -

3 Zmniejszenie złożoności opiera się na wóch obserwacjach: I. Once a leaf always a leaf na krawęziach o liści można oawać znak bez zastanowienia. II. Jeśli w rzewie jest już jakiś sufiks, to wszystkie jego sufiksy też są już w rzewie, czyli jeśli w anej iteracji wykorzystano regułę 3 o rozszerzenia j, to można ją zastosować (czyli nic nie robić) la wszystkich alszych rozszerzeń w anej iteracji Złożoność O(m) Zbuuj I1. Dla i=1 o m-1 Dla j takiego, że jl < j < jr Znajź ścieźkę o korzenia zaetykietowaną S j i Doaj znak S i+1 na koniec ścieżki jl - w iteracji I to ineks ostatniego oanego liścia jr w iteracji I to pierwszy ineks j taki, że S j i+1 jest już w rzewie Wywołań pętli jest 2m; to, co jest wykonywane, a się zrobić w stałym czasie

4 Postawowe zastosowania: znalezienie pociągu znaków P w tekście S; najłuższa powtarzająca się sekwencja znaków w ramach jenego ciągu znaków; najłuższy wspólny pociąg kilku ciągów znaków (alibaba.taliban.) problem pociągów la kolekcji wzorców najłuższy palinrom (what o you think, o geese see Go? -> whatoyouthink ogeeseseego.ogeeseseegoknihtuoytahw) problem opasowania par suffix-prefix (la ciągów Si oraz Sj, znajź najłuższą parę suffix Si i prefix Sj, które o siebie pasują DNA sequence assembly, EST alignment) zanieczyszczenie DNA (DNA contamination) procesy laboratoryjne powouje wniknięcie niechcianego DNA o ciągu bęącego przemiotem baań; sekwencje DNA wielu możliwych zanieczyszczaczy są znane problem: mając ane S1 oraz zbiór ciągów S (potencjalne zanieczyszczenia), znajź pociągi S, które pojawiają się w S1 i są łuższe niż zaane r 5. Tablica sufiksów suffix array Każy sufiks może być jenoznacznie określony za pomocą ineksu swojego pierwszego znaku. Tablica sufiksów to tablica ineksów sufiksów posortowanych w porząku leksykograficznym. Tablica sufiksów jest zawsze permutacją ineksów sufiksów. Tablica sufiksów Suffix S(i) I Suffix S(i) I[i] banana$ 0 $ 6 anana$ 1 a $ 5 nana$ 2 -> sort -> a na $ 3 Ana$ 3 ana na$ 1 Na$ 4 banana$ 0 a$ 5 na $ 4 $ 6 na na$ 2 Główne zastosowania: Exact matching (wzór P[1 n] poszukiwany w T[1.m] P jest pociągiem T jeśli jest prefiksem jakiegoś sufiksu w T; pozycja początkowe sufiksow w T, które zaczynają się o tego samego prefiksu znajują się obok siebie w tablicy sufiksów; znajź najmniejszy i największy ineks, w którym zaczyna się any prefiks, wykorzystując np. wyszukiwanie binarne) Substring problem Tworzenie - algorytm qsufsort (Larsson, Saakane) I. W tablicy I umieść posortowane ineksy sufiksów 0,,n. Do sortowania wykorzystaj znak na pozycji i-tej. Ustaw h=1. II. Dla każego i 0 [0,n], oblicz V[i] - numer grupy sufiksu i jako najgorszą pozycję w I jaką może zajmować sufiks zaczynający się o tej samej litery co sufiks i-ty. III. Każą grupę, która nie jest jeszcze posortowana posortuj zgonie z ternary-split Quicksort, używając V[i+h] jako klucza la sufiksu i-tego. IV. Uzupełnij I[i]. Uzupełnij V[i]. Pomnóż h przez 2. V. Jeśli I skłaa się z jenej posortowanej grupy, stop. W przeciwnym razie, iź o punktu III

5 6. Ćwiczenia 1. Utwórz ineks owrócony la następujących okumentów: D1: new Home sales top forecasts Term/Doc D1 D2 D3 D4 D2: home sales rise in july forecasts forecasts D3: increase in home sales in july home home D4: july new home sales rise in In increase increase Jakie są wyniki wyszukiwania la july july Zapytań: new new sales AND rise rise rise forecasts OR increase sales sales top top 2. Utwórz w-shingling la tekstu a banana is a banana is a banana la w=4. tokeny = (a, banana, is, a, banana, is, a, banana) zbiór wszystkich kolejnych sekwencji 4 tokenów (N-gramów, 4-gramów) to: {(a, banana, is, a), (banana, is, a, banana), (is, a, banana, a), (a, banana, is, a), (banana, is, a, banana)} 4-shingling = { } 3. Utwórz rzewo sufiksów la słowa banana$, wykorzystując algorytm naiwny oraz algorytm Ukonnena 4. Utwórz tablicę sufiksów la słowa banana$, korzystając z algorytmu qsufsort X = [ b a n a n a $ ] I[i] = [ ] V[I[i]] = [ ] V[I[i+(h=1)]] = [ ] I[i] = [ ] V[I[i]] = [ ] V[I[i+(h=2)]] = [ ] I[i] = [ ] - 5 -

6 7. Zaania o samozielnego wykonania 1. [1] Utwórz ineks owrócony la następujących okumentów: D1: breakthrough rug for schizophrenia D2: new schizphrenia rug D3: new approach for treatment of schizophrenia D4: new hopes for schizophrenia patients Jakie bęą wyniki wyszukiwania la zapytań: Q1: schizophrenia AND rug Q2: for AND NOT(rug OR approach) Dla ułatwienia w arkuszu poano macierz term-okument. 2. [1] Pokaż proces tworzenia tablicy sufiksów (suffix array) la frazy tobeornottobe$ z wykorzystaniem algorytmu qsufsort. 3. [3] Celem ćwiczenia jest zapoznanie się z Lucene Java API. Lucene to biblioteka uostępniająca funkcje niezbęne la zastosowań z zieziny Information Retrieval, np. ineksowanie okumentów czy tworzenie rankingu stron la zapytań. Uostępnia ona narzęzia takie jak parsery, systemy ineksujące i rangujące, pozwalając skupić się na projekcie architektury systemu. Co więcej, Lucene uostępnia proste algorytmy tokenizacji, stemmingu, it., które mogą być zastąpione przez barziej zaawansowane mouły w zależności o wymagań użytkowników. Opis zaania jest ługi w rzeczywistości zaanie jest proste i większość rozwiązania znajuje się bezpośrenio w poniższym opisie. Zaanie sprowaza się o opisania kilkunastu linii kou, z których większość jest poana w treści ćwiczenia. Zaanie polega na utworzeniu prostej wyszukiwarki, ziałającej na zaanej kolekcji tekstów. Szkielet rozwiązania znajuje się w klasie LuceneLab6.java. Klasę należy uzupełnić zgonie z poniższymi instrukcjami. Wywołanie programu wymaga poania wóch paramterów: args[0] - nazwa katalogu z kolekcją tekstów, args[1] nazwa katalogu, w którym zostanie utworzony ineks. Zapytania jenowyrazowe poawane są przez użytkownika z poziomu konsoli. Część 1 - ustawienia śroowiska Ściągnij bibliotekę Lucene z katalogu lab6. Upewnij się, że umieściłeś.jar w katalogu Twojego projektu. W LuceneLab6.java okonano już eklaracji importu wszystkich klas, których bęziesz potrzebował la celów zaania. Kolekcja tekstów na której bęziesz pracował znajuje się w katalogu lab6. Są to teksty Shakespeare pobrane ze strony projektu Gutenberg. Ścieżkę o kolekcji poajesz jako pierwszy parametr wywołania programu. Część 2 - utworzenie ineksu, przeczytanie okumentów, utworzenie reprezentacji okumentów, wypełnienie ineksu Napisz funkcję createinex, której celem jest utworzenie i wypełnienie ineksu la zaanej kolekcji tekstów. Parametrem funkcji jest ścieżka o kolekcji tesktów. Ineks w Lucene wygląa następująco: - 6 -

7 Inex Document 1 Fiel A (name/value) Fiel B (name/value) Document 2 Fiel A (name/value) Fiel B (name/value) Do utworzenia ineksu wykorzystaj klasę InexWriter : InexWriter inexwriter = new InexWriter("inexPath", new StanarAnalyzer(), true); gzie pierwszy parametr o ścieżka o katalogu, w którym ma być przechowywany ineks, rugi parametr to typ "analizatora" (parsera okumentu), który bęzie wykorzystywany, a trzeci parametr świaczy o tym, czy buowany jest nowy ineks (true) czy też rozwijany jest ineks już istniejący (false). StanarAnalyzer jest najczęściej wykorzystywanym analizotorem ogólnego użycia. Inne możliwe to: WhiteSpaceAnalyzer (prosty analizator, które separuje tokeny na spacjach), StopAnalyzer (usuwa słowa stopwors), SnowballAnalyzer (używa pewnej fermy stemmingu). Utwórz obiekt klasy File, korzystając z konstruktora, który jako parametr przyjmuje ścieżkę o kolekcji tekstów. Następnie wykorzystaj opowienią metoę klasy File tak, by nazwy okumentów w tym katalogu reprezentować jako tablicę String[] i następnie owołując się o tych nazwy, moć w pętli oawać okumenty o ineksu. Po utworzeniu ineksu, wypełnij go zawartością, oając poszczególne okumenty. Każy okument opowiaa obiektowi klasy Document. Dokument jest opisany za pomocą wielu własności w formie (nazwa, wartość). Każa własność opowiaa obiektowi klasy Fiel. Korzystając z tych obiektów, można oać informacje nt. okumentu, takie jak tytuł, ścieżka o miejsca przechowywania, treść, it. Na przykła: FileInputStream file = new FileInputStream(ocPath); Document oc = new Document(); oc.a(new Fiel("path", ocpath, Fiel.Store.YES, Fiel.Inex.TOKENIZED)); oc.a(new Fiel("content", (Reaer) new InputStreamReaer(file))); gzie ocpath zawiera ścieżkę o okumentu; Fiel.Store.YES określa, czy własność jest przechowywana w ramach ineksu (użyteczne, jeśli chce się ją wyświetlić w ostatecznych wynikach), Fiel.Inex.TOKENIZED wskazuje, czy ane muszą być poane tokenizacji czy też nie. Napisz osobną funkcję inexdoc la utworzenia obiektu klasy Document. Po zefiniowaniu obiektu klasy Document, oaje się go o ineksu za pomocą polecenia: inexwriter.adocument(oc); Następnie należy zakończyć tworzenie ineksu poleceniem: inexwriter.close(); Część 3 - przeszukiwanie kolekcji Jeśli utworzyłeś ineks, możesz przystąpić o napisania części przetwarzającej zapytania. Wykorzystaj klasy InexSearcher oraz QueryParser: InexSearcher isearch = new InexSearcher(inexPath); - 7 -

8 gzie inexpath to zmienna String, która zawiera ścieżkę o uprzenio utworzonego ineksu. Dla zefiniowania parsera zapytania, musisz wiezieć, które pola okumentu mają być analizowane po wzglęem zgoności z zapytaniem, a także jakiego typu parser zostanie użyty o parsowania zapytania (musi być on taki sam, jak parser okumentu), np.: Analyzer analyzer = new StanarAnalyzer(); QueryParser qparser = new QueryParser("content", analyzer); Parsowanie zapytania i wyszukiwanie okumentów obywa się za pomocą wykorzystania opowienich meto klasy QueryParser i InexSearcher: Query query = qparser.parse(querystring); Hits hits = isearch.search(query); Metoa search zwraca ranking aekwatnych okumentów (poprzez klasę Hits). Znalezienie wyników powinno być zaimplementowane w funkcji processquery(). Klasa Hits uostępnia iterator, z użyciem którego można przegląać aekwatne la zapytania okumenty i miary poobieństwa. Należy wypisać te wartości, jak w poniższym przykłazie. Przykłaowe wyjście progamu: Please enter your query: (lab6 to quit) queen 12 result(s) foun Shakespeare/0ws4210.txt : Shakespeare/0ws1410.txt : Shakespeare/0ws0110.txt : Shakespeare/0ws0210.txt : Shakespeare/0ws2610.txt : Shakespeare/0ws0410.txt : Shakespeare/0ws0310.txt : Shakespeare/0ws1710.txt : Shakespeare/0ws0910.txt : Shakespeare/0ws1210.txt : Shakespeare/0ws1910.txt : Shakespeare/0ws3910.txt : Please enter your query: (lab6 to quit) arthur 2 result(s) foun Shakespeare/0ws1410.txt : Shakespeare/0ws2110.txt : W razie potrzeby okumentacja Lucene API jest o znalezienia w sieci, ale o wykonania tego zaania wystarczy realizacja (ze zrozumieniem) poleceń z powyższego opisu

9 3. [4] Zaanie polega na wykorzystaniu Lucene o zaimplementowania meto ineksowania i wyszukiwania. Kolekcją okumentów jest RSS utworzony z BBC News bbc_rss_fee.xml. Dana jest klasa o parsowania RSS (RSSFeeParser), która zwraca okumenty jako obiekty Javy zawierające istotne z punktu naszego zastosowania pola: tytuł, opis oraz atę publikacji (klasa RssFeeDcoument). Klasą, którą należy uzupełnić to LuceneSearchApp (funkcje inex oraz search): Na etapie ineksowania okumentów trzy pola (tytuł, opis, ata) muszą być rozróżniane tak by zapytania mogły otyczyć zawartości poszczególnych pól. Metoa wyszukiwania powinna zwracać tytuły okumentów, które opowiaają zapytaniu. Szkielet klasy LuceneSearchApp zawiera funkcję main o testowania Twojej implementacji meto ineksowania oraz wyszukiwania. Wywoływana jest w niej kolejno: istniejąca funkcja parsowania RSS (ścieżka o pliku RSS jest poawana jako argument wywołania w linii komen), funkcja ineksowania okumentów oraz funkcje generujące kolejne zapytania testowe i wypisujące wynik. W pliku test-output.txt ane jest wzorcowe wyjście, o którego możesz przyrównywać swoje rozwiązanie. Implementacja wyszukiwania powinna uwzglęniać następujące parametry: słowa, które występują w tytule (operator logiczny AND); słowa, które nie występują w tytule (operator logiczny NOT); słowa,które występują w opisie (operator logiczny AND); słowa, które nie występują w opisie (operator logiczny NOT); zakres aty publikacji (operator logiczny AND la różnych at) aty w formacie RRRR-MM-DD zakresy powinny być typu [początek, koniec], by ata końcowa i początkowa były zawarte w przeziale (a nie typu (start, koniec)) jeżeli ata początkowa lub końcowa nie jest poana, przyjmuje się przeział otwarty z tej strony (nieograniczony) Funkcja search przyjumuje więc na wejście sześć parametrów: tablice stringów intitle, notintitle, indescription, notindescription oraz stringi startdate oraz endate. Jako rozwiązanie trzeba przesłać ko źrółowy klasy LuceneSearchApp. Do realizacji zaania stosowana była wersja Lucene (klasy potrzebne w rozwiązaniu są zawarte w lucencore jar oraz lucene-analyzers-common jar). Można też wykorzystać na pewno Lucene Doatkowe 2 punkty (bonusowe w stosunku o 4 przewizianych za to zaanie i nie zwiększające sumarycznej liczby punktów) można zobyć, implementując własną klasę EziScoreQuery (rozszerzającą CustomScoreQuery), która w metozie getcustomscoreprovier obliczałaby inną niż omyślna funkcja poobieństwa. Stanarowo przy utworzeniu nowego InexSearcher, Lucene wykorzystuje DefaultSimilarity, które jest miarą kosinusową opartą na tf-if. Dla uproszczenia możemy uznać, że funkcja bęzie wykorzystywana tylko la zapytań o słowa, które występują w tytule i/lub opisie i może polegać na prostym zliczaniu tych słów (okument tym barziej jest poobny, im częściej słowa z zapytania w nim występują). Dla przejrzystości i ułatwienie sprawzania, wersja stanarowa rozwiązania (bez nowej funkcji poobieństwa) niech zostanie w LuceneSearchApp, a la wersji rozszerzonej zróbcie nową klasę LuceneSearchSimApp. Czas przesłania zaań 24 listopaa lub 1 grunia (patrz następne zaanie)

Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych

Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych Tomasz Joran Kruk NASK Dział Naukowy Cezary Rzewuski Politechnika Warszawska NASK/ PW Konferencja SECURE 2006,

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Wyszukiwanie informacji w internecie. Nguyen Hung Son Wyszukiwanie informacji w internecie Nguyen Hung Son Jak znaleźć informację w internecie? Wyszukiwarki internetowe: Potężne machiny wykorzystujące najnowsze metody z różnych dziedzin Architektura: trzy

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.0 Nr ćwiczenia: 12, 13 Temat: Cel ćwiczenia: Wymagane przygotowanie

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Operacje I/O w Javie Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Języki programowania imperatywnego

Języki programowania imperatywnego Katedra Inżynierii Wiedzy laborki 7 i 8 Klasy abstrakcyjne klasa abstrakcyjna pozwala wymusić implementację metody; klasa oznaczona jest jako abstrakcyjna, jeżeli przynajmniej jedna metoda jest abstrakcyjna;

Bardziej szczegółowo

Indeksowanie full text search w chmurze

Indeksowanie full text search w chmurze Prezentacja przygotowana dla: 5. Konferencja MIC w Poznaniu, 16.06.20111 Lucene.NET Indeksowanie full text search w chmurze K2 i Windows Azure dlaczego dla nas to możliwe? 1. Mamy unikalne połącznie kompetencji

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

Bardziej szczegółowo

OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone,

OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone, OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone, zapisywanie wyników wyszukiwania w bibliotece referencji, tworzenie alertów i powiadomień. Operatory do tworzenia wyszukiwania zaawansowanego:

Bardziej szczegółowo

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa Narzędzie pomocnicze przedmiotu Podstawy Informatyki - złożoność obliczeniowa Piotr Jeruszka 1 25 listopada 2013 1 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska pjeruszka@icis.pcz.pl

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Wykład 6. Wyszukiwanie wzorca w tekście

Wykład 6. Wyszukiwanie wzorca w tekście Wykład 6 Wyszukiwanie wzorca w tekście 1 Wyszukiwanie wzorca (przegląd) Porównywanie łańcuchów Algorytm podstawowy siłowy (naive algorithm) Jak go zrealizować? Algorytm Rabina-Karpa Inteligentne wykorzystanie

Bardziej szczegółowo

Programowanie zaawansowane

Programowanie zaawansowane Programowanie zaawansowane Ćwiczenie 6 Komunikacja silnie typowana I. Utwórz aplikację okienkową realizującą proste obliczenia arytmetyczne. Obsługa zdarzeń w aplikacji typu Windows Form Application odbywa

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

Bardziej szczegółowo

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

Internet wyszukiwarki internetowe

Internet wyszukiwarki internetowe Internet wyszukiwarki internetowe 1. WYSZUKIWARKI INTERNETOWE to doskonały sposób na znalezienie potrzebnych informacji w Internecie. Najpopularniejsze wyszukiwarki to: http://www.google.pl/ http://www.netsprint.pl/

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

1 Powtórzenie wiadomości

1 Powtórzenie wiadomości 1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy

Bardziej szczegółowo

Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek

Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek Algorytm DIC Dynamic Itemset Counting Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek Spis treści 1 2 3 4 Algorytm DIC jako rozszerzenie apriori DIC Algorytm znajdowania reguł asocjacyjnych

Bardziej szczegółowo

XQuery. sobota, 17 grudnia 11

XQuery. sobota, 17 grudnia 11 XQuery XQuery XQuery pozwala na wydobywanie danych z dokumentów XML w sposób podobny do tego w jaki używany jest SQL do tabel w bazach danych. XQuery to język do wykonywania zapytań na dokumentach XML.

Bardziej szczegółowo

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite Tomasz Boiński: 1 Pozycjonowanie stron i zastosowanie mod_rewrite Pozycjonowanie stron Promocja strony odbywa się poprzez umiejscowienie jej jak najwyżej w wynikach wyszukiwania Wyszukiwarki indeksują

Bardziej szczegółowo

POMOC. 1. Wybór Katalogu

POMOC. 1. Wybór Katalogu Bibliografia Regionalna obejmuje książki i czasopisma lokalne zawierające wszelkie wiadomości na temat Woli. Gromadzone informacje dotyczą najczęściej takich zagadnień jak życie społeczne, inwestycje,

Bardziej szczegółowo

Kurs języka Python. Lista 1.

Kurs języka Python. Lista 1. 2 października 2015 Lista 1. Zadanie 1. Zaprogramuj funkcję rzut_kostka(), która symuluje rzut sześcienną kością do gry, tzn. funkcja ma zwracać losową liczbę naturalną z przedziału [1... 6]. Korzystając

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Instrukcja do programu Do7ki 1.0

Instrukcja do programu Do7ki 1.0 Instrukcja do programu Do7ki 1.0 Program Do7ki 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej SIÓDEMKA w połączeniu

Bardziej szczegółowo

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical;

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

UNIWESRYTET EKONOMICZNY WE WROCŁAWIU HOSSA ProCAPITAL WYCENA OPCJI. Sebastian Gajęcki WYDZIAŁ NAUK EKONOMICZNYCH

UNIWESRYTET EKONOMICZNY WE WROCŁAWIU HOSSA ProCAPITAL WYCENA OPCJI. Sebastian Gajęcki WYDZIAŁ NAUK EKONOMICZNYCH UNIWESRYTET EKONOMICZNY WE WROCŁAWIU HOSSA ProCAPITAL WYCENA OPCJI Sebastian Gajęcki WYDZIAŁ NAUK EKONOMICZNYCH WPROWADZENIE Opcje są instrumentem pochonym, zatem takim, którego cena zależy o ceny instrumentu

Bardziej szczegółowo

Zapytania do baz danych

Zapytania do baz danych Zapytania do baz danych 1. Korzystając z bazy kwerenda pobranej ze strony www.informatykamg.cba.pl. 2. Zobacz w tej bazie jak wyglądają relacje pomiędzy tabelami. Rys. 1 Relacje pomiędzy tabelami. 3. Tworzymy

Bardziej szczegółowo

Egzamin z Podstaw informatyki i programowania 2007/2008

Egzamin z Podstaw informatyki i programowania 2007/2008 Egzamin z Podstaw informatyki i programowania 2007/2008 Imię i nazwisko:... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 suma 1. Napisz funkcję logiczną, która dla zadanej parametrem wartości rzeczywistej x, oblicza

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru. Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4

Bardziej szczegółowo

Zadania z badań operacyjnych Przygotowanie do kolokwium pisemnego

Zadania z badań operacyjnych Przygotowanie do kolokwium pisemnego Zaania z baań operacyjnych Przygotowanie o kolokwium pisemnego 1..21 Zaanie 1.1. Dane jest zaanie programowania liniowego: 4x 1 + 3x 2 max 2x 1 + 2x 2 1 x 1 + 2x 2 4 4x 2 8 x 1, x 2 Sprowazić zaanie o

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Instrukcja numer 06 Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Zadanie 06 Pętle w skryptach wiersza poleceń Zadanie omawia zagadnienia związane ze stosowaniem instrukcji

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

- wszystkie elementy - wszystkie elementy

- wszystkie elementy - wszystkie elementy Tablice: indeksy całkowite >=0 tworzenie: TABLICA[0]=45 TABLICA[1]=23 TABLICA[2]=78 lub TABLICA=(45 23 78) lub TABLICA=($@) odwołanie echo ${TABLICA[3] echo ${TABLICA[*] echo ${TABLICA[@] Długość zmiennej:

Bardziej szczegółowo

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu Data Mining Wykład 9 Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster Plan wykładu Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne Sformułowanie problemu

Bardziej szczegółowo

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem

Bardziej szczegółowo

Algorytmy przeszukiwania wzorca

Algorytmy przeszukiwania wzorca Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001. KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

Bardziej szczegółowo

Wyszukiwanie w Katalogu Bibliotek PW za pomocą multiwyszukiwarki Primo

Wyszukiwanie w Katalogu Bibliotek PW za pomocą multiwyszukiwarki Primo Wyszukiwanie w Katalogu Bibliotek PW za pomocą multiwyszukiwarki Primo Aby znaleźć potrzebne książki i czasopisma, skorzystaj ze wspólnego katalogu Biblioteki Głównej, jej filii oraz większości bibliotek

Bardziej szczegółowo

Algorytmy i Struktury Danych. Anna Paszyńska

Algorytmy i Struktury Danych. Anna Paszyńska Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Sieciowe Technologie Mobilne. Laboratorium 2

Sieciowe Technologie Mobilne. Laboratorium 2 Sieciowe Technologie Mobilne Laboratorium 2 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 2 Na dzisiejszym laboratorium skupimy się na implementacji

Bardziej szczegółowo

Java Collections Framework

Java Collections Framework Java Collections Framework Co to jest Java Collections Framework JCF Zunifikowana architektura do reprezentacji i manipulacji kolekcjami danych. Składa się z: Interfejsów Definuje abstrakcyjne typy możliwych

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Wyszukiwanie boolowskie i strukturalne. Adam Srebniak

Wyszukiwanie boolowskie i strukturalne. Adam Srebniak Wyszukiwanie boolowskie i strukturalne Adam Srebniak Wyszukiwanie boolowskie W wyszukiwaniu boolowskim zapytanie traktowane jest jako zdanie logiczne. Zwracane są dokumenty, dla których to zdanie jest

Bardziej szczegółowo

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog); Program 19 Zadeklarować strukturę Student o polach: Imie, Nazwisko (ciągi znaków), Oceny (pięcioelementowa tablica wartości rzeczywistych reprezentujących oceny studenta) i Semestr_zaliczony (wartość logiczna

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział

Bardziej szczegółowo

Sprawozdanie z laboratorium: Hurtownie Danych. Algorytm generowania reguł asocjacyjnych. FP-Growth. 9 czerwca 2011

Sprawozdanie z laboratorium: Hurtownie Danych. Algorytm generowania reguł asocjacyjnych. FP-Growth. 9 czerwca 2011 Sprawozdanie z laboratorium: Hurtownie Danych Algorytm generowania reguł asocjacyjnych 9 czerwca 2011 Prowadzący: dr inż. Izabela Szczęch dr inż. Szymon Wilk Autorzy: Łukasz Idkowiak Tomasz Kamiński Jacek

Bardziej szczegółowo

Pobieranie i przetwarzanie treści stron WWW

Pobieranie i przetwarzanie treści stron WWW Eksploracja zasobów internetowych Wykład 2 Pobieranie i przetwarzanie treści stron WWW mgr inż. Maciej Kopczyński Białystok 2014 Wstęp Jedną z funkcji silników wyszukiwania danych, a właściwie ich modułów

Bardziej szczegółowo

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Większość książek na platformie jest oznaczona żółtą ikonką.

Większość książek na platformie jest oznaczona żółtą ikonką. EBL ebook Library daje dostęp do 500 000 tytułów od ponad 400 wydawców naukowych i akademickich (głównie anglojęzycznych). Baza daje dodatkowe możliwości użytkownikom, takie jak: Zaawansowane narzędzia

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Instrukcja wyszukiwania w katalogach i bazach Biblioteki

Instrukcja wyszukiwania w katalogach i bazach Biblioteki Instrukcja wyszukiwania w katalogach i bazach Biblioteki http://aleph.dbp.wroc.pl:8991/f Informacje o zbiorach Biblioteki przechowywane są w systemie bibliotecznym Aleph. Interfejs www systemu podzielony

Bardziej szczegółowo

Zastosowanie filtrów w Linuksie

Zastosowanie filtrów w Linuksie Zastosowanie filtrów w Linuksie grep poszukiwanie ciągu znaków w pliku cut selekcjonuje (znajduje) pojedyńcze znaki lub zony sort uporządkowanie, fuzja plików more wyświetlanie pliku strona po stronie

Bardziej szczegółowo

Multiwyszukiwarka PRIMO dla KUL jak korzystać?

Multiwyszukiwarka PRIMO dla KUL jak korzystać? Multiwyszukiwarka PRIMO dla KUL jak korzystać? Multiwyszukiwarka PRIMO to jedno okienko wyszukiwawcze, za pomocą którego jest możliwość przeszukiwania: - katalogu komputerowego BU KUL - subskrybowanych

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

KLIENT Z39.50. System SOWA-2/MARC21 (wersja plikowa lub klient/serwer) Instrukcja użytkowania. Poznań, kwiecień 2005 r.

KLIENT Z39.50. System SOWA-2/MARC21 (wersja plikowa lub klient/serwer) Instrukcja użytkowania. Poznań, kwiecień 2005 r. ul. Mołdawska 18, 61-614 Poznań tel. / fax. (-61) 656-44-10 adres do korespondencji: os. Stefana Batorego 13/27 60-969 POZNAŃ 60, skr. 40 System SOWA-2/MARC21 (wersja plikowa lub klient/serwer) KLIENT

Bardziej szczegółowo

Algorytmy graficzne. Metody binaryzacji obrazów

Algorytmy graficzne. Metody binaryzacji obrazów Algorytmy graficzne Metoy binaryzacji obrazów Progowanie i binaryzacja Binaryzacja jest procesem konwersji obrazów kolorowych lub monochromatycznych (w ocieniach szarości) o obrazu wupoziomowego (binarnego).

Bardziej szczegółowo

Kolekcje. Na podstawie:

Kolekcje. Na podstawie: Kolekcje Na podstawie: http://wazniak.mimuw.edu.pl Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz

Bardziej szczegółowo

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo