HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

Minket az Isten is egymásnak teremtett

2011.04.24. 14:00 nb

Avagy a (Hetedik Szem-es) tudatminták rendezéséről szólunk ebben a posztban. Az ilyen minták elemzését, avagy a Digitális Tudatlenyomatok Összehasonlító Könyvtárának létrehozását már beharangoztuk korábbi, Közösségi háló reloaded posztunkban.

De mik is ezek a minták, mi a Hetedik Szem? A Hetedik Szem egy a szerző doktori dolgozata kapcsán megnyitott mobil játék:

A „Hetedik Szem” egy Szabad Akarat Szonda (SZ.A.SZ) program, mely egy 2048 bites lelki (normál és erotikus) ujjlenyomatot vesz fel a játékostól. A program 10 ilyen lenyomat kezelésére: tárolására és összehasonlítására ad lehetőséget. Figyelem: ez egy játékprogram! Kizárólag szórakoztatásra szolgál, tipikus felhasználása, hogy ismerőseinktől felveszünk egy lenyomati görbét, amit aztán a sajátunkkal összehasonlíthatunk.
A játékba épített Szabad Akarat Szonda működése alatt feltesszük, hogy a játékos relaxációhoz hasonló állapotban játszik: csendes vagy halk, nyugtató jellegű zene mellett, besötétített vagy nem túl világos helyen kényelmesen elhelyezkedve, szemeket becsukva próbál ellazulni. Közben a telefon előkészítve a kézben, ujjak a megfelelő gombokon...

"Ez adja a mobil megoldás erejét és szükségszerűségét, mert egy ilyen relaxációs állapotban a PC billentyűzetének használata nem megoldható."

A Norbert Bátfai, Erika Bátfai, Ildikó Pšenáková (2010): Jávácska One: Open Source Mobile Games to Revolutionize Education of Programming, Journal of Computer Science and Control Systems, Vol. 3., No. 2., pp. 5-10, (2010) cikkből fordítva:

A játék ötletét Kornhuber és Libet (*, **) a tudatosság és az idő kapcsolatáról szóló eredményei sugallták. A program 2048 darab 100 milliszekundumos időszelettel dolgozik. Ha a játékos tűzgombot nyom az adott időszeletben, akkor 1-re, különben 0-ra állítjuk a szeletnek megfelelő bitet. Tehát esetünkben a tűzgomb nyomását feleltetjük meg egy "akaratlagos..."voluntary finger movements"-nek.

Az említett kísérletben résztvevő alanyoknak jobb mutatóujjukat kellett akaratlagosan behajlítani, a behajlítás időpontját EGM készülékkel határozták meg, miközben az fejbőrre rögzített elektródákkal mérték az agy elektromos aktivitását. Alanyonként ezer kísérletet átlagolva azt találták, hogy a behajlítást megelőzően már egy másodperccel megkezdődik az aktivitás.
    A hasonló kísérletekből ragadtuk ki az akaratlagos ujjbehajlítást. (92. o.)

 De pillantsunk a programba!

A mintákat folyamatosan animálva mutatja a jobb felső ábra, a jobb alsón az a box-plot látható, ami egyszerű értelmezhetősége miatt került a játékba: a két minta annál hasonlóbb, minél jobban fedi egymást a sárga és a kék téglalap.

 A minták bitenkénti összehasonlítása másra nem jó, hacsak nem a feladat nehézségének érzékeltetésére. (Továbbá a játékélmény emelése miatt a 0-1 lenyomatok megjelenítését némi „zajjal” színezve, a nulla szintet néhány pixel magas véletlen amplitúdóval  rajzoljuk meg.)
    Esetünkben a lenyomatok összehasonlításának alapja a Ziv-Lempel-Welch (LZW) algoritmus, mely mellett a (***) utalására építünk, miszerint – az ismeretlen adatsorokkal való első ismerkedésben – az LZW során épített fa ághosszainak szórását érdemes összevetni.

 

Digitális Tudatlenyomatok Összehasonlító Könyvtára

Arra készülve, hogy hamarosan rendelkezni fogunk olyan humán mintákkal, ahol a minta mellett rendelkezésre fog állni a mintákat szolgáltatók kapcsolati hálója is, készítsük el azokat a C++ osztályokat, amik segítségünkre lesznek majd a minták elemzésében. Először rendezzük sorba a mintákat: 

typedef std::bitset<50> TudatMinta;

struct tudatRendezes
{
    bool operator()(const TudatMinta& a, const TudatMinta& b) {
        LZWBinFa afa, bfa;
        for (int i=0; i<a.size(), i<b.size(); ++i) {
            afa << a[i];
            bfa << b[i];
        }
        return bfa.getSzoras() < afa.getSzoras();
    }
};

int
main (int argc, char *argv[])
{
    std::vector< TudatMinta > v;

    TudatMinta elso(std::string("11111111111111111111111111111111111111111111111111"));
    TudatMinta masodik(std::string("11111000001111100000111110000011111000001111100000"));
    TudatMinta harmadik(std::string("01100101100111110010011011001100001100110010110111"));
    v.push_back(elso);
    v.push_back(masodik);
    v.push_back(harmadik);

    std::copy(v.begin(), v.end(), std::ostream_iterator<TudatMinta>(std::cout, "\n"));
    std::sort(v.begin(), v.end(),  tudatRendezes());
    std::copy(v.begin(), v.end(), std::ostream_iterator<TudatMinta>(std::cout, "\n"));
}

A tudatRendezes funktor mutatja a rendezés alapját: a minta LZW fája ághosszainak szórása szerint rendezünk. Ezzel az iránnyal két legyet ütünk majd egy csapásra: a Hetedik Szemmel is fogalkozunk és a Prog1 előadással is szinkronban vagyunk: funktorok, az STL használata :)

(Vedd észre, hogy a példában használod az eddig kifejlesztgetett LZWBinFa osztályunkat.)

*: H. H. Kornhuber, L. Deecke, and P. Scheid, “Voluntary finger movement in man: Cerebral potentials and theory”, Biological Cybernetics, (23), 1976. 13
**: B. Libet, E. Wright, B. Feinstein, , and D. K. Pearl. “Subjective referral of the timing for a conscious sensory experience”, Brain, (102):193{224, 1979.
***: G. Tusnády, “Sztochasztikus számítástechnika”, KLTE, 1996.

Szólj hozzá!

Címkék: stl hetedik szem funktor jávácska one

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr552828351

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása