Logikus gondolkodás teszt

Mensa logó

Mensa logóAz elmúlt 20 évben rengeteg logikai feladatokból álló tesztet állítottam össze. Kezdetben iskolai szakkörökhöz, versenyekre való felkészítéshez, tehetséggondozáshoz használtam ezeket. Ezután következett a Logikus gondolkodásra nevelő Diákműhely, amelyben ez már professzionális lett. Végül több cég/vállalkozás számára állítottam össze többféle programozói, szoftverfejlesztői tanfolyam tematikájához illeszkedően toborzáshoz, felvételihez, jelentkeztetéshez, kiválogatáshoz, szakmai interjúk során használható tesztet/feladatsort. Ezek eltérő igények szerint mérik/skálázzák a logikus gondolkodást, a problémamegoldást, az algoritmikus készségek meglétét, az összefüggések/szabályok felismerésének és alkalmazásának szintjét, a szakmai felkészültséget.

A logikus gondolkodáshoz kötődően rendszeresen szoktam előadásokat is tartani például országos rendezvényeken (Kutatók éjszakája, Szakmák éjszakája), tehetséggondozó versenyek szakmai napjain tanároknak, diákoknak, főiskolás/egyetemista Erasmus hallgatóknak.

Korábban blogoltam a népszerű Hány éves a kapitány? címmel, ahol ajánlottam 8 db magyar szakirodalmat a témában.

Most angol Mensa IQ teszt szakfolyóiratból [1, 2, 3, 4, 5] válogattam össze egy 10 feladatból álló, logikus gondolkodás mérésére alkalmas tesztet. A válaszok/megoldások név és e-mail cím megadásával automatikus válaszlevélben a bejegyzés végén hozzáférhetőek.

Logikus gondolkodás teszt – feladatok

1. feladat
Az alakzatok pozitív egész számokat jelölnek. Mi kerül a kérdőjel helyére?

logikai-feladat-01

 

2. feladat
A betűk és számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-02

 

3. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-03

 

4. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-04

 

5. feladat
Folytatva a sorozatot mennyi az idő a 4. analóg órán?logikai-feladat-05

 

6. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?logikai-feladat-06

 

7. feladat
A táblázatban a piros mintával kitöltött cellák elhelyezkedése logikus. Honnan hiányzik 1 db piros mintával kitöltött cella?logikai-feladat-07

 

8. feladat
A szimbólumok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-08

 

9. feladat
56 db jutalomfalattal megetethető 10 háziállat, amelyek vegyesen macskák és kutyák. A macskák 5 db-ot, a kutyák 6 db-ot kapnak és végül marad 1 db jutalomfalat. Hány macska és hány kutya kap enni?

logikai-feladat-09

 

10. feladat
A 7 szám közül 6 párba állítható. Melyik szám marad ki?logikai-feladat-10


Logikus gondolkodás teszt – megoldások

Népesedési világnap

Népesedési világnap logó

Népesedési világnap logóAz ENSZ 1987-ben július 11-ét a népesedési világnappá (World Population Day) nyilvánította. Bolygónk lakossága aznap érte el az 5 milliárdot. További kerek számok voltak: 1999. október 12-én 6 milliárd, 2011. október 30-án 7 milliárd. További kerek számok várhatóak: 2023 – 8 milliárd, 2037 – 9 milliárd, 2057 – 10 milliárd. A KSH elemzése részletes elemzéseket közöl évről-évre a témában, például: 2019-ben, 2018-ban. A worldometer.info weboldalon folyamatosan frissülő kimutatások érhetők el a népességhez globálisan, valamint országonként is: például Magyarország aktuális népesedési adatai.

A népesedési világnap inspirált egy Java program megtervezésére és megírására. A swing GUI-s program megjeleníti a worldometer.info weboldalról kinyerhető adatok alapján régiónként (kontinensenként) az elérhető adatokat 1950-től 2020-ig az alábbiak szerint egy világtérképen.

Az elkészült program

Népesedési világnap Java program

Tervezés

Objektumorientált szemlélettel, MVC architekturális tervezési mintát követünk, angol nyelvű interfész, osztály, változó, objektum, metódus nevekkel. A projekt neve: WorldPopulation, a csomag neve: worldpopulation. Amit lehet, konstansként interfészbe (szeparálva) teszünk és az MVC rétegekhez kötődő osztályok implementálják. A modell minden évszámhoz tárolja a szükséges adatokat, mindezt egyetlen betöltéssel/letöltéssel éri el. A program kliensként hat régióra vonatkozó adatot gyűjt össze, alkalmazkodva a szerver adatforráshoz. A címsorban lévő összesített adat is elérhető közvetlenül a weboldalon, de a kisebb adatforgalom érdekében hasznos inkább a kliensben összesíteni. Mindössze egyetlen eseménykezelés szükséges: a csúszka beállításával megadott évszám alapján frissíteni kell a régiók címkéit és az ablak címsorát. Öröklődés hasznos a feladat megoldása során: egyrészt interfészek, másrészt osztályok között.

Interfészek

Az ősinterfész a WorldPopulationConstants, benne az évszám intervallum MIN_YEAR és MAX_YEAR határaival, valamint a megjeleníthető régiók neveivel tömbben: REGION_NAME_ARRAY. Két utódinterfész épül az ősre: ModelConstants és ViewConstants. Előbbi interfész az adatforráshoz kapcsolódik: URL_COMMON az URL eleje, URL_ARRAY az URL végei régiónként tömbben. Utóbbi interfész a megjelenítéshez kapcsolódik: WORLD_MAP_IMAGE a háttérkép annak WORLD_MAP_RECT méretével együtt, valamint a régiónkénti REGION_RECT_ARRAY téglalapok tömbje a kezdeti pozíciókkal/méretekkel, TITLE a sablon a program címsorához (frissítendő az évszámmal és az összesített népességgel). A megfelelő utódinterfészt mindig implementálja az MVC szerint hozzá illeszkedő osztály.

Osztályok

A belépési pont a WorldPopulation.java fájlban található.

Három összetartozó elemi adatot fog össze egybe a RegionData POJO, ezek name, year, population nevű rendre String, int, long típusú adatok. Például: Európa, 2020, 747643253. Tartalmaz két függvényt: getPopulation(), valamint toString(). Utóbbi HTML formátumban adja vissza a megjelenítendő adatokat.

A JLabel-ből származik az igényekhez alakított RegionLabel osztály. Ennek van előre megadott pozíciója, mérete, betűtípusa, betűmérete, sárga háttérszíne, piros kerete. Ezenkívül a téglalap átlátszó, valamint a benne megjelenő HTML tartalom vízszintesen középre igazított. Némi extra funkció, hogy egérrel megfogva – drag and drop – áthelyezhető, ami a MouseMotionListener egérmozgást figyelő interfész mouseDragged() metódusának felülírásával válik lehetővé. A mozgathatóságáért saját maga felel. Példaként közöljük az osztály teljes forráskódját:

A webről adatokat szerez és tárolja a Model osztály, a java.io és java.net csomagokra építve. Egy példa: a https://www.worldometers.info/world-population/europe-population/ oldal forrásából nyeri ki az osztály az alábbi adatokat:

Ezek parszolását követően elkészül egy optimálisnak tekinthető, generikus listákból álló regionListArray tömb adatszerkezet. A parszolás történhet egyszerű szövegkezeléssel vagy JSON feldolgozással is. Erre épülnek a konstruktorral és vezérlővel összehangoltan működő getter metódusok: getHTML(), getRegionList(), getRegionData(), getPopulation(). A JSON adatforrás feldolgozását most nem részletezzük, de hasonlóról blogoltunk már: Időjárás Budapesten.

A grafikus felhasználói felületet adja a JFrame utód View osztály. Három GUI komponensből áll: pnWorldMap – háttérkép JPanel, lbYear – kiválasztott/aktuális év JLabel, slYear – kiválasztható/görgethető aktuális év JSlider. Izgalmas megoldani egymásra/egymáson elhelyezni a komponenseket. Egy JLayeredPane komponens  DEFAULT_LAYER rétegére kerül a térképet tartalmazó háttérkép, majd a  PALETTE_LAYER rétegére kerül dinamikusan a hat  RegionLabel osztályú/típusú objektum. A csúszka komponens slYearStateChanged() eseménykezelő metódusa vezérlőként megszólítja a modell réteget és a visszakapott adatokkal frissíti a nézet réteget (a címsorban lévő összesítéssel együtt, ezres szeparátorokkal).

Ötlet továbbfejlesztésre

Hat különböző weboldal forráskódjából kell összegyűjteni a megjelenítendő adatokat. Ez 2020-ban régiónként 71 számot jelent és hat régió van. Érdemes lehet olyan adattárolást megvalósítani, amely csökkenti a szerverhez fordulások számát, illetve a letöltendő adatok mennyiségét. Hiszen a múltbeli évekhez kötődő historikus adatok nem változnak. Ha ezekre valamilyen formában a program emlékszik, akkor elegendő az utolsó tárolt évből kiindulva az aktuális évig évenként, régiónként lekérni mindössze 6, 12, 18… számot, a program utolsó futtatásának évéből kiindulva. Ez lényegesen kevesebb lenne, mint a jelenlegi 6*71 lekért szám. A koncepció kulcsszava: inkrementális adatfrissítés. Ha megvalósítjuk az ötletet, akkor figyelni kell arra, hogy az aktuális/utolsó évben az adatok akár másodpercenként is változhatnak.

A bejegyzéshez tartozó teljes forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java SE szoftverfejlesztő tanfolyam tematikájához kötődik (ha a swing GUI-ra koncentrálunk és az adatok helyi fájlrendszerből elérhetők), és a Java EE szoftverfejlesztő tanfolyam tematikájához kapcsolódik (ha az adatokat közvetlenül a webről olvassuk).

Doktori értekezések védése a Miskolci Egyetemen

Miskolci Egyetem logó

Miskolci Egyetem logóA Miskolci Egyetem Hatvany József Informatikai Tudományok Doktori Iskolájában 2020. július 1-jén két doktori értekezés nyilvános védésére került sor, amelyeket Szentmiklósi István Sándor és Veres Péter nyújtottak be.

Mindkét munka a logisztikai szakterülethez kapcsolódott. A cél azonos: optimalizálás. Eltérő a megközelítés: az egyik inkább hardverhez, a másik inkább szoftverhez kötődött. Mindkét védés színvonalas és igényes volt. Tartalmas és érdemi hozzászólások, javaslatok hangzottak el. A nyilvános védés méltó alkalom egy többéves kutató tevékenység lezárásához, egyben alkalmat nyújt a további folytatás irányainak meghatározására. Gratulálok a kollégáknak!

8:30-tól Szentmiklósi István Sándor kezdte, aki Raktári folyamatok optimálhatóságának vizsgálata Ipar 4.0 eszközök alkalmazásával című disszertációját védte.

A jelölt a szakirodalmi áttekintést követően ismertette, hogy megalkotott egy eszközt, amely anyagáramlási folyamatokban a szállítandó árura negatívan ható hatásokat az áru közvetlen környezetében folyamatosan méri, a mért értékeket kiértékeli és minőségromlás megállapítására is képes. Ez az eszköz az okos egységrakomány képző eszköz (OERK), amely egy mobil kiberfizikai eszköz. Az okos egységrakomány képző eszköz legfontosabb összetevői: egységrakomány képző eszköz, ami lehet egy tároló rekesz, műanyag raklap stb., ami az áru befogadására alkalmas, energia átalakító, energiamenedzsment, mikrokontroller, kiskapacitású memória, szenzoregységeket, a fizikai, kémiai és biológiai paraméterek mérésére, dátum, óra funkció és RF-ID antenna.

Kutatómunkájának eredményeit öt tézisben foglalta össze:

  • „I. tézis: Elkészítettem egy logisztikai eszköz lehetséges modelljét, amely anyagáramlási folyamatok során az adott áru minőségét befolyásoló paramétereket valós időben folyamatosan méri. A mért paraméterek alapján minőségkiértékelés végezhető. A megalkotott modell alapján elkészítettem annak makettjét.
  • II. tézis: Kidolgoztam az új eszköz egy matematikai modelljét, amely alkalmas adott logisztikai folyamat idő és költség értékeinek meghatározására adott sorbanállási modell esetén.
  • III. tézis: Kísérleti vizsgálataim alapján megállapítottam, hogy különböző anyagáramlási rendszereknél nagy számban keletkeznek rövid időtartalmú, de nagy energiájú tranziens jelenségek. Feltártam, hogy ezek energiája villamos energiává alakítható.
  • IV. tézis: Kidolgoztam és megvalósítottam a III. tézis eredményeire alapozva az eddigiektől eltérő elven működő, a rendszertelen, tranziens rezgéseket is kihasználó áramfejlesztő és energiakicsatoló eszközt.
  • V. tézis: Kidolgoztam egy matematikai modellt, amely modern technikai eszközök felhasználásával alkalmas a járműbeérkezések pontos meghatározására. Ennek alapján kidolgoztam egy dinamikus hozzárendelési algoritmust, amely a járműveket az időkapukhoz rendeli.”

Szentmiklósi István Sándor és Veres Péter doktori védése

12:00-tól Veres Péter folytatta, aki Heurisztikus módszerek alkalmazása logisztikai rendszerek tervezésében és irányításában című disszertációját védte.

A jelölt két célt fogalmazott meg a hálózatszerűen működő nagy kiterjedésű, komplex ellátási láncokhoz kötődően. Ezek: vállalaton belüli és vállalaton kívüli nagyméretű logisztikai hálózatok leírása és kezelését segítő modellek megalkotása, valamint ezen hálózatokban keletkező logisztikai feladatok megoldására olyan új módszerek, modellek és alkalmazások kidolgozása, melyek révén azok működésének hatékonysága javítható. Három modellt mutatott be: belső milkrun útvonal és raktártervezés, külső raktár pozíciójának meghatározása hozzárendeléssel és installációs költségekkel, automatikus járatmódosítás lehetőségei.

Kutatómunkájának eredményeit négy tézisben foglalta össze:

  • „I. tézis: Kidolgoztam egy új, szekvenciák közötti távolságok mérésére alkalmas módszert, bizonyítottam annak alkalmasságát különböző hosszúságú és felépítésű szekvenciák közötti távolságok mérésére vonatkozóan az egyezőség, a szimmetria és a távolság nem-negativitás szempontjából. A kidolgozott módszer alkalmas különböző járattervezési feladatokban az egyes megoldásváltozatokat reprezentáló permutációs egyedek közötti távolságok meghatározására.
  • II. tézis: Kidolgoztam egy olyan új paramétergenerálási módszert a hagyományos black hole heurisztikára, melynek révén annak konvergenciasebessége – különösen a keresési fázis elején – szignifikáns mértékben javítható. Kifejlesztettem a black hole heurisztikák egy olyan változatát, mely alkalmas szekvencia-problémák, például járattervezési feladatok megoldására.
  • III. tézis: Bevezettem a randomizált életciklus és az elhalálozási ráta fogalmát új egyedek generálására a Firefly algoritmus robusztusságnak növelése érdekében. Emellett bevezettem a legfényesebb memória alkalmazását Firefly algoritmusok hatékonyságának növelése céljából. Az elvégzett benchmark tesztek igazolták, hogy az általam kifejlesztett bővítmények révén az eredeti Firefly algoritmus hatékonysága növelhető.
  • IV. tézis: Megalkottam egy olyan általános keretrendszert, mely alkalmas speciális logisztikai modellek leszármaztatására. Ezen keretrendszer alapján megalkottam az integrált járattervezés, az elosztás és a milkrun anyagellátás egy-egy speciális modelljét. Ezen modellek által definiált NP-nehéz optimalizálási feladatok megoldására megoldásokat kerestem és egyedi módon átalakítottam. A problémák megoldására egyedi alkalmazásokat készítettem, melyekkel a kidolgozott modellek és módszerek hatékonyságát validáltam. Mindegyik probléma megoldható volt lágyszámítási módszerekkel.”

A tézisfüzetek, disszertációk végleges és korábbi műhelyvitára beadott változatai elérhetők az iskola weboldalán: most még a Hírek, később a Disszertációk oldalon.

Multimédia az oktatásban 2020

Multimédia az oktatásban logó

A Neumann János Számítógép-tudományi Társaság (NJSZT) „Multimédia az oktatásban” Szakosztály által – évente – szervezett XXVI. Multimédia az oktatásban című online nemzetközi konferencia került megrendezésre 2020. június 11-12-én. Az online platformot a Pexip webkonferencia szolgáltatás biztosította.

A konferencia célja

A szakmai rendezvény célja, hogy elősegítse az oktatás, valamint a kutatás és fejlesztés különböző területein dolgozó, oktató hazai és külföldi szakemberek, PhD és felsőoktatási hallgatók kapcsolatfelvételét, tapasztalatok és jó gyakorlatok cseréjét, egyes képzési szakterületekhez kapcsolódó kreditek gyűjtését.

24 témakörben hirdették meg az előadóknak a jelentkezési lehetőséget, köztük néhány hozzánk kötődő

  • élethelyzethez igazított tanulás,
  • a multimédia alkalmazása a felsőoktatásban és a felnőttképzésben,
  • mLearning, eLearning és környezete,
  • a tanulási környezet technikai, technológiai változása,
  • felhőalapú szolgáltatások,
  • multimédia és a tudományos kutatás összefonódása,
  • multimédia-fejlesztések, eredmények, alkalmazások bemutatása.

Letölthető a konferencia absztrakt kötete, benne a konferencia programjával.

Már többször is részt vettem előadóként ezen a konferencián szakmai előadással, magyar és/vagy angol nyelvű cikkel, poszterrel az oktatói csapat tagjaival együtt. Ezek a publikációs listámban megtalálhatók. Legutóbb tavaly is, lásd Multimédia az oktatásban 2019.

2020-ban előadást tartottam “Analysis of the Sorting with distribution and counting algorithm; is it worth or not?” (Szétosztva leszámoló rendezési algoritmus hatékonyságának vizsgálata, jobb vagy sem?) címmel 20 percben, amely a konferencia “Multimédia-fejlesztések, eredmények, alkalmazások bemutatása/ Az űrkutatás és űrtevékenység a modern oktatásban” című szekciójába került. Előadásom rövid, angol nyelvű összefoglalója az absztrakt kötet 19-20. oldalán olvasható. Előadásom prezentációját ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

Előadásom témája a Java SE szoftverfejlesztő tanfolyam 5-8. óra: Vezérlési szerkezetek, 9-12. óra: Metódusok, rekurzió, 13-16. óra: Tömbök alkalmaihoz kapcsolódik.

Multimédia az oktatásban online nemzetközi konferencia 2020

A teljes konferencia élő közvetítésben zajlott. 2 nap alatt 51 előadás hangzott el. 5 országból 300 fő követte. Egy-egy szekciót átlagosan 50 fő látogatott. A plenáris előadások a mesterséges intelligencia témakörhöz kapcsolódtak. Külön kiemelném Gulyás István kiváló összefoglalóját a 4 ipari forradalomról. A program szerteágazó, színvonalas és izgalmas volt. Az aktuális digitális oktatás technológiai és módszertani kihívásaival több előadás is foglalkozott. Számomra hasznosnak bizonyult az ezekhez kötődő többféle nézőpontból való megközelítés. A szakmai társalgás virtuális konferenciaszobákban folyt, és a szervezők még további 3 beszélgetős sarkot is létrehoztak a kötetlen kommunikáció biztosítására. A szervezés abszolút profi volt, a korábbi évek offline eseményeihez hasonlóan. Jövőre is szívesen csatlakozom a rendezvényhez. 2021-ben a Multimédia az oktatásban konferencia helyszíne a Dunaújvárosi Egyetem lesz.

Letöltés szimuláció

letöltés logó

letöltés logóLetöltési folyamatot szimulálunk. A paraméterek rugalmasan beállíthatóak. Előre beállított mennyiségű adatot, párhuzamos szálakon/folyamatokon keresztül töltünk le, miközben mérjük az eltelt időt. A folyamatok állapota lehet inaktív, aktív és befejezett. Az aktív folyamatok esetében megjelenő százalék fejezi ki, hogy a folyamat hol tart a rá jutó részfeladat végrehajtásával. Összesített formában követhetjük a hiányzó és a letöltött adat mennyiségét MB-onként és százalékosan is. A folyamat szimulációjához grafikus felületű Java kliensprogram készült, egyszerű GUI komponensekkel (nyomógomb, címke, folyamatindikátor, másképpen JButton, JLabel, JProgressBar swing komponensek).

Az alábbi animáció bemutatja a letöltés szimulációját:

letölés szimuláció

A konkrét paraméterek: 128 MB-nyi adatot töltünk le 256 párhuzamos szálon/folyamaton keresztül, így egy-egy részfeladat 0,5 MB-nyi adat letöltését jelenti. Minden értéket/mérőszámot egész számként ábrázolunk, akár százalékhoz tartozik, akár mértékegységként MB vagy s. A változások – és egyben a frissítés is – 5 ezredmásodpercként történnek a GUI-n.

A Java SE szoftverfejlesztő tanfolyamunkon, a szakmai modul Objektumorientált programozás témakörét követő 29-36. óra Grafikus felhasználói felület alkalmain már tudunk egyszerűbb szimulációs programot tervezni, kódolni, tesztelni. A Java EE szoftverfejlesztő tanfolyamunkon, a szakmai modul 5-8. óra Szálkezelés, párhuzamosság alkalommal többféle elosztott stratégiát ismertetünk, és a 17-24. óra Socket és RMI alapú kommunikáció alkalommal pedig megvalósíthatjuk többféle protokoll szerint a hálózati kapcsolatot, letöltést/feltöltést.

Elosztott alkalmazások esetén többféleképpen is modellezhető és kialakítható a rendszer architektúrája. Elosztott lehet maga a hálózat, a számítási folyamat, az algoritmus. Elosztott objektumok kommunikálhatnak egyenrangúnak tekinthető P2P szerepkörben vagy szerver/kliens oldalon, és több dolog/elem/hardver/szoftver/komponens együttműködéseként is megvalósulhat elosztott alkalmazás. A hálózati kommunikáció folyamatát valamilyen protokoll határozza meg, amit minden komponens ismer és így meghatározott szabályrendszer szerint működik.

Hardver szinten elosztottak a többprocesszoros rendszerek. Szoftveresen elosztott például egy moduláris vállalatirányítási rendszer, illetve a mobilalkalmazások többsége. Tipikus háromrétegű webalkalmazás esetén külön szerver nyújtja az adatbázishoz kapcsolódó szolgáltatásokat, a felhasználó számítógépén található a böngészőben futó/megjelenő kliensprogram/weboldal és a kettő között a felhő rétegben lehet a funkcionálisan elosztott alkalmazáslogika (például validálás, titkosítás, tömörítés, autentikáció, autorizáció).

A feladat könnyen általánosítható, például:

  • Egy keresési feladatot oldjunk meg az állományrendszerben! Kereshetünk egy konkrét nevű fájlt, adott kiterjesztésű fájlt, joker karakterekkel paraméterezett nevű fájlt/mappát, adott méretű állományt, adott dátum előtt létrehozott fájlt… Az állományrendszer bejárása rekurzív módon történik. A gyökérben lévő mappánként külön, esetleg második szinten lévő mappánként külön indíthatók szálak, párhuzamos folyamatok. Ha egyetlen találat elegendő, akkor bármelyik szál pozitív visszajelzésére minden szál leállítható. A feladatnál nagy eséllyel nagyon különböző méretű mappákon és eltérő mélységű mappaszerkezeteken kell végighaladni, így erre érdemes lehet optimalizálni, de ez már nagyon más szintje ennek a problémának.
  • Active Directory szerkezetben keressünk elérhető nyomtatókat a hálózaton!
  • Elosztott számítási hálózatként működik/működött a SETI@home. Koncepciójának lényege, hogy egy hatalmas feladatot nem nagyon drága szuperszámítógépeken, hanem olcsó gépek ezrein, százezrein, vagy akár millióin végeztetjük el, amelyek jelentős szabad kapacitással (pl. processzoridővel, átmeneti tárhellyel) rendelkeznek és egyébként is csatlakoznak a világhálóra.
  • Hasonlóan elosztott működésű a torrent protokoll. A kliensek/szálak az állományokat több kisebb darabban/szeletben töltik le, természetesen párhuzamosítva. Minden csomópont megkeresi a hiányzó részhez a lehető leggyorsabb kapcsolatot, miközben saját maga is letöltésre kínálja fel a már letöltött fájldarabokat. A módszer nagyon jól beválik nagyméretű fájloknál, például videók esetében. Minél népszerűbb/keresettebb egy fájl, annál többen vesznek részt az elosztásában, ezáltal a letöltési folyamat gyorsabb, mintha mindenki egy központi szerverről töltené le ugyanazt (hiszen az informatikában minden korlátos, a sávszélesség is).
  • A képtömörítést végző algoritmusok is lehetnek elosztottak, ezáltal párhuzamosíthatóak. Például ha felosztjuk a képet 16*16-os méretű egymást nem átfedő részekre, akkor ezek egymástól függetlenül tömöríthetők.
  • A merevlemezek esetén korábban használatos defragmentáló szoftverek felhasználói felülete emlékeztet a mintafeladat ablakára.

Fontos szem előtt tartani, hogy a grafikus megjelenítés csupán a szimulációhoz tartozó – annak megértéséhez szükséges – reprezentáció, így teljesen független lehet a folyamatok valós működésétől.

A bejegyzéshez tartozó teljes forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.