Reševanje problemov
Iz E-študij, proste zakladnice študentskega znanja
Reševanje problemov predstavlja pretvorbo opisa problema v nek postopek reševanja (KAJ -> KAKO).
Pri reševanju problemov je pomembno, da sistematično pristopimo k reševanju. S tem povečamo verjetnost, da bomo problem rešili.
Vsebina |
Predpogoji za reševanje problemov
Osnovni predpogoji za zmožnost reševanja problemov so trije:
- sposobnost pomnenja
- zmožnost procesiranja
- zmožnost učenja
Predpogoji so pokazatelji inteligence:
Pomnenje
- kratkoročni spomin
- omejen na 7 ±2 kazalca/registre (naenkrat ne moremo razmišljati na več kot cca. 7 stvari)
- potrebno ga je neprestano osveževati
- relativno hiter v primerjavi z dolgoročnim
- dolgoročni spomin
- praktično neomejen
- počasen
- dostop je možen le pod posebnimi pogoji
- deluje na principu asociacij - asociativni pomnilnik
- porazdeljen je globalno
- v računalniku simuliran z umetnimi nevronskimi mrežami (asicoativne nevronske mreže)
- le strukturiran spomin (drevesna struktura) omogoča hiter dostop
- zunanji spomin
- najpočasnejši
- do njega moramo dostopati, prebrati in ga razumeti
- potrebujemo notacijo
- notacija je nek simbolni sistem v katerem zapišemo podatke na zunanji pomnilnik
- črke
- slike
- je ključna za učinkovito reševanje problemov
- notacija je nek simbolni sistem v katerem zapišemo podatke na zunanji pomnilnik
Procesiranje
Ločimo dve vrsti procesiranja:
- zaporedno
- zavedno
- logično
- počasno
- leva možganska polobla
- vzporedo
- nezavedno (podzavestno)
- intuitivno
- hitro
- desna možganska polobla
- večina motorike
Učenje
Učenje je tesno povezano z inteligenco. Je spreminjanje sistema z namenom boljšega reševanja problemov. Tej spremembi pravimo znanje.
Znanje
Znanje ni zgolj kopica podatkov, ker s knjigo v roki še nimamo znanja. To znanje moramo še predelati in s tem spremeniti sistem. Ločimo:
- simbolno (logično) znanje
- numerično (intuitivno) znanje
Boljše reševanje problema je boljše ker je lahko:
- hitreje
- natančneje
- ceneje
Inteligenca
Inteligenca je ločena od zavesti in jo je moč simulirati.
| (umetna) inteligenca | zavest |
|---|---|
| sposobnost prilagajanja | ne znamo definirati |
| sposobnost reševanja problemov |
Teorija izračunljivosti (4 načini opisati isto stvar)
- kaj se da rešiti z algoritmi: Turingovi stroji (1 Ts je 1 algoritem)
- rekurzivne funkcije
- gramatike tipa 0 (brez omejitev)
- predikatni račun 1. reda
Osnovni principi pri reševanju problemov
Pri reševanju problemov uporabljamo osnovne principe:
- razumevanje problema
- abstrakcija problema
- izbira notacije
- razbitje problema na podprobleme
- upoštevanje podobnosti med problemi
Razumevanje problema
Najprej moramo vedeti kateri problem je potrebno rešiti. To naredimo z
- razjasnitvijo zahtev
- nevoumno definicijo problema
- opisom dejstev pravil in ciljev
Poiščemo implicitno podana dejstva in jih izrazimo eksplicitno, da olajšamo razumevanje problema.
Abstrakcija problema
Abstrakcija problema pomeni izluščiti bistvo iz vse neuporabne nesnage, katera obkroža problem v opisu problema. Pri abstrakciji nepomembne detajle zanemarimo.
Problemski prostor je včasih koristno predstaviti kot graf, kjer so vozlišča grafa posamezna stanja, povezave pa so operatorji, ki transformirajo eno stanje v drugo. V tem grafu lahko identificiramo začetno in ciljno stanje, rešitev pa je pot od začetnega do končnega stanja. S tem dobimo sistematičen pregled nad problemom, ker pa je problemski prostor pogosto prevelik, da bi ga lahko preiskali v celoti, uporabljamo ustrezne hevristike.
Primer
Mati Anica z rožnato ruto drži za roko svojo dvanajstletno hčerko Tino, ki nosi rumeno rutico. Za njima hodi njen sin Miha v modri bundi, ki je pravkar dobil novo frizuro. V kakšnem sorodu sta Tina in Miha?
Abstrakcija problema:
Tina je hčerka Anice. Miha je sin Anice. V kakšnem sorodu sta Tina in Miha?
Izbira notacije
Notacija je simbolična predstavitev, ki modelira skupne značilnosti razreda objektov ali situacije in možne operacije na simbolih, kjer lahko uporabimo slikovne (npr. večina prometnih znakov v EU) ali besedne (npr. večina prometnih znakov v ZDA) simbole.
Hitrost reševanja problema je odvisna od izbire ustrezne notacije. Večina programiranja predstavlja spreminjanje notacije iz oblike, ki jo razume stroj (računalnik) v obliko, ki jo razume človek.
Pri izbiri notacije si pomagamo s formalnimi sistemi:
- algebra
- geometrija
- teorija množic
- izjavni račun
- predikatni račun 1. reda
- programski jezik
Ko je problem preveden v formalni sistem je reševanje problema neodvisno od pomena simbolov, ker so dovoljene operacije v formalnem sistemu na sintaktičnem nivoju. S tem formalni sistem omogoča popolno abstrakcijo problema.
Razbitje problema na podprobleme
Ker je težko brez napak razmišljati o velikem problemu, velik problem razbijemo na manjše zaokrožene celote katere lahko rešujemo ločeno. Te razgradnje se lahko lotimo od zgoraj navzdol (top-down) ali od spodaj navzgor (bottom-up) kjer iz manjših rešitev manjših podproblemov sestavljamo rešitve bolj zapletenih problemov. V praksi najpogosteje kombiniramo obe strategiji.
Podobnost med problemi
Pri reševanju problemov si lahko pomagamo z rešitvami podobnih primerov. S transformacijo lahko problem poenostavimo, posplošimo ali samo preoblikujemo v izomorfni problem. Rešitvi poenostavljenega in posplošenega problema lahko pomagata pri iskanju rešitve problema, preoblikovanje v izomorfni problem pa že že rešitev sama (rešljiva z rešitvijo izomorfnega problema).