Inteligencja obliczeniowa Laboratorium 2: Algorytmy genetyczne

Podobne dokumenty
Inteligencja obliczeniowa Laboratorium 2: Algorytmy genetyczne

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Arytmetyka liczb binarnych

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Złożoność obliczeniowa zadania, zestaw 2

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

24 proste kroki. aby pokonac. Obrazki. logiczne. Rozwiazania. i wskazowki dla nauczyciela. Copyright Logi Urszula Marciniak 2015

Optymalizacja systemów

Temat: Algorytmy zachłanne

Excel zadania sprawdzające 263

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Algorytmy sztucznej inteligencji

Teoria obliczeń i złożoność obliczeniowa

Optymalizacja systemów

SYSTEMY LICZBOWE 275,538 =

1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25.

Polcode Code Contest PHP-10.09

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Zadania laboratoryjne i projektowe - wersja β

Wprowadzenie do MS Excel

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Zaawansowane algorytmy i struktury danych

Pracownia Komputerowa wykład VI

Instrukcje dla zawodników

Rozwiązywanie problemów z użyciem Solvera programu Excel

Opracował: mgr inż. Marcin Olech

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

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

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Algorytmy i struktury danych.

1 Równania różniczkowe zwyczajne o rozdzielonych zmiennych

Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".

Rozwiązanie Ad 1. Model zadania jest następujący:

Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wstęp do informatyki- wykład 2

Dodawanie i modyfikacja atrybutów zbioru

Zapis liczb binarnych ze znakiem

Arkusz kalkulacyjny MS EXCEL ĆWICZENIA 4

XIX Mistrzostwa Polski w Łamigłówkach. Runda 1 29 minut NAME: pkt. 35 pkt. 20 pkt. 31 pkt. 36 pkt. 45 pkt. 45 pkt. 98 pkt. 60 pkt. 95 pkt.

Wstęp do Programowania Lista 1

Systemy zapisu liczb.

2. Tworzenie tabeli przestawnej. W pierwszym oknie dialogowym kreatora określamy źródło danych, które mamy zamiar analizować.

Excel - użycie dodatku Solver

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1. Operacje logiczne A B A OR B

24 proste kroki. aby pokonac. Obrazki. logiczne. ro05155

Tabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.

Przykładowe rozwiązania

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Algorytmy zachłanne. dr inż. Urszula Gałązka

Informatyka II. Laboratorium Aplikacja okienkowa

TEORETYCZNE PODSTAWY INFORMATYKI

Analiza algorytmów zadania podstawowe

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

2.1. Duszek w labiryncie

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Wykład 3. Metoda dziel i zwyciężaj

ALGORYTMY I STRUKTURY DANYCH

Podstawowe operacje i rodzaje analiz dostępne w pakiecie Statistica

Andrzej Frydrych SWSPiZ 1/8

Geomatyka02 Wczytanie danych, obliczenie długości, azymutu i kąta ze współrzędnych. Przygotowanie do pracy

Język C zajęcia nr 11. Funkcje

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Rozdział 4 KLASY, OBIEKTY, METODY

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

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

Technologie Informacyjne Mechatronika 2012/2013 Algorytmy. Podstawy programowania

Programowanie w Baltie klasa VII

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Definicja i własności wartości bezwzględnej.

Konsekwencja logiczna

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Wstęp do informatyki- wykład 1

1. Eliminuje się ze zbioru potencjalnych zmiennych te zmienne dla których korelacja ze zmienną objaśnianą jest mniejsza od krytycznej:

Python: JPEG. Zadanie. 1. Wczytanie obrazka

I. Podstawy języka C powtórka

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA

Zestaw 12- Macierz odwrotna, układy równań liniowych

Rysunek 8. Rysunek 9.

24 cel bdb db dst dop

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Badania operacyjne Instrukcja do c wiczen laboratoryjnych Rozwiązywanie problemów programowania liniowego z użyciem MS Excel + Solver

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

WellCommerce Poradnik: Dodawanie języka i waluty. autor: Adrian Potępa (biuro@eclairsoaware.pl)

Otrzymaliśmy w ten sposób ograniczenie na wartości parametru m.

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Podstawy programowania w języku C i C++

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

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

Transkrypt:

Inteligencja obliczeniowa Laboratorium 2: Algorytmy genetyczne Zadanie 1 W problemie plecakowym pytamy, jakie przedmioty wziąć do plecaka o ograniczonej objętości, by ich wartość była najwyższa. Załóżmy, że złodziej wkradł się do czyjegoś domu. Ma plecak / udźwig w wysokości 25 kg. Złodziej wypatrzył przedmioty przedstawione poniżej w tabeli. Jakie przedmioty powinien wziąć (do max. 25 kg), aby miały w sumie jak największą wartość? Problem ten jest NP-trudny, więc rozwiązanie go algorytmem typu brute force nie jest efektywne. Można jednak z powodzeniem rozwiązać go algorytmem genetycznym. Korzystając z pakietu R i paczki genalg rowiąż powyższy problem. a) Instalacja (jednorazowo) i załadowanie biblioteki install.packages("genalg") library(genalg) b) Dodawanie zbioru danych i limitu plecaka. plecakdb <- data.frame( przedmiot = c("zegar", "obraz-pejzaż", "obraz-portret", "radio", "laptop", "lampka nocna", "srebrne sztućce", "porcelana", "figura z brązu", "skórzana torebka", "odkurzacz"), wartosc = c(100, 300, 200, 40, 500, 70, 100, 250, 300,280,300), waga = c(7, 7, 6, 2, 5, 6, 1, 3, 10, 3, 15)) plecaklimit <- 25 c) Chromosomy (rozwiązania) to ciągi 11 bitów. Dla każdego z 11 przedmiotów wybieramy: 0 (nie bierzemy tego przedmiotu) lub 1 (bierzemy ten przedmiot do plecaka). Jakim przedmiotom odpowiada ciąg 00011001001? Ile są warte wszystkie przedmioty? Sprawdź za pomocą poniższych komend. chromosome = c(0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1) plecakdb[chromosome == 1, ] cat(chromosome %*% plecakdb$wartosc)

d) Najważniejszy etap to zdefiniowanie funkcji fitness. Funkcja ta, dla chromosomu chr na wejściu, oblicza i zwraca, ile wynosi wartość wszystkich przedmiotów przez niego wskazanych. Jeśli jednak waga przedmiotów przekracza limit plecaka to zwracane jest 0. Uwaga! Funkcja zwraca ujemną wartość przedmiotu (stąd minus przy return) bo paczka genalg traktuje najniższe oceny jako najlepsze. fitnessfunc <- function(chr) { calkowita_wartosc_chr <- chr %*% plecakdb$wartosc calkowita_waga_chr <- chr %*% plecakdb$waga if (calkowita_waga_chr > plecaklimit) return(0) else return(-calkowita_wartosc_chr) } e) Definiujemy algorytm genetyczny wprowadzając odpowiednie parametry i uruchamiamy go. Jakie jest najlepsze rozwiązanie? plecakgenalg <- rbga.bin(size = 11, popsize = 200, iters = 100, mutationchance = 0.05, elitism = T, evalfunc = fitnessfunc) summary(plecakgenalg, echo=true) f) Skorzystaj z pomysłu z punktu c) aby wyświetlić przedmioty i sumę wartości z najlepszego rozwiązania. g) Wpisz w konsoli plecakgenalg i zastanów się jakie informacje przechowuje ten obiekt. Przyjrzyj się schematowi działania algorytmu genetycznego poniżej. Po ilu pętlach (iteracjach, pokoleniach) mógłby przerwać działanie z idealnym rozwiązaniem dla naszego problemu? Co zostanie wyświetlone gdy wpiszemy plecakgenalg$best lub plecakgenalg$mean?

Zadanie 2 Korzystając z wiedzy z poprzednich zajęć nanieś dane z plecakgenalg$best i plecakgenalg$mean na wykres tak, aby wyglądał mniej więcej jak poniżej. Następnie zbadaj jak szybko wykonał się algorytm genetyczny korzystając z komend Sys.time() lub system.time(...rbga.bin...). Czy czas wzrośnie jak zwiększymy liczbę iteracji lub wielkość populacji? Zadanie 3 Idea działania algorytmu genetycznego dla problemu z poprzedniego zadania może być podsumowana w poniżej tabelce. Problem 1: Problem plecakowy Struktura chromosomu Które chromosomy są dobre? Działanie funkcji Fitness Chromosom jest ciągiem binarnym o długości 11. Każdy bit odpowiada wrzuceniu przedmiotu do plecaka (wartość 1) lub pozostawieniu przedmiotu (wartość 0) Chromosom jest tym lepszy, im wartościowszy zestaw przedmiotów wskazują jego bity (oczywiście pod warunkiem, że mieszczą się w plecaku). Funkcja dostaje chromosom chr. Oblicza wagę wskazywanych przez niego przedmiotów i w przypadku jej przekroczenia zwraca wartość 0 (najgorsza z

możliwych ocen). Gdy przedmioty mieszczą się w plecaku, funkcja zwraca wartość zapakowanych przedmiotów (pomnożoną przez -1). Maks. zakres funkcji Fitness max: 0 (brak przedmiotów lub przekroczenie wagi) - najsłabsza ocena min: wartość wszystkich przedmiotów (jeśli uda się upchnąć je wszystkie w plecaku) pomnożona przez -1 - najlepsza ocena W tym zadaniu spróbujemy się zastanowić nad innymi problemami. Stwórz analogiczne tabele dla poniższych problemów. Scharakteryzuj ich chromosomy i funkcję oceny. Problem 2: Labirynt Mamy labirynt 12x12 pól, przedstawiony na rysunku. Przez labirynt poruszamy się przesuwając z pola na pole (ruch: w lewo, prawo, do góry lub na dół). Nie możemy wchodzić na ściany (czarne pola). Naszym celem jest dojście z pola S, do pola E w maksymalnie 40 krokach. Czy istnieje taka droga? Problem 3: 3-SAT Formuła logiczna w koniunkcyjnej postaci normalnej 3-CNF składa się z koniunkcji klauzul. Każda klauzula to alternatywa trzech zmiennych lub ich negacji. W problemie spełnialności formuły 3- CNF (ang. satisfiability problem, skrót: 3-SAT) pytamy: czy istnieje podstawienie pod zmienne formuły takie, że będzie ona spełniona (czyli da wartość 1)? Nasza formuła ma 4 zmienne x1, x2, x3, x4 i następującą postać składającą się z 7 klauzul: φ = ( x1 x2 x4) ( x2 x3 x4) (x1 x3 x4) (x1 x2 x4) (x2 x3 x4) ( x1 x3 x4) (x1 x2 x3) Problem 3: Nonogram Nonogram (zwany też obrazkiem logicznym) to rodzaj zagadki, w której należy zamalować niektóre kratki na czarno tak, by powstał z nich obrazek. By odgadnąć, które kratki należy zamalować, należy odszyfrować informacje liczbowe przy każdym wierszu i kolumnie kratek obrazka. Przykładowo, jeśli przy wierszu stoi "2 3 1", to znaczy, że w danym wierszu jest ciąg dwóch zamalowanych kratek, przerwa (przynajmniej jedna biała kratka), trzy zamalowane kratki, przerwa, jedna zamalowana kratka. Umiejscowienie zamalowanych ciągów nie jest wskazane. Mając daną nieuzupełnioną planszę, pytamy: czy istnieje rozwiązanie dla tej zagadki (tzn. odpowiednie zamalowanie pól bez żadnych sprzeczności)? Poniżej przedstawiono instancję problemu z rozwiązaniem. Rozważ, jak znajdować rozwiązanie za pomocą algorytmu genetycznego.

Problem 4: Nurikabe Kolejną łamigłówką, którą rozważymy jest Nurikabe. Mamy daną planszą z białymi kratkami, wśród których niektóre są numerowane. Należy zamalować białe nienumerowane kratki tak, aby każda kratka z liczbą była, w osobnym (oddzielonym od innych) białym obszarze o liczbie kratek wskazanych przez numerowaną kratkę. Poniżej zagadka nierozwiązana po lewej i rozwiązana po prawej. Zadanie domowe projekt w osobnym pliku!