Algorytm – skonczony, uporzadkowany ciag
jasno zdefiniowanych czynnosci, koniecznych
do wykonania pewnego rodzaju zadan.
Najczesciej algorytmy sa zapisywane w sposób
bardzo scisly, zgodnie z zasadami matematyki.
Nauka zajmujaca sie algorytmami – algorytmika
Sposoby tworzenia algorytmów:
1. Dziel i zwyciezaj – problem tak dlugo
dzielimy na mniejsze zadania, az bedziemy
w stanie rozwiazac go calkowicie.
2. Metoda zachlanna – nie wgryzamy sie w
problem zbyt dokladnie tylko wybieramy
najbardziej obiecujaca droge.
3. Programowanie dynamiczne – dzielimy
problem na kilka mniejszych, które oceniamy
pod wzgledem wagi, poddajemy analizie
i niektóre wyniki wykorzystujemy do
rozwiazania calego problemu.
4. Programowanie liniowe – oceniamy problem
przez zastosowanie minimalizacji
odpowiedniej funkcji jakosci
5. Poszukiwanie – tak dlugo przeszukujemy
zbiory danych, az znajdziemy rozwiazanie.
6. Zastosowanie probabilistyki – godzimy sie
na to, aby uzyskany wynik byl obarczony
bledem (z pewnym prawdopodobienstwem).
7. Zastosowanie heurystyki – rozwiazanie
problemu opiera sie na przyblizonym
wyszukiwaniu rozwiazan, przy czym nie
ma gwarancji, ze beda one zblizone do
prawidlowych. Przykladem jest wlasne
doswiadczenie projektanta w dziedzinie,
w której nie ma on wystarczajacej wiedzy.
Zlozonosc czasowa
Rozumiemy ja jako ilosc wykonywanych
podstawowych operacji w zaleznosci od
rozmiaru wejscia. Jako „operacje
podstawowa” rozumiemy jakas prosta operacje
wykonywana przez komputer np. podstawienie,
porównanie, prosta operacja arytmetyczna.
Zlozonosc pamieciowa
Rozumiemy ja jako miare ilosci pamieci
potrzebnej do wykonania algorytmu w
zaleznosci od rozmiaru wejscia.
Program – sekwencja instrukcji wedlug której
komputer wykonuje zadane operacje.
Program zapisany w postaci tekstu moze
byc wykonywany za posrednictwem
interpretera, który krok po kroku wykonuje
zapisane instrukcje.
Albo moze zostac poddany procesowi
kompilacji, a potem uruchamiany bezposrednio
przez system operacyjny.
kod programu:
deklaracje
implementacje
wlasciwy program
Elementy programu:
Stale sa to nazwane wartosci, które sa znane
juz podczas pisania programu i nie moga ulec
zmianie podczas jego wykonywania.
Sa to odpowiednio przydzielone obszary
pamieci, które moga czasowo przechowywac
scisle okreslone wartosci.
Kazda zmienna ma scisle okreslony typ
danych, czyli moze przechowywac jeden
rodzaj informacji.
Najmniejsze elementy jezyka programowania,
pozwalajace na zdefiniowanie dowolnego
algorytmu. Instrukcje moga zawierac w sobie
mniejsze elementy – wyrazenia.
Funkcje i procedury sa odpowiednio
przygotowanymi zestawami instrukcji,
realizujacymi scisle okreslone zadania.
Typy danych proste:
liczby calkowite
liczby zmiennopozycyjne
wartosci logiczne
znaki
ciagi znakowe
wskazniki i uchwyty
Typy danych zlozone:
wyliczeniowe – przyjmuje jedna ze scisle
okreslonych wartosci
tablice – zawieraja wektor, macierz lub tablice
wielowymiarowa wartosci tego samego typu
struktury i rekordy – lacza w jednej zmiennej
dane róznych typów, reprezentowanych
jako pola
klasy – struktury wystepujace w jezykach
obiektowych
Instrukcja podstawienia - czyli polecenie
pozwalajace przypisac zmiennej konkretna
wartosc.
Instrukcja warunkowa -Pozwala na wykonanie okreslonych instrukcji,
procedur lub funkcji w zaleznosci od wyniku
podanego wyrazenia logicznego.
Instrukcja wyboru - Pozwala wybrac wykonywane instrukcje w
zaleznosci od wartosci wyrazenia podanego
jako parametr.
Tablice - sa to zlozone typy zmiennych,
umozliwiajace przechowywanie zestawów
danych tego samego typu w postaci wektora,
macierzy lub innych wielowymiarowych
struktur.
Petle - sa instrukcjami pozwalajacymi na
automatyczne powtarzanie zawartych w ich
wnetrzu instrukcji. W VBA istnieje piec
rodzajów petli typu Do...Loop oraz dwa rodzaje
petli interacyjnych For.
Petla For...Next - Jest to petla o scisle okreslonej ilosci
przebiegów, poslugujaca sie zmienna
indeksowa zwiekszana automatycznie.
Petla For Each...Next -
Jest to petla typu For...Next, operujaca jednak
nie na zmiennej indeksowej, ale na kolejnych
elementach tablicy.
Funkcje - sa specjalnymi typami procedur,
które moga zwracac wartosci, a te z kolei
mozemy wykorzystac w wyrazeniach
arytmetycznych lub logicznych.
Rekurencja - polega na odwolaniu sie do samego
siebie, czyli (w przypadku programowania)
wywolaniu funkcji lub procedury w swoim
wlasnym wnetrzu.
Zastosowanie rekurencji pozwala w prosty
i przejrzysty sposób przedstawic algorytm,
ale przewaznie wiaze sie ze zwiekszonym
zapotrzebowaniem na pamiec i wolniejszym
wykonaniem.
PRZYKLADT ALGORYTMOW:
Algorytm Euklidesa – pozwala znalezc
najwiekszy wspólny dzielnik dwóch liczb
naturalnych.
Przeszukiwanie liniowe -
Zwane tez wyszukiwaniem sekwencyjnym.
Pozwala znalezc pierwsze wystapienie
zadanego elementu w podanym ciagu danych.
Przeszukiwanie binarne -
Zwane tez wyszukiwaniem metoda
polowienia.
Pozwala znalezc pierwsze wystapienie
zadanego elementu w podanym ciagu danych.
Jest znacznie szybsze niz przeszukiwanie
liniowe, ale zbiór przeszukiwanych danych musi
byc posortowany.
Sortowanie babelkowe -
Jedna z najprostszych metod sortowania.
Polega na sukcesywnym porównywaniu
sasiadujacych elementów i ich zamianie gdy
jest to konieczne.
Sortowanie szybkie -
Zwane takze QuickSort.
Jest to algorytm rekurencyjny, jeden z
najszybszych, choc nie w kazdych warunkach.
Inteligencja:
-Umiejetnosc myslenia
-Zdolnosc do adaptacji
-Zdolnosc rozwiazywania problemów
-Zdolnosc uczenia sie
-Zdolnosc myslenia abstrakcyjnego
Zadania sztucznej inteligencji
-podejmowanie decyzji w warunkach
ograniczonej ilosci informacji
-analiza i synteza jezyków naturalnych
-rozumowanie logiczne/racjonalne
-dowodzenie twierdzen
-gry logiczne
-zarzadzanie wiedza, preferencjami
i informacja w robotyce
-systemy eksperckie i diagnostyczne
Zastosowanie SI
-Sterowania przebiegiem procesów
technologicznych
-Systemy ekspertowe
-Maszynowe tlumaczenie tekstów
-Eksploracja danych
-Rozpoznawanie obrazów
-Rozpoznawanie mowy i rozpoznawanie
mówców
-Rozpoznawanie pisma (OCR)
Sztuczna twórczosc
Niepowodzenia SI
-Skuteczna gra w niektóre gry logiczne
np. brydz albo go; choc wiele dostepnych
programów szachowych posiada poziom
przewyzszajacy arcymistrzowski.
-Idealne nasladowanie czlowieka.
-Skuteczne tlumaczenie tekstów literackich
i mowy potocznej.
-Gra na gieldzie
Logika ostra - Reguly logiczne i rachunek zdan:
Jezeli x jest prawda i y tez jest prawda,
to (x i y) tez jest prawda
Logika rozmyta - Koncepcja zaproponowana przez Lotfi Zadeha,
gdzie miedzy stanami 0 i 1 wystepuje wiele
wartosci posrednich okreslanych przez stopien
przynaleznosci do jednego ze zbiorów.