Rapcsák Tamás

 

AZ OPERÁCIÓKUTATÁS KIALAKULÁSÁRÓL
ÉS HAZAI HELYZETÉRŐL

Megjelent a Magyar Tudomány 1988. évi 4. számában.

______________________________________________________________________________

Az operációkutatás és a számítástechnika Magyarországon az 1960-as évek elején kezdett elterjedni. Ma az operációkutatásban és számítástechnikában alkotói vagy felhasználói szinten csaknem minden tudományterület művelői érdekeltek. A kibontakozó világverseny és a hazai számítástechnikai kultúra megalapozásának késése miatt azonban csak egyes területeken sikerült a nemzetközi színvonalat elérni.

______________________________________________________________________________

 

Mi az operációkutatás?

Az operációkutatás bonyolult rendszerek struktúrájának elemzésében és fejlesztésében, működésének szervezésében és irányításában felmerülő problémák vizsgálatának és megoldásának tudományos módszereit tartalmazó elmélet. A megfogalmazásból látszik, hogy nagyon szerteágazó elmélet, amelyben a különböző tudományágak határterületei kapcsolódnak a főként matematikai modelleken keresztül a különböző matematikai elméletekhez, megoldó algoritmusokhoz és a számítástudományon keresztül a számítógépekhez.

Az operációkutatás alkalmazott tudomány, amelynek egyik legmarkánsabb felhasználása a gyakorlati élet legkülönbözőbb területein a vezetési döntéshozatal folyamatának segítése, tudatosabbá tétele, a szervezett rendszer “operációinak” tökéletesítése, a különböző vonatkozásokban felmerülő irányítási, döntési problémáknak modellben történő megközelítése, elemzése, optimalizálása útján.

Bár az operációkutatás kifejezés már az egész világon elterjedt, egyik nyelvben sem fedi pontosan a mögötte levő tartalmat, ugyanis a gyakorlati élet legkülönbözőbb területein az “operációkat” nem annyira kutatják, mint inkább a döntési, irányítási helyzetnek elemzésen alapuló ismeretére támaszkodva tervezik. Ezért még az angolszász irodalomban is több szinonimát használnak, pl. management science, operations research, operational research, operations analysis, systems analysis, decision theory, management cybernetics stb.

Ma az operációkutatás alkalmazási területe rendkívüli módon kibővült: a gazdasági irányítás hosszú, közép- és rövid távú tervezésére, a vállalati irányításra, a termelésirányításra, azaz a különböző gazdasági egységek operatív, napi irányítására, bonyolult műszaki feladatok megoldásá-ra terjed ki. Ennek megfelelően elméleti apparátusa is roppant sokrétű.

Az alkalmazás központi problémája a vizsgált rendszer és a rendszert irányító döntéseknek az elemzése és az optimalizálása. A döntési helyzetek felismerése és modellezése az adott szakterület és a rendelkezésre álló megoldási módszerek alapos ismeretét tételezi fel. Például egy bonyolult termelési-gazdálkodási szervezet vezetési tevékenységeinek egyetlen modellben történő leírása és összefüggő folyamatként való irányítása ma még nem lehetséges, pedig már egy kisebb egységen, egy üzemen belül is a gazdasági, a műszaki, a környezeti tényezők bonyolult kölcsönhatása gyakran vet fel komplex döntéshozatali problémákat. Teljességükben az ilyen feladatok rendszerint nem oldhatók meg, azonban részekre, komponensekre bontva mindig több olyan döntési helyzetre bukkanunk, amelyek esetleg különböző típusú modellekbe beépíthetők és a számítástechnika felhasználásával megoldhatók. A nagyméretű feladatokat tehát olyan részekre kell bontani, amelyek már kezelhetők.

Az operációkutatási modellalkotásra és feladatmegoldásra a következő lépések jellemzők:

  1. A döntési probléma megfogalmazása
  2. A problémafelismerés folyamata a rendszerelemzésen keresztül vezet a probléma megfogalmazásáig és a döntéshozatalhoz szükséges információk megnevezéséig.

  3. Modellezés
  4. A problémafelvetés, a megoldó algoritmusok és az azzal kapcsolatos számítógépes lehetőségek ismeretében történik a modellépítés.

  5. A modell adatrendszerének a megadása
  6. A probléma és a modell ismeretében kerülhet sor a modell információs rendszerének a kialakítására, amelyhez hozzátartozik az adatfelvétel és az adatrögzítés szervezése, valamint az adatstruktúra meghatározása és számítógépes realizációja.

  7. A megoldó algoritmus kidolgozása
  8. Az esetek nagy részében a megoldó algoritmus kiválasztása és számítógépes programjának megírása csak egy része a valódi munkának, mert még a széleskörűen használt algoritmusok esetén is gyakran szükség van ezeknek a probléma sajátosságának megfelelő módosítására.

  9. A modellből adódó feladatok megoldása
  10. A döntéselemzés, a döntéstervezés és az optimalizálás a megoldó algoritmus segítségével, a modellből adódó feladatok megoldásával történik.

  11. Az eredmények ellenőrzése
  12. Mivel egy modellkonstrukció során szükségszerűen bizonyos egyszerűsítések, elhanyagolások történnek, másrészt a megoldó algoritmusok sok esetben nem kellően veszik figyelembe a feladatok sajátosságait, ezért minden esetben célszerű a modellből nyert eredményeket ellenőrizni. Ezek a vizsgálatok az esetek nagy százalékában vagy a modell és a feladat(ok), vagy a megoldó algoritmus, vagy mindhárom módosításához vezet. Gyakorlati problémák esetén csak néhány ilyen jellegű változtatás, továbbfejlesztés után várható kielégítő eredmény.

  13. Az eredmények alkalmazása
  14. Az eredmények ellenőrzése után kerülhet sor az alkalmazásra, amelyben a gyakorlati területen dolgozó vezetőké és a nagy tárgy- és helyismerettel rendelkező szakembereké a meghatározó szerep. Emellett természetesen nagyon lényeges a fellépő szervezési és adminisztratív feladatok sikeres megoldása is.

  15. A rendszer karbantartása és továbbfejlesztése

Az előbbi pontokban ismertetett módon elkészült alkalmazási rendszerek felhasználása esetén nagyon lényeges a folyamatos karbantartásuk és a továbbfejlesztésük, mivel minden területen szinte napról napra változó körülmények között folyik a termelés, ami egyrészt az alkalmazási rendszer adatstruktúrájának és egyéb részeinek a megváltozását eredményezheti, másrészt a modern technika dinamikus fejlődésének következtében a gyártási technológiák erkölcsi kopása nagyon nagy, ami időről időre továbbfejlesztést és korszerűsítést tesz szükségessé.

Mint az előzőekből kiderült, elméleti és diszciplináris vonatkozásban az operációkutatás fő jellegzetessége a gyakorlati feladat adekvát modelljének megszerkesztése, majd abban a kísérletezés, elemzés vagy optimalizálás elvégzése számítógépek felhasználásával. A problémák jellegzetes közelítésmódja a kvantitatív, általában matematikai formába öntött alapvető összefüggések meghatározása. Így az operációkutatás fogalomkörébe elvileg beletartoznak mindazok a diszciplínák, matematikai elméletek, modellek, módszerek, amelyek egy gyakorlati feladat megoldásánál hasznosak lehetnek. Az eddigi tapasztalatok azt mutatják, hogy az operációkutatás felhasználja a matematika majdnem minden klasszikus ágát, pl. geometria, algebra, (funkcionál-, numerikus) analízis, valószínűségszámítás, statisztika; nagyon sok viszonylag újabb ágát (pl. gráfelmélet, kombinatorika, irányításelmélet); ezenkívül számos új elmélet is fejlődött ki vagy született meg a keretein belül (pl. matematikai programozás, algoritmuselmélet, szimuláció, készletezés, sorbanállás).

Az operációkutatás sokrétűsége a felmerülő problémák különbözőségéből és a rendelkezésre álló eszközök és módszerek nagy számából adódik. Mégis azt lehet mondani, hogy a kutatás alapvetően három jól elhatárolható területen folyik:

  1. modellezés és a modellezésnél felmerülő matematikai problémák,
  2. algoritmusok, algoritmusok implementálás számítógépre, experimentálás, és általános célú szoftverfejlesztés,
  3. alkalmazások, alkalmazási szoftverek fejlesztése.

A különböző területeken a munkák újabban eléggé különváltan folynak, mivel egy kutató nem képes egyidejűleg mind a három témakörben elmélyült tudományos munkára, sőt a nemzetközi tapasztalatok figyelembevételével azt lehet mondani, hogy ha lépést akarunk tartani a tudományág fejlődésével, akkor érdemes mindenkinek valamilyen részterületre specializálódni. Ez természetesen nem zárja ki azt, hogy az operációkutatás bármelyik területére egy probléma felvetésénél és megoldásánál tekintettel kell lenni a többi részterület sajátosságaira is, hiszen a különböző témákban végzett kutatások együttesen vezetnek valamely konkrét gyakorlati probléma megoldásához. Ez is mutatja az operációkutatáson belül a team-munka jelentőségét.

 

A matematikai programozás kialakulása

Az operációkutatatási problémák megoldása során először a gyakorlati probléma egy matematikai vagy matematikai formalizmussal megadott modelljét kell megalkotni, azután az abból adódó feladatokat megoldani. Az operációkutatás legjellegzetesebb modelljeiben a döntéselőkészítés folyamán optimalizálás történik, azaz vagy a ráfordítási költségeket kell minimalizálni vagy a nyereséget maximalizálni a technológiai és/vagy egyéb kötöttségekből adódó feltételek teljesülése mellett.

Az ilyen típusú problémák megoldása a matematikai programozás alapfeladata. A matematika nyelvén megfogalmazva ez azt jelenti, hogy egy többváltozós függvény maximumát vagy minimumát keressük a tér egy részhalmazán. Ez a részhalmaz, illetve az ún. célfüggvény a megoldandó probléma jellegzetességeiből adódóan különböző tulajdonságokkal rendelkezhet. Ettől függően kapjuk a matematikai programozás különböző ágainak az alapfeladatait.

A matematikai programozási feladatokban az ún. feltételi halmaz általában egyenlőségekkel és egyenlőtlenségekkel van megadva. Ha feltételi függvényekben, (melyek a feltételei halmazt definiálják) és a célfüggvényben szereplő legalább egy diszkrét vagy egy valószínűségi változó, akkor beszélhetünk folytonos, vagy determinisztikus, illetve diszkrét vagy sztochasztikus programozási feladatokról. A folytonos és a többi matematikai programozási feladatosztályon belül a feltételi függvények és a célfüggvény típusától függően lehetnek lineáris, lineáris feltételrendszerű, kvadratikus, szeparábilis, geometriai, konvex, általánosított konvex, általános nemlineáris stb. programozási feladatok.

Jelenlegi ismereteink szerint nem létezik olyan univerzális algoritmus, amelyik minden feladatot megoldana, sőt az egyes speciális feladattípusokon belül olyan komoly nehézségek léphetnek fel, amelyek lehetetlenné teszik még a feladat közelítő megoldásának megkeresését is. Ez magyarázza a nagyszámú algoritmus létrejöttét és az implementálás, valamint az experimentálás jelentőségét.

Az operációkutatás és a matematikai programozás kialakulására és jelentőségének a felismerésére döntő hatással volt az elektronikus számítógépek megjelenése és a lineáris programozás, valamint a szimplex módszer felfedezése. Mindkét felfedezés alapvető szemléleti változást hozott nemcsak a matematikában, hanem más tudományokban és számos gyakorlati területen is, mert segítségükkel lehetővé vált nagyméretű és bonyolult problémák elfogadható időn belül történő megoldása. Ennek hatására az alkalmazott matematikán és más alkalmazott tudományokon belül egyre újabb és újabb ágak születtek, amelyek már – jóllehet sok közös elem is volt bennük – minőségileg is különböztek a klasszikus diszciplínáktól. Az alkalmazott matematikában, az elméleti vizsgálatokon túlmenően, a cél mindig a megoldás kiszámítása, képletek helyett zömében algoritmusok alkalmazásával, ahol sok egyéb szempontot is figyelembe kell venni (pl. milyen számítógép áll rendelkezésre, milyen nyelven íródik a program, milyenek az adatok, milyen típusú a modell, milyen körülmények között kerül sor az alkalmazásra). Látható tehát, hogy itt inkább az algoritmusok és nem a tételek dominálnak, továbbá a deduktív módszer jelentősen keveredik induktív gondolati elemekkel (pl. egy megoldási módszer jóságát elsősorban a tapasztalatra támaszkodva ítéljük meg).

A lineáris programozást és a szimplex módszert Dantzig fedezte fel 1947-ben, utána az operációkutatás és a matematikai programozás rohamos fejlődésnek indult. Azonban a lineáris programozási feladatot Kantorovics szovjet matematikus már 1939-ben tárgyalta, de akkor még nem ismerték fel a téma fontosságát. Ugyanez elmondható az optimalizáláselmélet több más ágáról is. A nemlineáris programozás név az 1950-ben publikált Kuhn-Tucker-cikkből származik, amelyben a szerzők az optimalitás szükséges feltételeit vezették le, Karush azonban már 1939-ben megkapta ugyanezeket az összefüggéseket. Sőt, továbbmenve azt lehet mondani, hogy a nemlineáris programozás történetében az első komoly eredményt Lagrange érte el, aki 1788-ben publikálta a függvények egyenlőséges feltételek melletti szélsőértékeinek meghatározására vonatkozó multiplikátoros módszerét, a Mécanique Analytique című könyve első kötetében. Ezután Farkas Gyula nevét kell megemlíteni, akinek a Crelle Journalban 1901-ben publikált híres dolgozata a matematikai programozási szakirodalomban egyike lett a leggyakrabban idézett dolgozatoknak. Ezt a dolgozatát elsősorban a homogén, lineáris egyenlőtlenségekre vonatkozó tétele miatt idézik, amelyre Farkas-tétel néven hivatkoznak, s amelyet a matematikai programozásban az optimalitás szükséges feltételeinek a levezetésére használnak. Prékopa András mutat rá az optimalizáláselmélet történetéről írott cikkében, hogy Farkas Gyula az eredményeit a mechanikai egyensúly problémájára, a Fourier-féle elvre vonatkozóan alkalmazta, és hogy a Fourier-féle mechanikai elv duális alakja, melyet Cournot írt fel és Farkas Gyula bizonyított be először, lényegében azonos az optimalitás nemlineáris programozásbeli szükséges feltételeivel.

Így az optimalizáláselmélet kialakulásának történeténél feltétlenül meg kell említeni Fourier 1798-ban írt dolgozatát is, amelyben a róla elnevezett egyenlőtlenségi elvet mondja ki, valamint Gauss és Osztrogradszkij idevágó eredményeit.

Megállapíthatjuk tehát, hogy a matematikai programozás alapproblémájához és néhány alapvető fontosságú eredményéhez a különböző területeken dolgozó matematikusok és fizikusok már jóval a matematikai programozás kialakulása előtt, egymástól függetlenül eljutottak. A megfelelő problémák a mechanikai egyensúllyal, a variáció számítással, a geometriai egyenlőtlenségekkel, a játékelmélettel, a hálózatelmélettel és a dualitás elmélettel voltak kapcsolatosak. Ezekben az eredményekben közös az, hogy létrejöttüknél nem a gyakorlati alkalmazhatóság volt a fő cél (jóllehet a kiindulásul választott problémák mindig a valósághoz kötődtek) és az igazi jelentőségük csak a számítógépek és a lineáris programozás elterjedését követően derült ki.

 

Az operációkutatás hazai helyzete

Az operációkutatás és a számítástechnika Magyarországon az 1960-as évek elején kezdett elterjedni. Ma az operációkutatásban és a számítástechnikában alkotó vagy felhasználói szinten minden tudomány és szakma művelői érdekeltek. Ebben a hatalmas fejlődésben megkülönböztetett szerep jut a matematikusoknak és mérnököknek, akik mind a hardver, mind a szoftver területén nagyon lényeges alkotásokkal járultak hozzá a fejlődéshez.

Az operációkutatás nagyon szoros kapcsolatban van a hagyományos értelemben vett matematikával, azonban attól egy vonatkozásban lényegesen eltér, ugyanis az operációkutatás művelése erősen függ a számítógépektől. Ezért az operációkutatás és a számítástechnika helyzetét együtt kell vizsgálni.

A hazai számítástechnikai kultúra széles körű megalapozása és a magyar számítástechnikai ipar megszervezése a IV. ötéves terv időszakában (1971-75) kezdődött. Létrejött egy számítógéppark, valamint a kutatás, fejlesztés, oktatás, gyártás, alkalmazás és a különböző szolgáltatások intézményrendszere. Kutató és szervező intézetek egész sora lépett be a számítástechnikai kutató-fejlesztő munkák ellátásába, új intézetek alakultak.

Az V. ötéves terv időszakában (1976-80) a célkitűzések módosultak és a fő feladatok a meglevő géppark jobb kihasználása, újabb alkalmazási területek bekapcsolása a számítástechnikai programba, komplexebb alkalmazási feladatok megoldása, a számítástechnikai ipar exportjának megindítása és a szoftver ipar alapjainak megteremtése lett. Ennek eredményeképpen tovább növekedett a hazai számítógéppark, a gépek kihasználási mutatója növekedett, a saját számítógépek alkalmazása mellett gyors ütemben bővült a számítógépes szolgáltatásokat rendszeresen igénybe vevő intézmények köre. Némi késéssel, de megindult a mikroszámítógépek hazai elterjedése is. A VI. ötéves terv időszakában (1981-85) a fő célkitűzések: az alkalmazások intenzifikálása, a termelés gazdaságosságát közvetlenül befolyásoló rendszerek javítása, az ipar és a mezőgazdaság technológiai, raktározási, készletezési, szállítási és egyéb folyamatainak számítógépes támogatása, az anyag- és energiatakarékosságot javító számítógépes automatizálás elterjesztése, a mérnöki tervezés és a tudományos munka hatékonyságának növelése a számítástechnika segítségével. Ezenkívül kiemelt szerepe van a számítástechnikai szolgáltató hálózat kifejlesztésének, az iparszerű szoftver gyártás feltételei biztosításának bővítése (ami elsősorban a mikroszámítógépek számának növelését jelenti) ezen időszakban korlátozott, a rendelkezésre álló beruházási eszközök korlátai miatt.

Az operációkutatás és számítástechnika területén kibontakozott világverseny és a hazai számítástechnikai kultúra megalapozásának késése, valamint a nem minden területen érvényesülő hatékonyság miatt csak egyes területeken sikerült a nemzetközi színvonalat elérni. Itt elsősorban az elméleti és kísérleti, algoritmikus eredményeket kell említeni. Komoly lemaradás van viszont a közvetlenül eladható szoftver termékek és az alkalmazások területén. Ennek okai között szerepel az, hogy a piac szabályozó szerepe nem elég közvetlenül érvényesül, az intézményrendszerünk nem elég rugalmas a gyors változásokkal szemben, az ipar fogadókészsége eléggé szűk a nem megfelelő technológiai színvonal miatt és a jelenlegi számítástechnika hazánkban sok esetben túlzottan hardver centrikus. A szoftver termékek színvonalának emelésére annál inkább szükség van, mert napjainkban a hardver és a szoftver költségek aránya megváltozott, és ez a tendencia tovább erősödik. A hardver egyre olcsóbbá válik, ezzel szemben a szoftver költségek egyre emelkednek. Ezt a tendenciát erősíti az, hogy nagyon megnőtt az igény az emberközpontú szoftver rendszerek alkalmazására.

Az operációkutatás nagyobb mérvű hazai elterjedéséhez a számítástechnika még nagyobb fokú elterjedése és az általános számítástechnikai kultúra szintjének emelése szükséges. Ugyancsak szükség lenne a felhasználók részéről a fogadókészség növelésére.

A nemzetközi kapcsolatok serkentően hatnak a hazai operációkutatás és számítástechnika fejlődésére, mivel így lehetőség van a legújabb eredmények megismerésére és ezek itthoni felhasználására, amelyek nélkül termékeink nem lehetnek versenyképesek a nemzetközi piacokon. Néhány fontos területen azonban a kapcsolatok nem kielégítők. A külföldi konferenciákon való részvételünk csökkenő mértékű a devizaproblémák miatt. A külföldi tanulmányutak, külföldi szakemberek vendégül látása is egyre komolyabb akadályba ütközik. Ehhez járul, hogy a szakmai információk beszerzése is nehezebb lett. A folyóiratok és az újonnan megjelent könyvek megvásárlására szánt devizakeret nem kielégítő, pedig ez az információszerzés egyik legolcsóbb formája.

A későbbi fejlődést is szem előtt tartva, az egyik legnagyobb veszélyt a tudásszintben való leszakadás jelenti, ezért a nemzetközi kapcsolatok fejlesztése legalább olyan fontos, mint az eszközbázis fejlesztése vagy az ipari alkalmazások. Ennek megfelelően a nemzetközi kapcsolatainkat a lehetőségeinkhez mérten minden szinten szélesíteni kell.