csütörtök, szeptember 21, 2017

Csapófa algoritmus

Szeretek kitalálni dolgokat.....

(Tegnapelőtt láttam az egyik kedvenc ötletemet kivitelezve.... A Cargónak dolgoztam néhány éve és egyik reggel autóval befelé menet hallgattam egy riportot a mentősökről, tűzoltókról, mozdonyvezetőkről, ütközésekről. Különösen az ütött szöget a fejembe hogy a galád "késsen el mindenki ma, mert úgy döntöttem hogy megküzdök a mozdonnyal" versenyző még integetett is a mozdonyvezetőnek, aki persze nem tudott megállni... Nosza, szereljünk légzsákot a mozdonyra. Az egyik mozdonyvezető meg is  ütközött ezen? Minek légzsák? Ja? Kívülre? Na szóval másoknak is járt ezen az agya és kísérletképpen szereltek is fel egyet, igaz ők autóval ütköztették.....) 

Ritkán adódik meg az hogy  nem csak a magam szórakoztatására ötlök ki valamit, hanem parancsszóra kell ezt megtenni.

 

Amikor másodjára a MÁV-hoz kerültem (még a múlt évezredben, 1995-ben vala ez), rögtön belecsöppentem egy érdekes, igaz félig külsős projektbe. Ma már nincsen olyan megkötés amivel akkor szembe kellett néznünk, de két számlán kellett keresztül menjen szinte minden utalás, mivel az önelszámoló egységek külön könyveltek, a tetejébe eléggé sztochasztikusan voltak elosztva a bankok az egységek között. 

 

Itt csinálj te egyszerűen cash pool technikát :). 

 

Adva volt a feladat, hogy az utalásokat úgy kell csoportosítani, hogy a sorrendiség maradjon, de úgy történjenek meg a kifizetések, hogy lehetőleg ne legyen az ellátmány adásnál bankközi átutalás.

 

Te vagy a matematikus, ez a te dolgod :D.

Szimplex algoritmus, Gomory módszer, tanultam én ezt, ráhúzzuk a feladatra és kész.

No de nem tudtam ráhúzni. Egyre többet gondolkoztam a dolgon, egyre kevéssé éreztem hogy haladnék előre. "Idő telik, becsület fogy", édesapám kedvenc mondása, és ebben az esetben ez sajna erősen aktuális volt... 

Volt persze más dolgom is, a rendszerrel kapcsolatosan egyébként is, a napi munka is, meg iskolába is jártam épp, no meg a Autóklubos programmal is törődni kellett... De egyre több erőforrást allokáltam erre a feladatra, lassan olyan voltam mint egy alvajáró. Remélem nem motyogtam :).

 

Ami ebből érdekes, az az amikor a tudatalattim "átadta" az eredményt. Liftben mentem felfelé a BEIG-ben amikor is beugrott. Egyszerűen tudtam hogy megvan a megoldás, és jó is. Azt az eufórikus érzést kívánom hogy próbálja ki mindenki :D. 

Persze azért miközben leprogramoztam, néha elkapott a kétely, amivel Csabit a sírba kergettem. Időnként felkiáltottam hogy nem jó az egész, majd néhány perc múlva azt hogy de, mégiscsak.... 

Elmagyarázni akkor még végképp nem tudtam, pedig roppant egyszerű az egész.

 

A probléma ugye az volt, hogy meghatározott sorrendben kellett kielégíteni az igényeket amelyek feljöttek a központba - ez is érdekes egyébként, mert nem nagyon csináltak addig olyat az országban amit mi míveltünk, kettős privát kulcsos auth, és egyéb nyalánkságok, arról nem is beszélve hogy 3 pénzügyi rendszert szolgáltunk ki úgy hogy nem állt egy napot se az egész 10 év alatt, ami nem kis szó - és úgy elosztani őket hogy lehetőleg a telephelyek saját bankszámláin keresztül "folyjon' a pénz.

 

Az ötlet a következő volt:

  • Először nézzük meg hogy mennyi pénz van összesen.
  • Aztán első körben addig menjünk sorrendben a tételeken, ameddig el nem érjük, illetve meghaladjuk ezt az összeget, és mindegyik számlához "írjuk" hozzá ezt, ahol ösvény van. Ez lesz majd a "csapófa".
  • A második körben ugyanezt tesszük, csak ekkor az összes ösvényhez tartozó lehetőséget levonjuk, és kiválasztjuk azt az egyet, ahol a csapófa a legközelebb van a kupac tetejéhez.

Később persze nem értettem hogy ezen miért gondolkodtam annyi ideig :D.

 

Ábrákban vázolva (az akkori banknevekkel ;-), de nem volt odaírva mind egyébként se....):

 

Az első menet már lefutott, ennek hatását a színes téglalapok elhelyezkedéséből láthatjuk. Az éppen utalható pénz nagyságát a lila négyzetek mutatják.

 

 

 Az osztható pénz a DAEWOO banknál csökkent ( a fehér téglalap).

 

 

 A szürke téglalapok az ideutalt - osztható pénz nagyságát mutatják.

 

 

 

 A választás mindíg a kisebb szám alapján történik.

 

 

 

 

 

 

 

 Egyenlőség esetén az osztható pénz nagysága dönt.

 

 

 

 Ez érvényes a pénz elfogyása esetén is ( a nullánál minden nagyobb...).

 

 

 

 A zöld és világoskék téglalapokkal jelölt utalások az MHB-n keresztül mennek el, egy tétel kimarad.

 

 

 

Ennyi :D.

A nüanszokra nem térek ki nyilván, az messze vezetne, például alkalmazható ez a módszer dinamikusan is, gubancot okoz ha nagyok az eltérések az összegek között, etcetera, etcetera...

Hátha valakit inspirál ez, szerintem nem csak erre a feladatra jó, pláne hogy az eredeti feladat már nem is létezik. Integrált rendszernél nem érdekes a telepi utalás például.....

 

 

 

 

 

Az odaseneki tabletta és más huncutságok

Igazából az odaseneki a "kereskedelmi" neve lett volna, de odáig nem jutottunk el....

 

Hol volt hol nem volt, volt egyszer egy nagy ERP rendszer bevezetés a cégnél, és előtte egy másikat vezettünk be, hogy már egy integrált rendszerből tudjunk átállni a másikra.

(Hülyeségnek hangzik, pedig nem az. Nem integrált rendszer -> ugyanannak a cégnek az integrált rendszere -> másik integrált rendszer. Kevesebb a macera.)

 

No de nem csak ez történt arrafelé, hanem kiadták a központban a parancsot hogy spórolni kell. Mindenkinek. Nálunk ez úgy valósult meg hogy a három liftből csak egy üzemelt, valamint az épület hűtését lekapcsolták 4 után. Ami annál az épületnél durva hatású volt nyáron, hiszen az egész tiszta üveg, nem véletlenül volt mindenhol légkondicionáló berendezés. Este hatra már vidáman 30 fok felett volt a hőmérséklet, ami nyilván nem zavarta azokat az embereket, akik már otthon voltak. (Azért mint utólag megtudtam volt a dologból probléma, nem mindenkinek bírta ezt a szervezete...)

Megjegyzem hogy elég sok pénzt megspóroltak ezzel, aminek az lett az eredménye hogy megsimogatták a vezetőnk fejét, és az irodaház költségkeretét lecsökkentették a spórolt összeggel, akik meg nemhogy spóroltak volna, hanem túlköltekeztek, azokra meg morcosan néztek, és emelkedett a költségvetésük. Bázis szemléletű gazdálkodás. Akkor nagyon morcos voltam erre, de nem is olyan egyszerű egy kiterjedt cégnél megsaccolni hogy mennyibe kerül például egy villanykörte csere.  Mert más lehet egy távoli helyen, ahova ki kell menni, esetleg meg kell bontani ezt, azt, vagy nincs belső ember, mint egy irodaházban ahol van álpadló, álmennyezet, esetleg raktár, karbantartó... És ez csak egy körtecsere. Erre van a decentrum, a vezető, meg a bázisszemlélet. No mindegy, nem ez a lényeg itt ;-).

 No de nem mindenki volt ám otthon :D! Ha új rendszert vezetnek be nálad, és te leszel a rendszer gazdája mind unix, mind dba, meg egyéb okból, oldalról is, akkor ott kell legyél a kellemes hőfokú irodában. Később döbbentem rá, hogy a külsős cég cserélgette az embereit, mi viszont Csabival minden nap ott voltunk, nagyon sokszor hajnalig. Élveztük mi ezt, mi az egy számítástechnikusnak aludni egy csöppet a földön, asztalon, ameddig a dump lemegy, a KPG interfész csiszolódik, közben irigy hónaljmirigyet hallgatva :D.

 

Gondolom a srácok beszélhettek rólunk benn a cégüknél, és egyszer az egyikük hajnaltájt megkérdezte tőlem hogy 

- Hogy bírjátok ezt?

Nem értettem a kérdést. 

- Mit?

-Hát ezt.

És  körbemutatott. Sokáig tartott ameddig felfogtam hogy nem viccel.

- Semmi gond. Ha nem érezzük jól magunkat, bekapunk egy lesz..rom tablettát és kész. Csak vigyázni kell vele, mert ha túladagoljuk, akkor olyan dolgokat is le...., amit nem kéne.

A srác furán tekintett rám. Van az úgy hogy ismersz valakit, legalábbis úgy gondolod hogy ismered, aztán kiderül róla hogy van vele valami. Nem tudod hogy micsoda, de valami gázos. Ez az Attila szed valamit. Óvatosan kérdezett rá, hogy egészen pontosan mit szedek.

- Mondom, lesz...rom tablettát. Tessék, vegyél te is.

Mutattam neki az üres tenyeremet, elvettem róla a semmit, feldobtam és "lenyeltem". Majd még egyet. Kacagott.


A rendszert bevezettük, sőt az Oracle Financials migrálás is lement már javában, sőt a Y2k mizérián is bőven túl voltunk, amikor valamiért beszéltem telefonon a sráccal.

Tudod mekkora sikere van a tablettádnak? Ha valaki bemegy egy főnökhöz és miután kijön feldobja a semmit és bekapja, mindenki tudja hogy mit vett be :D......

Elgondolkodtam ezen. Ha virtuális állapotában ennyire kelendő, csinálni kellene. 

Neki is láttam az egyik barátommal aki DTP-vel foglalkozik meg is terveztettem hozzá a logót, meg kiterveltem hozzá elég sok mindent. 

Csak sajnos beleestem abba a csapdába hogy ott kerestem problémát, ahol nem volt. Azt hittem hogy kell hozzá OÉTI szám vagy mi, és a hivatal gondolata is elrettentett.

Ma meg már lehet kapni. Igaz hogy nem oda-seneki nek hívják, és az eredeti név nem az L betű, az ESC gomb meg a 3-as kombinációjából áll össze, de ugyanúgy gyümölcscukor... (A Rufftech-nél hozta egyszer csak a főnököm be, és lecsapta az asztalra elém. A felvételi elbeszélésen ugyanis szóba került ez a sztori, emlékezett rá...) De annyi haszna van a dolognak hogy megszereztem az L3.hu domaint ;-).

Megkerestem a régi logót. Pásztor Zoli munkája, szerintem jó :).