grapher.gif - 2545 Bytes - Tiedostamaton ilman mystiikkaa - sivuhyppy {r}

Abstrakti keino-tunne-ohjelmointi  

Kuten edellä oli esitetty - miksi meillä on tunteet - tunteiden ensisijainen tehtävänä eläimellä on suorittaa valintaa eri käyttäytymisvaihtoehtojen välillä. Asia on joskus ilmaistu englanniksi siten, että tunteiden keskeinen tehtävä on antaa preferenssit tai prioriteetit eri toiminnoille. Vaaran uhatessa pakeneminen ja vaaran eliminoiminen on tärkein toiminnan mahdollista säikeistä. Vaarattomassa tilanteessa voi rauhallinen syöminen tai juominen saada tärkeimmän prioriteetin. 

Tunteiden miellyttävyys ja epämiellyttävyys ja miellyttävyyden tai tuskallisuuden voimakkuus ja intensiteetti, voidaan tulkita myös preferenssiksi. Mitä voimakkaampi tunne on, sitä suuremman prioriteetin se saa. Geenien siirtyminen – seksi ja ravinnon saaminen ovat saaneet voimakkaat positiiviset lataukset, koska ne ovat tärkeitä geenien jatkumisen kannalta. Tällaisten korkealle priorisoitujen toimintojen pysäyttäminen ja estäminen tarvitsee toisen, yhtä voimakkaasti tai voimakkaammin priorisoidun paineen syntymistä. Tämän takia negatiiviset tunteet, pelko ja masennus omaavat intensiivisinä korkean pakottavuusasteen.  

Edellä esitetty tunteiden abstrahointi eläimen toiminnasta voidaan abstraktina mallina siirtää myös ohjelmointiin. Myös ohjelmoinnissa joudutaan välillä tilanteisiin, jolloin eri toimintoja joudutaan laittamaan tärkeysjärjestykseen.   Säie-ohjelmoinnissa on tuttu metodi setPriority(), jolla säikeen prioriteettia voidaan muuttaa välillä yleensä 1-10. Käyttöjärjestelmälle elintärkeimmät toiminnot, jotka mm. estävät virhetilanteessa koko järjestelmän kaatumisen tai jumiutumisen saavat korkeimman prioriteetin. *Näin voit itse muuttaa ohjelmien prioriteetteja Windowsissa*   setPriority() voidaan myös käyttää abstraktiin, biologisia tunteita jäljitteleviin ohjelmamalleihin. Esimerkki:  

Masentunut säie

Biologisessa elämässä ja tietokoneohjelmassa turhaan suoritetut toiminnat ovat jopa vahingollisia. Biologisesti turhaan suoritettu toiminta johtaa epätoivoon, masennukseen ja kyseisen toiminnan yrittäminen lopahtaa. Monisäieohjelmoinnissa tätä abstraktia masentumista voidaan jäljitellä seuraavasti pseudokoodilla:  

Säikeen onnistumista arvioidaan luomalla muuttujat

             int ThisThreadRepeatedTimesNuber;
            int TotalNumberOfSucceedings;
            double.SuccessRate;
Jos säie onnistuu tehtävässään
          if(onnistui) TotalNumberOfSucceedings++;
       successRate= (TotalNumberOfSucceedings/ thisThreadRepeatedTimesNuber);
              jatketaan…      
if(SuccessRate <=0.01 && SuccessRate>0.001)
                  this.setPriority(NORM_PRIORITY-1);
       else       if(SuccessRate <=0.0001 && SuccessRate>0.0001)
            this.setPriority(NORM_PRIORITY-2);
      if(SuccessRate <=0.01 && SuccessRate>0.001)
             this.setPriority(NORM_PRIORITY-3);
       jne…
vastaavasti onnistuessa voisi nostaa prioriteettia.

Tässä olemme jäljitelleet masennuksen tunnetta - epäonnistumisen johdosta säie masentuu ja sen aktiivisuus hiipuu.   Tässä esimerkissä ”subjekti” olisi yksi säie, säie olisi se toimija, joka kantaa tunteen abstraktia mallia.   Jotta säikeiden prioriteettien jako olisi vielä tehokkaampaa, voidaan esimerkin vuoksi vielä jäljitellä aggressiota eli kateutta. Säikeen ei pitäisi määritellä prioriteettiaan yksin, vaan sen tulisi verrata omaa menestystään muihin säikeisiin. ”Onko se oikein, että yksittäisen säikeen pitäisi toimia matalalla prioriteetilla, kun samaan aikaan toiset säikeet itsekkäästi saavat korkeamman prioriteetin, vaikka menestyvät yhtä huonosti – kuvittelevat vain olevansa muita parempia!”    

void righteousEnvy() {
          if ((Thread1.SuccessRate>=Thread2.SuccesRate) && (Thread2.getPriority())>( Thread1.getPriority()) Thread1.increaseMyPriority();
Nämä abstraktin keinotunneohjelmoinnin  periaatteet oli tässä yhteydessä esitetty selventämään tunteiden psykologian peruskysymyksiä.  Tässä esityksessä ei tule selvemmäksi se tietoisuuden filosofian peruskysymys: ”Voiko tietokoneella olla tunteita ja voiko se tietoisesti kokea tuskaa?”   Mihin näitä periaatteita voisi käyttää – esimerkkinä tästä on luonnostelma peliksi, jossa peli itsessään vähentää ja hidastaa sellaisten säikeiden käyttöä, jotka pelaaja pystyy helposti eliminoimaan.

 

Säikeen onnistumista arvioidaan luomalla muuttujat

             int ThisThreadRepeatedTimesNuber;
            int TotalNumberOfSucceedings;
            double.SuccessRate;
Jos säie onnistuu tehtävässään
          if(onnistui) TotalNumberOfSucceedings++;
       successRate= (TotalNumberOfSucceedings/ thisThreadRepeatedTimesNuber);
              jatketaan…      
if(SuccessRate <=0.01 && SuccessRate>0.001)
                  this.setPriority(NORM_PRIORITY-1);
       else       if(SuccessRate <=0.0001 && SuccessRate>0.0001)

else
            this.setPriority(NORM_PRIORITY-2);

else
      if(SuccessRate <=0.01 && SuccessRate>0.001)
             this.setPriority(NORM_PRIORITY-3);
       jne…
vastaavasti onnistuessa voisi nostaa prioriteettia.

Tässä olemme jäljitelleet masennuksen tunnetta - epäonnistumisen johdosta säie masentuu ja sen aktiivisuus hiipuu.   Tässä esimerkissä ”subjekti” olisi yksi säie, säie olisi se toimija, joka kantaa tunteen abstraktia mallia.   Jotta säikeiden prioriteettien jako olisi vielä tehokkaampaa, voidaan esimerkin vuoksi vielä jäljitellä aggressiota eli kateutta. Säikeen ei pitäisi määritellä prioriteettiaan yksin, vaan sen tulisi verrata omaa menestystään muihin säikeisiin. ”Onko se oikein, että yksittäisen säikeen pitäisi toimia matalalla prioriteetilla, kun samaan aikaan toiset säikeet itsekkäästi saavat korkeamman prioriteetin, vaikka menestyvät yhtä huonosti – kuvittelevat vain olevansa muita parempia!”    

void righteousEnvy() {
          if ((Thread1.SuccessRate>=Thread2.SuccesRate) && (Thread2.getPriority())>( Thread1.getPriority()) Thread1.increaseMyPriority();

Nämä abstraktin keinotunneohjelmoinnin  periaatteet oli tässä yhteydessä esitetty selventämään tunteiden psykologian peruskysymyksiä.  Tässä esityksessä ei tule selvemmäksi se tietoisuuden filosofian peruskysymys: ”Voiko tietokoneella olla tunteita ja voiko se tietoisesti kokea tuskaa?”   Mihin näitä periaatteita voisi käyttää – esimerkkinä tästä on luonnostelma peliksi, jossa peli itsessään vähentää ja hidastaa sellaisten säikeiden käyttöä, jotka pelaaja pystyy helposti eliminoimaan.

Tiedostamaton ilman mystiikkaa - aloitussivu

Tiedostamaton.net Etusivu

 

Palaute tekijälle Mikko Ahola