Reševanje problemov

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje

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

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).

Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja