Constructia Si Rezolvarea Modelelor Economice

Cuprins

1. Construcția modelelor

1.1. Introducere

1.2. Tipuri de modele

1.2.1. Modele descriptive și modele explicative

1.3. Metode de construire a modelelor

1.3.1. Metoda1

1.3.2. Metoda 2

1.3.3. Metoda 3

1.3.4. Metoda 4

1.3.5. Metoda 5

1.4. Datele disponibile și construirea modelului

1.5. Modele ca aproximații

1.5.1. Eliminarea unor variabile

1.5.2. Modificarea naturii variabilelor

1.5.3. Modificarea relațiilor dintre variabile

1.5.4. Modificarea restricțiilor

1.6. Modele complexe

1.7. Modele de decizie secvențială

1.8. Modelele ca instrument euristic

1.8.1. Exemplu

1.9. Concluzii

2. Rezolvarea modelelor

2.1. Tipuri de soluții

2.1.1. Soluții iterative

2.1.2. Procedeul Las Vegas

2.2. Simulare

2.2.1. Numere aleatoare

2.2.2. Numere aleatoare cu o repartiție dată

2.2.3. Metode de estimație

2.2.4. Simulare pe calculator

2.3. Joc operațional

2.4. Optimizarea experimentală

2.5. Concluzii

3. Aplicații

3.1. Aplicația 1

3.2. Aplicația 2

3.3. Aplicația 3

Bibliografie

1. CONSTRUCTIA MODELELOR

1.1. Introducere

Modele constituie reprezentări ale realității. Dacă ele ar fi tot atât de complexe și greu de manevrat ca și realitatea, prin utilizarea lor nu s-ar obține nici un fel de avantaj. Din fericire de obicei putem construi modele mult mai simple decât realitatea, dar pe baza lor putem totuși să prevedem și să explicăm fenomenele, cu un grad înalt de acuratețe. Explicația constă în faptul că, deși pentru a descrie absolut precis un fenomen este necesar un mare număr de variabile, de obicei doar puține dintre ele joacă un rol esențial. Important este, desigur, să descoperim care sunt aceste variabile și relațiile dintre ele.

1.2. Tipuri de modele

În cercetarea operațională, ca și în cele mai multe discipline științifice, se folosesc de regulă trei tipuri de modele: imitativ, analogic și simbolic.

În modelele imitative, proprietățile caracteristice sunt exprimate prin ele înseși de obicei la o altă scară. Prin urmare, un model imitativ seamănă cu obiectul sau fenomenul care îl reprezintă, dar diferă ca mărime; el este o imagine. Exemplele cele mai răspândite sunt fotografiile, desenele, hărțile și modelele de avioane, nave sau automobile. Modelele imitative ale soarelui așa cum se găsesc în planetarii sunt micșorate, în timp ce modelele atomice (de exemplu modelul lui Bohr) sunt mărite. Modelele imitative sunt de obicei specifice, concrete și greu de manipulat în scopuri experimentale .

Modelele analogice folosesc anumite proprietăți pentru a reprezenta alte proprietăți. De exemplu înălțimile se reprezintă pe hartă prin curbe orizontale. Un sistem hidraulic poate fi folosit drept analog al unor sisteme electrice, economice sau de transport. Graficele sunt modele analogice care, utilizând elemente geometrice (poziție, distanță), pot exprima o largă varietate de variabile și de relații între ele. În general, modelele analogice sunt mai puțin specifice, mai puțin concrete, dar mai ușor de mânuit decât modelele imitative.

Modelele simbolice folosesc litere, numere și alte simboluri pentru a reprezenta variabilele și raporturile dintre ele. De aceea modelele simbolice sunt cele mai generale și cele mai abstracte. Cu ele se lucrează experimental cel mai ușor. Modelele simbolice i-au forma unor relații matematice (obișnuit, egalități sau inegalități), care reflectă structura obiectelor sau fenomenelor modelate.

În multe cercetări cele trei tipuri de modele sunt folosite succesiv; uneori modelele imitative și cele analogice apar drept aproximații într-un model simbolic. Diagrama ce se obține prin analiza sistemului este o astfel de reprezentare inițială; ea conține în general o combinație de elemente imitative și analogice. Reprezentările preliminarii și diferitele încercări folosite la construirea modelului final, pe baza căruia se va rezolva problema, poartă numele de modele conceptuale. Adesea aceste modele sunt diagrame care verifică concepția pe care o avem cu privire la variabilele relevante și relațiile în care se află. Relațiile apar de obicei sub o formă cantitativă; de exemplu se stabilește că o creștere a uneia dintre variabile provoacă o descreștere a altei variabile. Figurile 1.8 și 1.9 care apar mai târziu în acest capitol sunt exemple de modele conceptuale, al căror rol în dezvoltarea modelului simbolic va fi studiat când ne vom ocupa de problemele respective.

În cercetarea operațională se tinde întotdeauna spre obținerea unor modele simbolice, nu numai pentru că este mai ușor de lucrat cu ele, dar și pentru faptul că de regulă, dau rezultate mai precise decât modelele imitative sau analogice.

1.2.1. Modele descriptive și modele explicative

Este important să facem o distincție între modelele care conțin variabilele controlabile și cele care nu le conțin. Primele sunt modele explicative, iar celelalte descriptive. Modele de decizie sunt modele explicative. Adesea însă este necesar să construim descriptive ca un prim pas în obținerea unui model de decizie explicativ. Cazul următor ilustrează această afirmație.

O companie petrolieră dorea să aibă o estimație a câștigurilor ce s-ar fi obținut prin construirea unor stații de benzină în anumite puncte. Compania vroia să evite construirea unor stații care s-ar fi dovedit nerentabile. Problema a fost propusă grupei de marketing din cadrul firmei. Aceasta a audiat un număr mare de salariați și a selectat opiniile lor cu privire la caracteristicile stațiilor de benzină și ale punctelor de amplasare, care ar contribui la creșterea vânzărilor. S-au identificat astfel circa 65 variabile. Au fost selectate date privind aceste variabile de la câteva sute de stații și s-a efectuat o regresie liniară multiplă exprimând dependența vânzărilor de aceste variabile. Aproximativ o jumătate din numărul variabilelor s-au dovedit a fi „statistic nesemnificative”. Modelul de regresie rezultat nu a permis totuși obținerea unei prognoze suficient de exacte care să excludă alegerea amplasamentelor nerentabile.

Mai târziu s-a cerut unei echipe de cercetare operațională să reexamineze problema. Echipa și-a propus să lucreze cu cât mai puține variabile, considerând că există un raport invers proporțional între numărul variabilelor și cunoștințele ce se pot obține despre fenomen. S-a hotărât să se vadă mai întâi cât de departe se poate merge cu o singură variabilă. Din modelul de regresie l-a care s-a renunțat reieșea că cea mai importantă variabilă este intensitatea traficului. Inițial echipa și-a îndreptat eforturile spre a descoperi de ce această variabilă, deși necontrolabilă, are un rol important.

S-a găsit mai întâi o posibilitate precisă de descriere a traficului. Există 16 rute pe care le poate alege o mașină care străbate o intersecție normală (derivațiile către stațiile de benzină fac parte din această categorie), (Combinând cele patru intrări în intersecție cu fiecare din cele patru ieșiri, se obțin 16 posibilități. Bineînțeles, unele din ele sunt „nelegale”). Examinând traficul în raport cu aceste rute, s-a constat că numai unele din ele contribuie semnificativ la vânzările stației. Ordonând rutele după procentul mașinilor care se opresc pentru alimentare, s-a sugerat posibilitatea ca odată cu creșterea timpului de așteptare, acest procent să se micșoreze. Ipoteza a fost testată și s-a confirmat. S-a demonstrat astfel că timpul de așteptare influențează procentul mașinilor ce apelează la serviciile stației. S-au examinat apoi alte variabile, „semnificative” în vechiul model de regresie, pentru a vedea dacă sunt legate într-un fel de timpul de așteptare. Multe dintre ele s-au dovedit a avea o legătură directă; de exemplu numărul și poziția intrărilor și ieșirilor din stație, numărul pompelor, numărul vânzătorilor, numărul dozatoarelor automate de benzină. Efectul lor asupra timpului de așteptare a fost estimat pe o bază pur teoretică. Aceste informații au fost testate în practică și s-au dovedit corecte.

În acest fel a fost posibil să se construiască un model în care numeroase caracteristici ale stațiilor de benzină apar ca variabile controlabile, ceea ce a permis companiei nu numai să aleagă cele mai bune amplasamente pentru noile stații, dar să și proiecteze aceste stații (și să le reproiecteze pe cele vechi), astfel încât să se obțină cele mai mari vănzări posibile.

Modelul de regresie inițial era un model descriptiv, pe baza lui fiind posibilă obținerea unor prognoze; el nu putea servi la dirijarea activității, deoarece nu putea explica rezultatele stațiilor de benzină. O explicație care să permită luarea unor măsuri competente se poate obține numai atunci, când se descoperă legăturile cauzale dintre variabilele controlabile și necontrolabile și rezultatele sistemului.

În problemele în care intervin sisteme pentru care variabilele cele mai importante sunt controlabile (de exemplu, problemele de producție sau problemele de stocuri), relațiile cauzale se pot determina de cele mai multe ori printr-o examinare directă a sistemului. Pentru sistemele în care variabilele necontrolabile au un rol predominant (de exemplu, marketingul), foarte rar relațiile cauzale sunt evidente. Pentru astfel de probleme sunt necesare în general multe studii și experimente înainte de avea suficiente cunoștințe pentru a putea construi un model explicativ. Cu cât structura sistemului (adică relațiile dintre variabile) este mai ascunsă, cu atât mai dificilă este modelarea ei. Diferitele grade de dificultate au dat naștere la diferite metode de construire a modelelor.

1.3. Metode de construire a modelelor

Calitatea unui model depinde foarte mult de imaginea și puterea de creație a echipei de cercetători. Intuiția, perspicacitatea alte operații mentale, având același caracter imprevizibil, joacă un rol fundamental. De aceea nu poate exista un manual care să conțină instrucțiuni privind construirea modelelor. De altfel, chiar dacă ar exista un astfel de manual, el ar reprezenta mai curând o piedică în calea activității creatoare, decât un stimulent. Cu toate acestea, din experiența acumulată în construirea modelelor se pot formula anumite procedee generale. Cunoașterea lor stimulează imaginația și ghidează gândirea creatoare. Aceste metode sunt legate atât de complexitatea structurii, cât și de posibilitățile cercetătorului de a pătrunde în mecanismul interior al sistemului.

Vom considera cinci metode, începând cu cea mai simplă și sfârșind cu cea complexă. Trebuie să reținem că metodele nu sunt exhaustive și nu se exclud reciproc. S-ar putea ca în cazuri particulare să nu se potrivească nici una din aceste metode, deși, de cele mai multe ori ele pot fi utilizate.

1.3.1. Metoda 1

Această metodă se poate aplica atunci când structura sistemului este suficient de simplă și de limpede pentru a putea fi înțeleasă printr-o examinare a sistemului sau printr-o discuție cu persoanele legate de el.

Să considerăm situația unui vânzător de ziare, care trebuie să hotărască câte ziare să comande zilnic, pentru a obține un câștig maxim. El cumpără în fiecare zi un anumit număr de ziare și vinde o parte din ele. Fiecare ziar vândut îi aduce un anumit câștig. Ziarele nevândute le poate înapoia, însă în pierdere. Numărul cumpărătorilor variază de la o zi la alta, dar probabilitatea de a vinde un anumit număr de ziare într-o poate fi estimată pe baza vânzărilor din trecut.

Structura cauzală a acestei a acestei situații este limpede. Începem construcția modelului prin identificarea variabilelor și reprezentarea lor prin simboluri.

Fie: n – numărul ziarelor comandate zilnic;

a – câștigul obținut prin vânzarea unui ziar;

b – pierderea provocată de un ziar nevândut;

d – cererea, adică numărul de ziare ce ar pute fi vândute;

p(d) – probabilitatea ca într-o zi aleasă la întâmplare cererea să fie d;

P – câștigul net zilnic (valorile negative ale lui P ne arată că este vorba de o pierdere).

Dacă într-o zi cc, pentru a obține un câștig maxim. El cumpără în fiecare zi un anumit număr de ziare și vinde o parte din ele. Fiecare ziar vândut îi aduce un anumit câștig. Ziarele nevândute le poate înapoia, însă în pierdere. Numărul cumpărătorilor variază de la o zi la alta, dar probabilitatea de a vinde un anumit număr de ziare într-o poate fi estimată pe baza vânzărilor din trecut.

Structura cauzală a acestei a acestei situații este limpede. Începem construcția modelului prin identificarea variabilelor și reprezentarea lor prin simboluri.

Fie: n – numărul ziarelor comandate zilnic;

a – câștigul obținut prin vânzarea unui ziar;

b – pierderea provocată de un ziar nevândut;

d – cererea, adică numărul de ziare ce ar pute fi vândute;

p(d) – probabilitatea ca într-o zi aleasă la întâmplare cererea să fie d;

P – câștigul net zilnic (valorile negative ale lui P ne arată că este vorba de o pierdere).

Dacă într-o zi cererea depășește numărul ziarelor comandate, adică dacă d > n, câștigul va fi

P(d>n) = na. (1.1)

Pe de altă parte, dacă cererea este mai mică, câștigul vânzătorului va fi

P(d≤n) = da-(n-d)b (1.2)

Atunci câștigul mediu pe zi va fi

. (1.3)

Acesta este un model stohastic: măsoară performanța sistemului, n este o variabilă controlabilă, d – o variabilă necontrolabilă, iar a și b sunt constante necontrolabile. Pentru a rezolva problema exprimată de acest model, trebuie găsit acel n, pentru care devine maxim. Acest model al „vânzătorului de ziare” este aplicabil evident și atunci, când este vorba de comandarea unor produse perisabile.

Multe, dacă nu marea majoritate a problemelor tip de care ne vom ocupa în capitolele următoare reprezintă situații a căror structură este la fel sau aproape la fel de clară ca cea de mai sus. În situațiile foarte simple se poate trece uneori (dar nu foarte des) de la examinarea sistemului direct la construirea modelului corespunzător. Dar chiar dacă modelul potrivit poate fi găsit ușor, se poate întâmpla ca variabilele și constantele necontrolabile (adică parametrii problemei) să fie greu sau imposibil de evaluat. Dacă datele nu pot fi obținute, va fi necesar să se modifice modelul astfel încât noii parametrii sa fie determinabili. Aceste modificări conduc adesea la probleme mai dificile decât problema inițială și în construirea modelelor respective s-ar putea să fie necesară aplicarea uneia dintre metodele ce vor fi descrise în continuare. Vom reveni asupra acestui subiect.

1.3.2. Metoda 2

În situațiile cu o structură suficient de simplă, dar în care reprezentarea simbolică este mai puțin evidentă, se poate constata uneori existența unor probleme de o natură diferită, dar cu o structură similară, probelme bine studiate. În acest caz putem folosi fie cel de-al doilea sistem, fie modelul lui, cu sau fără modificări, pentru a obține o reprezentare simbolică a modelului inițial.

Să presupinem, de exemplu că problema noastră constă în amplasarea unui nou depozit, necesar aprovizionării anumitor clienți, situați în diferite localități. Într-o perioadă dată de timp, cererea fiecărui client (exprimată în tone) este constantă și cunoscută. Cheltuielile legate de transportul mărfii sunt, într-o primă aproximație, egale cu produsul dintre cantitatea transportată, distanța parcursă (în km) și prețul de transport al unei tone pe kilometru. Depozitul trebuie astfel amplasat încât costul total de transport în perioada de timp să fie minim. Mulți dintre cei ce-au întâlnit această problemă au observat că există un analog fizic foarte convenabil ce se construiește destul de ușor în felul următor.

1. Se fixează poziția fiecărui consumator pe o hartă construită la o scară cât mai mare, dar care să poată fi ușor mânuită.

2. Harta se lipește pe o planșetă netedă (eventual pe o tablă de clasă).

3. Planșeta se așează pe un suport astfel încât să fie perfect orizontală.

4. În punctele de dispunere a consumatorilor se perforează câte un orificiu în care se fixează o mică rolă de plastic.

5. Prin aceste role se trece câte un fir de ață; de capătul ce iese în afara suportului se prinde o greutate proporțională cu cererea clientului respectiv.

6. Celelalte capete ale firelor se leagă toate de un inel, astfel încât , atunci când inelul se află pe hartă, greutățile să atârne liber.

Dacă nu ar exista frecări, inelul s-ar deplasa către o poziție de echilibru, care ar reprezenta tocmai amplasamentul optim pentru depozit. Într-adevăr, în acel punct suma produselor dintre distanțele de la inel la role și greutățile respective este minimă. În realitate, totdeauna există anumite frecări care împiedică deplasarea inelului către poziția de echilibru. Ele pot fi atenuate prin mișcări ușoare ale planșetei în diferite sensuri. Se pot imagina versiuni mai complicate, care să țină și de alte condiții impuse problemei. De exemplu, se poate ține seama de existența căilor de transport, fixând în acest scop din loc în loc anumite role, care impun firelor să ia direcția drumurilor de pe hartă. Alte exemple ni le furnizează depozitele destinate păstrării mai multor tipuri de mărfuri sau rețele de conducte.

De asemenea este posibil ca o analogie fizică (sau de altă natură) să sugereze un model simbolic. Această idee este ilustrată de următorul caz în care menționăm ca „soluția” s-a obținut pe cale experimentală.

Un studiu efectuat în India a descoperit că pe rutele unde există doar o cale ferată simplă, trenurile trebuiau să aștepte în gări un timp îndelungat pentru eliberarea liniei. În consecință, viteza medie de circulație era foarte mică (circa 8 km/h pentru trenurile de marfă, datorită mai ales priorității scăzute pe care o au în raport cu trenurile de pasageri). S-a pus problema dacă s-ar putea face ceva pentru a remedia această stare de lucru nedorită. O posibilitate ar fi constat în simularea situației pe calculator. Fiecare tren ar fi trebuit reprezentat individual, în diferite circumstanțe (staționare în gări, mișcare cu diferite viteze, pe anumite porțiuni de linie, etc). Un astfel de program a fost considerat nepractic în condițiile existente. Pentru ca proiectul să nu fie abandonat, problema trebuia abordată altfel.

O analiză superficială a arătat că trenurile se găseau aproape întotdeauna în întârziere față de grafic, durata întârzierilor având un caracter aleator. În fapt, întreaga situație aminteste de mișcarea moleculelor unui gaz, așa cum este ea postulată în teoria cinetică a gazelor, cu deosebire că este vorba de o mișcare unidimensională și nu de una în spațiu cu trei dimensiuni. Urmărind mai departe această analogie fizică, trenurile au fost împărțite în mai multe categorii, după tip (accelerate, personale, marfare etc.), viteză și direcție de deplasare. Încrucișarea a două trenuri de categorii diferite a fost interpretată ca o ciocnire între două molecule, asociind trenului cu o prioritate mai mică o întârziere având o distribuție cunoscută.

Rezulatatele teoretice găsite pe această cale au aruncat lumină asupra factorilor care afectau viteza medie de deplasare și au sugerat ce modificări trebuie aduse variabilelor controlabile (în primul rând de către serviciile de dispecerat) pentru a mări această viteză. Pentru a transpune în practică aceste recomandări ar fi trebuit totuși măsurați o serie de parametrii și determinat procedeul optim de lucru cu ajutorul unor studii îndelungate pe calculator.

Modelul luat din teoria cinetică a gazelor a permis însă să se găsească direcțiile în care urmează să fie schimbate procedeele actuale de lucru. S-a hotărât atunci efectuarea unui experiment în care să fie introduse treptat modificările propuse.După trei săptămâni de experimentări, pe cei 300 de km de cale ferată aleși, viteza trenurilor de marfă a crescut cu 50%. Prin aceasta, prioritatea trenurilor de pasageri a fost întotdeauna respectată, și a fost complet eliminată necesitatea de a opri trenurile de marfă pentru odihna echipelor care au lucrat 12 sau mai multe ore consecutiv.

Etapele care au condus la acest rezultat excelent au fost următoarele. În primul rând s-a stabilit o analogie cu un sistem fizic binecunoscut, mișcare browniană a moleculelor de gaz. În al doile rând, modificând adecvat modelul fizic, s-a obținut un model statistico-matematic al sistemului studiat. În al treilea rând, modelul a fost studiat, folosind pentru valorile parametrilor necunoscuți mărimi aproximative. S-au găsit astfel în ce direcții trebuiau modificate variabilele controlabile, deși nu s-a putut determina și mărimea acestor modificări. În al patrulea rând, folosind direcțiile astfel determinate, s-a efectuat un experiment asupra sistemului însuși (în cazul de față modelul și sistemul coincid), ceea ce a permis o îmbunătățire substanțială a performanțelor, deși probabil soluția obținută nu era optimă. Chiar dacă problema ar fi putut fi atacată fără a utilza asemănarea cu modelul fizic, această analogie s-a dovedit a fi foarte fructoasă.

1.3.3. Metoda 3

În acest caz, structura sistemului nu mai este atât de clară, dar ea poate fi dedusă analizând datele care descriu modul de lucru al sistemului. Aceste date pot fi disponibile sau vor trebui colectate, dar, în ambele cazuri analiza lor este suficientă pentru a ne releva structura sistemului. Se poate întâmpla ca această analiză să ne conducă la anumite ipoteze asupra structurii sistemului, a căror verificare să necesite culegerea unor date suplimentare.

Construirea modelului explicativ pentru problema amplasării stațiilor de benzină, discutată anterior constitue o ilustrare a acestei metode. Analiza traficului și a rutelor folosite de clienți a dat naștere unei ipoteze privind rolul pe care-l joacă timpul de așteptare în vederea alimentării mașinilor. S-au dedus consecințele ce decurg de aici și ele s-au verificat prin analiza datelor culese special în acest scop.

1.3.4. Metoda 4

Atunci când analiza datelor nu ne permite să stabilim care este influența variabilelor individuale asupra performanțelor sistemului s-ar putea să fie nevoie să recurgem la experiment pentru a descoperi variabilele esențiale și influența lor. Folosirea experimentului reprezintă caracteristica esențială a acestei metode.

Pentru ilustrare, să considerăm cazul unei firme ce producea alimente preambalate. Conducerea firmei a cerut unei echipe de cercetare operațională, cu care mai colaborase, să o ajute la stabilirea unui buget adecvat destinat cheltuielilor de reclamă. Conducătorii firmei au dorit ca cercetările să nu afecteze activitatea biroului care se ocupa de reclama produselor, adică de alcătuirea prospectelor, de căile și aria lor de răspândire etc. Ceea ce doreau era să știe ce sumă trebuia alocată; banii urmau să fie cheltuiți la fel ca înainte. Fondurile destinate reclamei au crescut timp de mai mulți ani, proporțional cu estimațiile făcute asupra vânzărilor viitoare; în momentul respectiv ele atingeau 20 000 000 $ pe an.

În precedentele studii de marketing (referitoare la cu totul alte produse), echipa de cercetare a observat că prin creșterea cheltuielilor pentru reclamă nu se obținea întotdeauna și o creștere a vânzărilor. De aceea inițial, s-a făcut ipoteză că, indiferent de forma curbei care exprimă variația vânzărilor în funcție de cheltuielile alocate pentru reclamă, această curbă trebuie să prezinte undeva o porțiune orizontală. Grafic ipoteza este reprezentată în figura 1.1. Această posibilitate a sugerat echipei să privească reclama ca un stimul, iar vânzările drept un răspuns. S-a presupus atunci, cunoscând forma caracteristică a funcției stimul-răspuns din psihologie, că forma curbei ar trebui sa fie cea din figura 1.2.

Speculațiile următoare s-au îndreptat către porțiunea din partea dreaptă a curbei. O situație extremă a fost stabilită pornind de la următorul raționament. Să presupunem că toate reclamele dintr-o țară s-ar referi la un singur produs; care este efectul probabil

asupra vânzării produsului respectiv? Sau, mai realist, ce se va întâmpla dacă un comisvoiajor și-ar consuma tot timpul cu un singur client?

Mai mult ca sigur clientul va căuta să-l expedieze și, în orice caz, îi va refuza

mărfurile. De aceea pare rațional să admitem că există o anumită limită după care reclama va avea un efect negativ asupra vânzărilor.

Consecința acestui mod de a gândi este reflectată în figura 1.3, care reprezintă curba ipotetică reclamă-vânzare. Forma exactă și parametrii acestei curbe au fost , desigur, complet necunoscuti. Datele nu s-ar fi putut obține pe baza cheltuielilor din anii precedenți, deoarece fondurile alocate pentru reclamă erau în strânsă legătură cu volumul vânzărilor. De aceea, echipa de cercetare operațională a considerat că anumite experimente sunt necesare și s-a adresat conducerii. Conducătorii firmei au refuzat să se „joace” cu magazinele lor și să riște o micșorare a vânzărilor. În cele din urmă ei au fost convinși să permită folosirea în scop experimental a 18 din cele 250 de magazine ale firmei. Magazinele au fost alese de către cercetători, cu anumite restricții minore impuse de către conducere. A fost proiectat un experiment în care s-au format trei grupe de câte nouă magazine alese l-a întâmplare din cele permise. Un grup și-a continuat activitatea obișnuită, pentru alt grup cheltuielile de reclamă au fost reduse cu 25%, iar pentru al treilea, au fost majorate cu 50%.

Deoarece reclama reprezintă numai unul din factorii ce afecteaza vânzările și, desigur, nu este mai important decât ceilalți factori luați împreună, a fost necesar ca aceștia să fie grupați într-unul singur. Astfel, s-au putut observa și determina efectele reclamei, a grupării formate din ceilalți factori și a interacțiunii dintre ele asupra volumului vânzărilor. Pentru aceasta s-a utilizat un experiment trifactorial, fiecare factor având trei nivele și un procedeu de predicție a vânzărilor. Testând procedeul pe baza datelor existente, s-a constatat că explică multe din variațiile vânzărilor de la un magazin la altul și de la o lună la alta. Drept variabilă dependentă s-a luat diferența dintre vânzările lunare reale și estimațiile prevăzute (în condiții obișnuite).

După șase luni de experimentări, s-au observat diferențe semnificative între cele trei grupe, diferențe care s-au accentuat în următoarele șase luni. Rezultatele însă au fost complet neașteptate, deoarce configurația dată de cele trei puncte era tocmai singura configurație care contrazicea ipoteza făcută în legătură cu forma curbei de răspuns.(figura 1.4).

În acest moment cercetătorii trebuiau să aleagă între a respinge teoria de la care au plecat sau a contesta valabilitatea rezultatelor experimentale. Înclinând să nu adopte nici una din aceste atitudini, echipa a încercat să caute o explicație a rezultatelor, care să se împace cu considerentele teoretice. În cele din urmă o atare explicație a fost găsită.

Să presupunem că mulțimea clienților ar fi împărțită în două grupe , cu funcții de răspuns diferite, dar fiecare funcție având forma din figura 1.3. Consecința acestei presupuneri este redată în figura 1.5. Există rațiuni pentru a accepta o astfel de ipoteză? Răspunsul este afirmativ, lucru constatat în timp ce se prelucrau datele pentru metoda de predicție a vânzărilor. Cercetătorii au observat că volumul vânzării depinde de mărimea venitului clienților. Populația a fost împărțită în două grupe de venituri,

uneia din grupe revenindu-i o cotă ceva mai mare din volumul vânzărilor decât celeilalte. Analizele următoare au adus o confirmare puternică a acestei ipoteze.

Conducerea a fost surprinsă să constate că prin reducere cu 25% a cheltuielilor pentru reclamă se obține o creștere a vânzărilor mult mai importantă, decât atunci când fondul de reclamă crește cu 50%. Totuși conducătorii firmei s-au abținut de la măsuri concrete în această direcție, considerând că numărul magazinelor și variațiile în cheltuielile de reclamă, pe baza cărora s-au tras aceste concluzii, au fost insuficiente. Echipa de cercetători a fost complet deacord.

S-a organizat un experiment mai larg în care la unele magazine nu au existat reclame, la altele cheltuielile au fost reduse cu 25 și 50%, iar la celelalte cheltuielile destinate reclamei au crescut cu 50, 100 și 200%. Experimentul a confirmat rezultatele precedente și, desigur, le-a completat. Pe baza punctelor găsite s-a construit graficul din figura 1.6.

Acum a apărut o altă nepotrivire: partea din stânga a funcției nu coboară la zero. S-a căutat și s-a găsit o nouă explicație compatibilă cu teoria. Această explicație implică luarea în considerație a unei noi variabile: timpul. S-a admis că un produs de pe piață pentru care s-a făcut o bună reclamă timp de mai mulți ani, se va mai vinde încă o perioadă de timp, pe baza reclamei din trecut,

înainte ca cererea să coboare la zero. Cât de mare ar putea fi acestă perioadă? S-a proiectat un alt experiment și s-a constatat că, produsul se va vinde mult mai mult decât s-a crezut inițial.

Rezultatul a sugerat idea că nu este nevoie ca reclama să constitue la un nivel constant; variind intensitatea reclamei (pulsând), se obține același efect asupra vânzărilor, dar la un preț mai scăzut. S-au efectuat noi experimentări care au confirmat și această ipoteză.

Deși pentru scopul nostru nu este necesar să mergem mai departe în acest caz, este demn de menționat faptul că modelul poate lua în considerare eficacitatea diferitelor căi de reclamă (televiziune, radio, reviste, ziare, afișe), calitatea reclamei și cantitatea de reclamă folosită de concurenți. Pentru acest model este evident că analiza datelor a jucat un rol important, însă utilizarea experimentului a fost esențială. Deși această metodă cere mult timp, de regulă nu este nevoie să așteptăm până la „sfârșit”, pentru a trage concluzii care pot fi fructificate cu succes. Lucrul acesta a fost valabil și în cazul considerat. Deoarece inițial structura sistemului nu a fos cunoscută, pe măsură ce ieșea la lumină, rezultatele sistemului se îmbunătățeau substanțial.

1.3.5. Metoda 5

În acestă ultimă situație nu există și nu pot fi obținute suficiente date pentru descrierea activității sistemului, iar experimentările pe sistem sunt interzise. S-ar părea că ne aflăm într-un caz fără ieșire, dar lucrurile nu stau neapărat așa.

Să considerăm cazul cercetătorilor care au drept scop descoperirea metodelor de control a unor conflicte sociale puternice, cum ar fi grevele sau războaiele. Datele necesare pentru o analiză cantitativă a unor astfel de situații nu sunt disponibile și nici nu se pot obține. De asemenea, societatea nu va admite experimentări în acest domeniu, chiar dacă ele ar putea fi efectuate. Desigur, în aceste condiții, structura sistemului reprezintă aproape un mister. Cum s-ar putea construi un model potrivit pentru aceste conflicte?

Există modele care reflectă conflicte dintre doi indivizi sau dintre grupuri mici de persoane. Ele au putut fi deduse pe baza experimentărilor efectuate în laborator. Din nefericire, concluziile ce se desprind din aceste situații foarte simple, create artificial în laborator, nu pot fi extinse la complexitatea lumii reale. În laborator au fost efectuate și experimentări privind conflicte dintre grupuri mai largi de oameni, dar prin creșterea gradului de complexitate și de realism al experimentărilor au scăzut posibilitățile de modelare a unor astfel de situații. Era necesară o metodă care să încorporeze avantajele ambelor procedee, dar care să evite neajunsurile lor.

O astfel de metodă este redată schematic în figura 1.7. Mai întâi se construiește o situație experimentală relativ complexă (în cazul nostru un joc foarte „larg”), care, în același timp, este cea mai simplă situație ce satisface următoarele condiții.

1. Ea este suficient de „bogată” pentru a permite testarea numărului mare de ipoteze ce se pot formula în legătură cu sistemul studiat, în cazul nostru conflictele sociale puternice. Evident, aceste teste nu pot confirma nici un fel de ipoteze, dar pot determina generalitatea și limitele lor, sugerând în același timp posibilități de generalizare. Scopul acestei condiții este de a „lega” situația experimentală de realitate. Natura acestei legături devine explicită din cea de-a doua condiție.

2. Trebuie sa existe o formulare explicită a variabilelor și a domeniilor lor de variație, pentru care se consideră simplificarea respectivă. Aceasta va permite lărgirea succesivă a situației experimentale, prin introducerea de fiecare dată a unuia sau mai mulți factori.

3. Parametrii esențiali care descriu comportarea sistemului experimental trebuie să fie exprimați cantitativ.

4. Situația experimentală trebuie să se poată descompune în situații mai simple și, ori de cîte ori este posibil, o situație simplă trebuie să fie una deja studiată (sau foarte asemănătoare).

Situația experimentală care satisface aceste cerințe va servi drept o realitate artificială. Ea nu este un model al realității, ci mai curând o realitate care va trebui modelată. Realitatea artificială e folosită pentru a genera o istorie, care va trebui să fie explicată de teoria ce urmează a fi construită. Această istorie se naște testând sistematic pe realitatea artificială ipotezele făcute cu privire la lumea reală.

De asemenea, se efectuează efectuând experimente cu situațiile simple în care se descompune realitatea artificială (în problema noastră ele sunt jocuri antagoniste simple). Se construiește fie câte o ˝microteorie˝ pentru fiecare situație simplă în parte, fie o ˝microteorie˝ generală, care să înglobeze toate situațiile experimentale simple, pentru valori adecvate ale parametrilor. Se încearcă apoi să se combine sau să se generalizeze aceste modele într-un model corespunzător realității artificiale.Simultan, se caută formularea unei teorii pentru realitatea atrificială, pornind de la o ˝macroanaliză˝ directă a istoriei obținute. Cele două încercări interacționează pentru a da naștere în cele din urmă unui model al realității artificiale (), considerat satisfăcător.

Figura 7

O diagramă schematică a metodei 5 de construire a modelelor

Realitatea artificială este modificată apoi astfel încât să se apropie de sistemul real și se încearcă să se generalizeze modelul . Va rezulta un model mai general , din care se obține ca un caz particular. Procedeul continuă cu scopul de a obține un șir de modele din ce în ce mai generale. Pe măsură ce șirul se dezvoltă și realitatea artificială se apropie de realitate, se caută să se descopere principiile care permit generalizarea modelelor. Găsirea unei astfel de metateorii (adică o teorie a modelelor sau a construirii lor) va permite efectuarea unuor salturi mai mari către realitate, sau chiar atingerea ei. Eventual, pe această cale s-ar putea obține o teorie a dinamicii conflictelor sociale, care să se dovedească utilă.

Metoda de construire a modelelor expusă acum a început să fie aplicată numai recent, odată cu lărgirea obiectivelor cercetării operaționale și cu creșterea gradului de complexitate a problemelor, pe care ea le rezolvă. În particular, ne referim la problemele de planificare socială. Deoarece aplicarea metodei necesită mulți ani înainte de a conduce la rezultate definitive, până în prezent nu există studii terminate în care să fi fost folosită, dar unele proiecte se află în lucru.

1.4. Datele disponibile și construirea modelului

După cum am remarcat, uneori este necesar să modificăm un model, altfel acceptabil, deoarece nu este posibil sau nu este economic să evaluăm unul sau mai mulți parametri. Chiar dacă inițial modelul are o structură simplă, se poate întâmpla ca modificările aduse să îl complice. Uneori este necesar să fie parcurse mai multe cicluri de tipul model-colectarea datelor. Fiecare model implică strângerea anumitor date. S-ar putea ca datele obținute să nu conțină informațiile necesare, dar de obicei, ne vor indica în ce direcție trebuie modificat modelul pentru a fi în concordanță cu datele disponibile. Nu rareori se întâmplă să fie necesare până la șase astfel de iterații.

Diferența care există între diverse forme, în ceea ce privește datele disponibile și calitatea lor, constituie adeseori motivul pentru care un model adecvat într-o situație nu se potrivește într-alta, deși la prima vedere cele două situații sunt foarte asemănătoare.

Interacțiunea dintre procesul de culegere a datelor și construirea modelului poate fi ilustrată de experiența acumulată cu ocazia stabilirii fondurilor de cercetare și dezvoltare tehnică pentru diferite firme.

Problema determinării fondurilor pentru cercetare și dezvoltare tehnică (R&D) este relativ ușor de dezvoltat în principiu, dar, de cele mai multe ori, este destul de dificilă în practică. În general, greutățile se datoresc faptului că arhivele departamentelor R&D nu dispun de datele necesare determinării unui buget rațional. Acest lucru este valabil, în particular, pentru firmele care consideră cercetarea ca ceva ˝bun și general˝ și, în consecință, acordă cu oarecare ușurință fondurile necesare.

Stabilirea fondurilor R&D ridică trei chestiuni, care se pun la nivele diferite ale conducerii. Acestea sunt:

Bugetul general: care va fi suma totală ce trebuie alocată pentru R&D în

perioada următoare (sau, dacă este posibil, în perioadele următoare).

Bugetul funcțional: cum trebuie împărțită suma totală între diferitele tipuri de

R&D, de exemplu: cercetare fundamentală, cercetare aplicată, dezvoltare tehnică.

Bugetul subfuncțional: ce studii trebuie începute, care studii trebuie continuate

și ce sumă trebuie repartizată fiecăruia dintre ele.

Aceste chestiuni nu sunt independente. Într-adevăr, se vede ușor că în cazul în care se poate răspunde la ultima problemă, ținând seama de interesele generale ale firmei, atunci sunt rezolvate implicit, și primele două. De aceea, o analiză ideală a problemei bugetului R&D ar trebui să înceapă cu bugetul subfuncțional, ceea ce implică selecționarea studiilor ce vor fi efectuate și fixarea sumelor care urmează să fie alocate.

Dacă am cunoaște:

a) probabilitatea ˝succesului˝ fiecărui proiect, în funcție de fondurile investite, și

b) densitatea de probabilitate a beneficiului net actualizat, corespunzător fiecărui

proiect (sau o altă mărime adecvată), am putea stabili ușor cum să alocăm bugetul total, pentru a maximiza rezultatele R&D. Vom analiza apoi beneficiile ce se obțin când bugetul variază între limitele fixate, determinînd astfel bugetul optim.

Acest procedeu ideal nu poate fi realizat; cauza principală se datorează faptului că probabilitatea ca un studiu să se încheie cu succes și densitatea de probabilitate a beneficiului net sunt date care nu pot fi estimate sau nu pot fi determinate cu un grad suficient de precizie. Desigur, putem face unele aprecieri asupra lor și acest lucru s-a încercat. Dar atâta timp cât nu există o măsură a exactității acestor aprecieri, înseamnă că deciziile sunt luate pur și simplu pe baza părerilor personale. Este ușor de văzut că venitul total depinde mult de acuratețea acestor estimații și deci o abordare subiectivă nu poate fi mulțumitoare.

Primul din cele două cazuri pe care le vom discuta se referă la o mare firmă de produse chimice cu o activitate centralizată de cercetare și dezvoltare. Inițial s-a încercat să se obțină date despre costul și veniturile aduse de studiile efectuate în trecut. Astfel de date n-au putut fi extrase din arhivele existente. În continuare, s-a încercat clasificarea cercetărilor în fundamentale și aplicate. Delimitarea acestor tipuri de cercetare s-a făcut pe baza definițiilor utilizate de National Science Fundation în publicațiile ei. Totuși aceste concepte nu s-au dovedit utile. Compania nu-și clasifica studiile în acest fel și nu a fost posibil să se stabilească din ce categorie face parte fiecare din studiile efectuate. În fapt, multe studii aparțineau ambelor categorii și nu s-a găsit o cale rezonabilă de a aloca sumele cheltuite în mod corespunzător. S-au făcut eforturi în acest sens, dar rezultatele nu prezentau încredere. Eșecul se datorește și faptului că în activitatea sa, conducerea firmei nu a încercat niciodată să facă o deosebire între cele două tipuri de cercetare. S-a căutat atunci să se rețină conceptele de cercetare fundamentală și aplicată dar să li se modifice definiția. Nici aceste eforturi nu s-au dovedit mai fructuoase.

În cele din urmă s-a încercat să se stabilească dacă conducerea departamentului R&D are în vedere, explicit sau implicit, vreo schemă de clasificare, când se ocupă de fixarea bugetului. Nu s-a descoperit nici o schemă explicită, dar discuțiile au relevat că există două categorii de cercetări care ˝au sens˝ pentru conducătorii departamentului R&D și de care ei țin seama în mod inconștient la elaborarea bugetului. Acestea sunt:

Cercetare ofensivă, având drept scop descoperirea de noi produse, care să

permită obținerea de venituri suplimentare.

Cercetarea defensivă, având ca obiectiv reducerea prețului de cost prin

îmbunătățirea sau modificarea produselor existente.

Aceste definiții au rezultat după ce s-a cerut conducătorilor R&D să clasifice ei

însăși proiectele într-un mod rațional. În fiecare test, unui număr de conducători li se cerea să procedeze individual la clasificarea pe care o cred de cuviință. Testele au continuat pînă s-a obținut o schemă de clasificare care conducea la rezultate consistente.

Clasificarea ofensiv – defensivă a temelor de cercetare a sugerat un mod

conceptual care, după corecțiile aduse de analiza sistemului și a datelor de arhivă, a fost schematizat ca în figura 1.8. Acest model a sugerat un criteriu al performanțelor sistemului care, ținând seama de practicile firmei și de datele disponibile, se exprimă astfel:

Beneficiul pe unitatea de capital = (valoarea vânzărilor – costuri de producție –

cheltuieli de vînzare, administrative și generale – cheltuieli R&D)| capitalul total

Motivul pentru care cheltuielile de vînzare, administrative și generale au fost

incluse în criteriu are la bază tot rațiuni legate de disponibilitatea datelor. Nu a fost posibil să se separe cheltuielile de vânzare din anii precedenți, în raport cu produsele noi și cele vechi. De asemenea nu s-a putut găsi o relație acceptabilă între cheltuielile R&D și cheltuielile de vânzare. După ce toate sursele interne de date au fost explorate fără succes, atenția s-a îndreptat către izvoarele externe. S-a găsit astfel o sursă conținând cheltuielile anuale R&D și cheltuielile globale de vînzare, administrative și generale (SAG) ale unui număr de 16 companii chimice, pentru perioada 1947-1957. Din aceste date s-au dedus relațiile din tabelul 1.1. Variația raporturilor din coloana dreaptă s-a dovedit a fi semnificativ mai mică în interiorul grupelor, decât între grupe. Prin urmare, cunoscînd (a) bugetul R&D al unei firme alese la întâmplare și (b) obiectivele pe care le are și le propune acea firmă pentru anul viitor privind mărimea pieții de desfacere, se pot estima cheltuielile SAG, prevăzute pentru anul viitor.

A fost elaborat un model matematic, bazat pe modelul conceptual din figura 1.8,

iar soluția găsită a adus o îmbunătățire sensibilă a performanțelor firmei.

După terminarea studiului s-a încercat aplicarea lui la alte companii chimice. De fiecare dată a fost nevoie să fie aduse modificări datorită diferențelor care existau între datele disponibile. Mai recent s-au căutat să se aplice modelul la o firmă din altă ramură, dar cu aceeași lipsă de succes. Eșecul inițial a permis însă dezvoltarea unui alt model, care se pare că funcționează.

Figura 8

Model conceptual al bugetului

Mai întâi câteva cuvinte despre organizarea firmei. Ea este împărțită pe secții specializate într-o anumită producție. Există un birou R&D central și preocupări similare în fiecare secție. În serviciile din secții, lucrările sunt orientate cu prioritate (dar nu exclusiv) spre dezvoltare, pe când în biroul central predomină studiile axate pe cercetare. Totuși, chiar luând în considerare această distribuție a activităților R&D nu a fost posibilă o divizare corespunzătoare a cheltuielilor efectuate în trecut. De asemenea, cercetările efectuate de biroul central n-au putut fi clasificate în fundamentale și aplicate. De aceea s-a încercat utilizarea categoriilor de cercetare ofensivă și defensivă.

Tabelul 1.1.

Aceste concepte nu se puteau aplica fără modificări, deoarece multe din cercetările efectuate la nivel central aveau în esență un caracter fundamental. În plus, nici alte aspecte ale modelului anterior nu se potriveau în cazul de față:

1. Conceptul de ˝piață de desfacere˝ avea sens pentru unele secții, dar pentru altele nu,

și de aceea nu putea fi aplicat firmei ca un întreg. Cu alte cuvinte, firma în ansamblu nu deservea o anumită piață de desfacere, pentru care să existe date disponibile, unele date fiind chiar lipsite de sens în acest caz.

2. Firma dispunea de date mai complete și mai exacte în legătură cu cheltuielile de

vînzare (inclusiv reclama) decât firma precedentă.

3. Beneficiul pe unitatea de capital nu reprezenta un criteriu acceptabil pentru

această firmă, deoarece, spre deosebire de prima, dispunea de un capital suficient; de aceea ea se preocupa de obținerea unor profituri cît mai mari și nu de maximizarea beneficiilor.

O altă încercare de a obține o clasificare a activităților R&D a dus la următoarele categorii:

1. Cercetări avînd un caracter fundamental.

2. Cercetări avînd un caracter aplicativ.

3. Cercetări privind procesele tehnologice, materiile prime și produsele.

4. Studii cu caracter tehnic privind procesele tehnologice, materiile prime și

produsele.

Datele disponibile au făcut ca sarcina celor ce se ocupau de clasificare să nu fie deloc ușoară. O serie de teste preliminare la care au participat și unii cercetători ai firmei cu o bogată experiență au arătat că va fi necesar un timp îndelungat, aproape un an, pentru ducerea la bun sfârșit a acestei sarcini. Acțiunea era în același timp și costisitoare.

După patru modificări succesive, s-a găsit în cele din urmă o schemă de

clasificare care să se ˝potrivească˝ cu datele disponibile. Aceasta a făcut posibilă găsirea unui criteriu adecvat pentru performanțele sistemului:

Profitul net (inclusiv impozitele) = valoarea vânzărilor – costurile de producție – investițiile pentru achiziționarea de utilaje suplimentare – cheltuieli de vînzare, administrative și de livrare – cheltuieli R&D.

Se observă că în acest criteriu apar aproape aceleași componente ca și în primul caz, dar altfel ˝aranjate˝.

Figura 9. Model conceptual pentru bugetul R&D al sectiilor de productie

Schema de clasificare și modelul conceptual pe care s-a bazat sunt redate în figura 1.9. Pornind de aici, s-a obținut un model matematic comod; el era cel mai bun model ce se putea construi pe baza datelor disponibile, dar reprezenta mult mai puțin decît au sperat cercetătorii. Din fericire, pe baza lui s-au obținut multe informații prețioase. De aici rezultă și principiul: un model aproximativ care permite îmbunătățirea performanțelor sistemului este mult mai bun decât un model exact, dar nefolositor.

Modele ca aproximații

În fața constructorilor de modele stau două obiective contrarii: modelul trebuie să fie cât mai simplu de rezolvat și să reflecte cât mai precis situația reală. Ei nu trebuie să piardă din vedere nici complexitatea soluției matematice, pe care conducerea firmei trebuie să o înțeleagă și să fie în stare să o aplice. În concluzie, în construirea modelelor este de dorit să se simplifice realitatea, dar numai până la un punct, începând de la care lipsa de precizie devine semnificativă.

Nu este totdeauna ușor să se obțină echilibrul necesar. Experiența poate dezvolta o judecată sănătoasă și receptivitatea la nevoile firmei, dacă cercetătorul pătrunde în miezul problemelor și-și păstrează atenția trează.

Simplificarea realității se poate obține prin:

a) eliminarea unor variabile;

b) modificara naturii variabilelor;

c) modificare relațiilor între variabile;

d) modificarea restricțiilor.

Ne vom opri pe rând asupra acestor posibilități.

1.5.1. Eliminarea unor variabile

Evident, nu dorim să eliminăm variabilele care au un efect însemnat asupra performanțelor sistemului. De aceea, uneori este necesar să stabilim care variabile au o influență semnificativă și care nu. Desigur, neglijarea conștientă a unei variabile trebuie să fie justificată întotdeauna cât mai riguros posibil.

De obicei nu se ia în considerare înfluența pe care o are mărimea lotului de produse finite asupra costului de stocare a semifabricatelor. O analiză a celor mai multe procese de producție arată că:

a) costul semifabricatelor stocate este influențat de mărimea lotului, și

b) acest efect este foarte mic în comparație cu cel produs de alți factori care intervin

în model.

În multe cazuri această influență nu depășește 1 %, dar în alte situații ea poate deveni semnificativă. Singura cale de a evita neglijarea unei variabile potențial semnificativă constă în introducerea ei în modelul inițial, urmând să fie eliminată numai pe baza unor justificări bine motivate.

Deoarece în prezent există un număr mare de modele standard, există tendința de a folosi un astfel de model care pare să se potrivească pentru problema noastră, fără a analiza ipotezele simplificatoare pe care modelul le conține în mod inerent. Uneori aceste ipoteze nu sunt formulate explicit în materialul care ne-a furnizat modelul. De aceea, ipotezele care stau la baza modelului vor trebui întotdeauna examinate cu grijă.

Agregarea variabilelor.

În multe probleme numărul variabilelor controlabile este foarte mare. De exemplu, în unele probleme de teorie a stocurilor se cere determinarea cantităților ce trebuie achiziționate pentru mai mult de un milion de articole. Astfel de probleme se rezolvă grupând variabilele în ˝familii˝. O familie de obiecte este tratată ca și cum toți membrii ei ar fi identici. Un principiu obișnuit în formarea ˝familiilor˝ pentru aceste probleme are în vedere patru clase de articole: utilizare frecventă, preț ridicat; utilizare frecventă, preț scăzut;utilizare rară, preț ridicat;utilizare rară, preț scăzut.

Dacă, așa cum se întâmplă de obicei, în prima categorie apar relativ puține articole, ele vor fi considerate separat.

Pentru a estima eroarea ce apare prin agregare, se poate face o selecție întâmplătoare de articole din fiecare familie, calculând apoi diferența dintre rezultatul obținut în acest fel și cel care se poate obține, considerând toate articolele din selecție identice cu articolul ˝mediu˝ al familiei.

Prin agregarea variabilelor, eroarea rezultatului este apoximativ proporțională cu raportul dintre dispersia din interiorul grupelor și dispersia dintre grupe. De aceea ar fi de dorit ca din aceeași familie să facă parte obiecte cît mai asemănătoare și să se separe obiectele ce se deosebesc mult.

1.5.2. Modificarea naturii variabilelor.

Cele mai uzuale procedee de a modifica natura variabilelor sunt:

1) înlocuirea lor cu o constantă,

2) înlocuirea unei variabile discrete cu una continuă,

3) înlocuirea unei variabile continue cu una discretă.

Se obișnuiește mult să se înlocuiască o variabilă aleatoare cu valoarea ei medie, care

este constantă. Să considerăm, de exemplu un model ˝jucărie˝ foarte simplu:

(1.4)

Y este o variabilă aleatoare pe care o înlocuim cu valoarea ei medie, . U va fi interpretat atunci și el ca o medie. Un astfel de model nu este convenabil dacă Y variază puternic. Dacă oscilațiile lui Y în jurul mediei sunt mari (deci varianța este mare), utilizarea modelului ar putea să conducă la rezultate complet false. De exemplu, valoarea lui X care minimizează pe U se determină din condiția

(1.5)

și este

(1.6)

Prin urmare, dacă Y este corect estimat, valoarea minimă a lui U va fi

(1.7)

Să presupunem acum că valoarea adevărată este , în timp ce noi lucrăm cu Y. Atunci rezultatul va fi

(1.8)

Minimul adevărat este

(1.9)

Deci costul erorii va fi

(1.10)

Se poate arăta că acest cost crește odată cu .

În particular trebuie să fim atenți când înlocuim o variabilă controlabilă printr-o constantă. De exemplu, în multe modele cantitative referitoare la producție, cheltuielile de organizare (cheltuielile legate de pregătirea mașinilor pentru fabricarea unui nou produs) sunt considerate constante. În realitate, timpul de organizare este aproape întotdeauna variabil. Unele variații de timp se datoresc muncitorilor, dar influența cea mai mare o are produsul fabricat anterior de mașină.

De exemplu, produsul A poate fi foarte asemănător cu produsul B și foarte diferit de produsul C. De aceea, pregătirea mașinii pentru a produce A după B poate costa mult mai puțin, decît în cazul când A se produce după C. În astfel de situații se pot obține îmbunătățiri mult mai mari, acționând asupra ordinii de fabricație (deci asupra cheltuielile de organizare), decât prin optimizarea cantităților de produse.

Din punct de vedere matematic, de multe ori este mai comod să înlocuim o variabilă discretă cu una continuă. De exemplu, livrările din stoc sunt discrete, dar adeseori ele sunt presupuse ca fiind continue și uniforme în perioada considerată. Admițând că livrările au loc instantaneu la începutul și sfârșitul perioadei și comparând rezultatele ce se obțin cu cele găsite în ipoteza de continuitate se poate determina costul erorii.

Pe de altă parte, în multe din procesele în care timpul dintre evenimente joacă un rol important, modelul se simplifică considerabil, admițând că toate evenimentele ce se produc în cursul unei perioade au loc instantaneu la începutul (sau sfârșitul) perioadei respective. ˝Costul˝ acestei simplificări poate fi calculat, în esență, la fel ca și în cazul anterior.

1.5.3. Modificarea relațiilor dintre variabile

Problemele pot fi simplificate considerabil, modificând relațiile funcționale în unele porțiuni sau în întreg modelul. Aproximarea liniară a funcțiilor neliniare este utilizată în mod obișnuit în multe domenii (de exemplu, programarea liniară); în unele cazuri o curbă este aproximată printr-o linie poligonală (de exemplu, în programarea neliniară). Destul de des pentru aproximare se folosesc funcții pătratice, deoarece derivatele lor sunt liniare (de exemplu, în programarea pătratică). Repartiții discrete (de exemplu legea lui Poisson, legea binomială) sunt aproximate unoeri cu repartiția normală, care este continuă. Repartițiile unor variabile cu valori nenegative sunt aproximate cu repartiții ale unor variabile care pot lua valor negative (dar cu probabilitatea mică).

Determinarea costului unor astfel de aproximații necesită compararea modelului cu ˝realitatea˝.

Trebuie să fim în gardă în ceea ce privește utilizarea execsivă a ipotezei de liniaritate, tendință pe care B.O.Koopman a numit-o liniarism. Ipoteza este periculoasă în special în marketing, unde, pentru activitățile legate de intensificarea vânzărilor, curba de răspuns prezintă o porțiune orizontală sau chiar începe să coboare când piața este ˝saturată˝. Cheltuielile excesive în scopuri de reclamă, de exemplu, se datoresc impresiei că volumul vânzărilor ar crește liniar cu cantitatea de reclamă.

1.5.4. Modificarea restricțiilor

Se pot adăuga, elimina sau modifica restricții în scopul simplificării modelului.

Dacă rezolvarea modelilui cu restricții este dificilă, inițial ele pot fi ignorate. Dacă ˝soluția˝ obținută în acest fel satisface restricțiile, ea poate fi acceptată. În caz contrar, se adaugă treptat câte o restricție până ce soluția modelului, care devine din ce în ce mai complicat, va satisface restricțiile rămase.

Uneori este mai ușor să se țină seama de restricții în mod ˝regresiv˝ decât ˝progresiv˝. Să presupunem de exemplu că trebuie să determinăm producția optimă a două articole, ce se realizează pe aceeași mașină. Mașina este disponibilă doar un timp limitat. Pentru început se poate neglija această restricție; dacă cantitățile optime din cele două produse astfel determinate necesită un timp de producție mai mare, vom încerca să le micșorăm, având grijă ca pierderile care apar datorită acestui fapt să fie minime.

Când este vorba de folosirea unor servicii sau de achiziționarea unor mărfuri pentru care cererea are un caracter aleator, trebuie să ținem seama în model de posibilitatea ca mărfurile să lipsească. De aceea va trebui să dispunem de estimații ale pierderilor provocate de aceste lipsuri. Este foarte dificil să obținem estimații obiective, iar conducătorii firmei s-ar putea să nu poată oferi estimații subiective. Totuși ei ar putea cere ca în noua strategie frecvența lipsurilor să nu fie mai mare decît înainte. Cu alte cuvinte, ei doresc să fie satisfăcuți, în ceea ce privește disponibilul de mărfuri sau servicii. În acest caz se va determina care a fost frecvența lipsurilor și se va introduce restricția ca în viitor frecvența lor să nu depășească această valoare.

În general, soluția care se obține prin eliminarea unor restricții este optimistă (adică asigură performanțe mai bune decât soluția ˝adevărată˝), în timp ce soluția care se obține prin adăugarea de noi restricții este ˝pesimistă˝. Prin urmare, acționînd asupra restricțiilor, se pot determina anumite limite între care este cuprinsă soluția problemei. Acest procedeu este adesea folosit cu succes în studiile preliminarii, pentru obținerea unor estimații ˝rapide și grosiere˝.

1.6. Modele complexe

În unele cazuri modelul este fie prea complicat, fie de dimensiuni prea mari pentru a putea fi rezolvat, însă adesea el poate fi descompus în mai multe segmente ˝soluționabile˝. De regulă, soluțiile unui submodel vor servi drept date inițiale pentru submodelul următor. Să considerăm următorul exemplu, în care s-a pus problema determinării numărului atelierelor de întreținere necesare unei organizații militare pentru repararea echipamentului greu.

Mai întâi s-a construit un model, în care pentru un număr dat n de ateliere, se calcula mărimea optimă a forței de muncă necesară fiecărui atelier. Problema a fost rezolvată pentru mai multe valori ale lui n. S-a construit un al doilea model în care s-a introdus pentru fiecare n costul asociat lui n obținut din primul model, cheltuielile de transport și cele legate de pierderile de timp necesitate de reparație. S-a calculat apoi acea valoare a lui n, pentru care cheltuielile totale în cel de-al doilea model erau minime.

Pentru o versiune mai complicată a acestei probleme într-un studiu privind întreținerea armamentului a fost propus un model mai dezvoltat.

Cheltuielile medii totale ale sistemului de întreținere se pot exprima astfel:

C = P + E + S + T,

unde:

P – reprezintă costurile medii totale ale pieselor de schimb (incluzând comenzi, prețuri de cumpărare, costuri de stocare, penalizări pentru stocuri supranormative);

E – reprezintă costurile medii totale ale reparațiilor;

S – cheltuielile medii totale de producție (incluzând personalul direct, personalul indirect, utilajele, serviciile, etc);

T – reprezintă cheltuielile medii totale de transport al echipamentului, la și de la atelierele de reparații.

Ideal ar fi să dezvoltăm această ecuație, exprimând fiecare din costurile de mai sus în funcție de factorii controlabili și cei necontrolabili. Apoi, folosind metode matematice, se vor putea determina valorile variabilelor controlabile pentru care cheltuielile suplimentare devin minime. Totuși, această abordare nu este posibilă din punct de vedere matematic. De aceea s-a pornit pe altă cale, care implică construirea a trei ˝submodele˝ pentru ateliere, piese de schimb și metoda de reparație (reparațiile se fac înlocuind fie piesele, fie subansamblele).

Pentru a separa această problemă în trei părți, trebuia să se țină seama de interacțiunile dintre ele. Mai întâi, cantitatea și tipul pieselor de schimb ce urmau să fie păstrate în stoc depindeau de numărul atelierelor și deci de numărul depozitelor. S-a constatat totuși, că atunci când numărul atelierelor variază între limitele, admise, influența acestui număr asupra cantității de piese stocate este mică, astfel că soluția optimă nu este afectată, dacă considerăm aceste variabile ca fiind independente.

În al doilea rând, metoda de reparație influențează atât costul pieselor, cât și cheltuielile atelierelor. Presupunând că se înlocuiesc piesele, s-a stabilit numărul atelierelor și stocurile de piese. După aceea s-a încercat să se obțină o îmbunătățire a rezultatelor, presupunând că se înlocuiesc subansamblele.

Nu a fost nevoie de un submodel separat pentru cheltuielile de reparații. Echipamentul ce trebuie reparat suplimentar (peste posibilitățile existente) poate fi împărțit în patru categorii:

1) echipament ce urmează să fie reparat;

2) echipament în curs de reparație;

3) echipament în tranzit;

4) echipament ce așteaptă din lipsa pieselor de schimb.

Cheltuielile asociate acestor patru grupe sunt incluse în submodelele consacrate și

pieselor de schimb.

1.7. Modele de decizie secvențială

În problemele practice în care apar variabile aleatoare, modelele cuprind anumite ipoteze privind fie forma funcțiilor de repartiție (de exemplu, normală, Poisson, exponențială), fie parametrii lor. Există însă și o ipoteză secvențială: legea de repartiție din trecut rămâne valabilă și în viitor. În general, o astfel de ipoteză devine mai puțin acceptabilă pe măsură ce crește distanța dintre momentul utilizării modelului și cel al construirii lui. Este avantajos, prin urmare, ca evaluarea variabilelor din modele și luarea deciziilor să se facă în ultimul moment.

Un avantaj evident se datorește faptului că în momentul respectiv cantitatea de informații de care dispunem este maximă. O decizie mai târzie ne permite să ținem seama de situația concretă a sistemului în acel moment, nefiind necesar să lucrăm cu caracteristicile lui ˝medii˝. Acest fapt duce la economii în cercetare și permite alegerea unor decizii mai bune. Astfel se explică, de exemplu, eficiența metodelor secvențiale de selecție. Cu metodele obișnuite, mărimea eșantionului se determină pe baza informației anterioare. În metodele secvențiale, mărimea eșantionului de selecție nu este determinată dinainte, iar observațiile se fac una câte una sau în blocuri mici. După fiecare observație se cercetează dacă dispunem de o cantitate de informție suficientă pentru estimația care ne interesează, sau sondajul trebuie continuat. Cei care au dezvoltat metodele de analiză secvențială au constatat că datele obținute în timpul selecției permit o determinare mai eficientă a volumului sondajului. Atunci când este aplicabilă, analiza secvențială permite reducerea cu o treime a observațiilor necesitate de o selecție simplă, pentru un grad de precizie dat.

În modelele de decizie secvențială nu se lucrează cu valorile medii ale situațiilor viitoare, bazându-se pe experiența trecută, ci fiecare situație se tratează separat. De exemplu, în unele probleme de teoria stocurilor, mărimea și frecvența lansării comenzilor se determină având în vedere cererea medie și timpul mediu de completare a stocului. Aceste cantități și frecvențe medii vor fi utilizate apoi indiferent de ce se va întâmpla în perioada respectivă. În modelele secvențiale de stocuri, intervalele de timp la care trebuie lansate comenzile nu sunt fixate în prealabil; comanda este lansată atunci când stocul ajunge la un anumit nivel. Acest nivel este determinat având în vedere durata medie de reaprovizionare. Momentul lansării devine în acest caz variabil, reflectând caracteristicile concrete actuale. Modelul introduce deci, în mod limitat, un concept secvențial.

Pentru a înțelege mai clar semnificația modelelor secvențiale să considerăm o problemă de reînnoire, în care intervin un număr mare de obiecte relativ ieftine. Un număr de obiecte identice (cum ar fi becuri, lămpi de radio, electrofiltre) sunt puse in funcțiune la momentul t = 0. Obiectele se uzează apoi cu aceeași intensitate. Funcția de repartiție a duratei lor de funcționare este aceeași, f(t). Când un obiect se defectează, el este imediat înlocuit cu un altul nou.

Fiind dată o astfel de populație de obiecte, adesea se încearcă realizarea procesului de reînnoire de o manieră, într-un anumit sens optimă. În situațiile industriale, această politică vizează minimzarea costului total al operației. Soluția obișnuită, nesecvențială, a problemei prevede înlocuirea fiecărui obiect în momentul defectării lui și înlocuirea întregului lot de obiecte la un anumit interval fix. În rezolvarea problemei pe această cale se presupune că se cunoaște forma și parametrii funcției de repartiție f(t). Există două motive puternice pentru a pune la îndoială această ipoteză.

Dacă datele pe baza cărora se fac estimațiile provin de la firma producătoare,

există șanse ca ele să fi fost determinate în condiții diferite de cele actuale. De exemplu, becurile au fost testate, probabil, lăsându-se să funcționeze continuu până când se defectează, într-un mediu relativ constant. Însă se știe că viața becului depinde de frecvența cu care este stins și aprins, de schimbările de temperatură, de vibrații, etc; pe scurt, condițiile de laborator pot diferi de cele ale instalației la care se referă problema.

Dacă datele provin chiar din instalație, condițiile de lucru ar putea diferi de la o perioadă la alta (de exemplu, vara și iarna), ceea ce ar face ca și f(t) să se modifice corespunzător.

2. Funcția de repartiție a timpului de funcționare, chiar atunci cînd este exactă,se determină utilizând un eșantion foarte mare și deci pentru un număr mic de becuri, repartiția lor s-ar putea să difere semnificativ de f(t).

Un model secvențial implică observarea defecțiunilor pe măsura producerii lor; folosind aceste informații, este sau nu cazul înlocuirii întregului lot.

Modelul secvențial al lui Rutenberg prevede înlocuirea lotului nu la momentul corespunzător cheltuielilor medii minime, ci atunci când sunt minime cheltuielile estimate pentru lotul concret aflat în funcțiune.

Alte câteva probleme în care se poate aplica tehnica modelelor secvențiale sunt următoarele:

1. Un editor lansează o nouă carte și urmărește vînzările săptămînale. Pe baza

informațiilor privind vânzările, el decide dacă trebuie să tipărească o nouă ediție și în ce tiraj.

2. Un teatru lansează o nouă piesă. Pe baza biletelor vândute pentru fiecare reprezentație, trebuie stabilit dacă spectacolele vor fi sau nu continuate.

3. O armă-rachetă inamică este detectată pe ecranul unui radar. Mai multe observații radar ar permite determinarea mai precisă a traiectoriei rachetei; pe de altă parte, se pierde un timp prețios. Cînd trebuie activate mijloacele de apărare?

4. Într-o întreprindere de prestații (de exemplu, un garaj de autocamioane),

suplimentarea serviciilor (de exemplu, închirierea de autocamioane, cu sau fără șoferi) se poate realiza într-un timp scurt. Și aici, decizia privind modificarea capacității mijloacelor de servire se poate lua pe baza informațiilor despre clienții ce așteaptă să fie serviți.

Există un număr de trăsături caracteristice acestor exemple.

a) Inițial există anumite informații generale despre sistem, însă valorile parametrilor

nu sunt cunoscute, ci doar estimate. Cu cât se culeg mai multe informații, cu atât mai precise sunt estimațiile.

b) Există anumite penalizări asociate erorilor de estimație.

c) Amânarea luării deciziei în vederea obținerii de informații suplimentare, este, de

asemenea, penalizată.

În condițiile de mai sus, folosirea modelelor secvențiale este adeseori avantajoasă.

Deciziile luate pa baza acestor modele mai au însă și alte calități importante în afara celor menționate.

1.8. Modelele ca instrument euristic

De regulă, rolul modelelor este de a servi ca instrument în alegerea celei mai bune posibilități de acțiune (sau măcar a unei posibilități bune) din mulțimea celor ˝acoperite˝ de model. Totuși, modelele mai au și o altă întrebuințare, care adesea este neglijată: ele pot fi utilizate euristic, adică ca instrument de cunoaștere. Ele oferă un mijloc puternic de exploatare a structurii problemei și de descoperire a unor posibilități care ințial au fost neglijate. Uneori descoperirea acestor posibilități ar putea reprezenta sarcina cea mai importantă a modelului. Multe din cele mai reușite aplicații ale cercetării operaționale au utilizat modelele la descoperirea unor posibilități pe care teoria existentă le ignora. Importanța unei asemenea cercetări nu trebuie subapreciată. Vom expune aici câteva probleme în care valoarea euristică a modelului a jucat un rol cheie în soluționarea lor. În aceste cazuri, ca și în multe altele, rezultatele obținute au depășit atât de mult așteptările în comparație cu posibilitățile prevăzute, încât modelul nici nu mai este necesar pentru justificarea lor.

1.8.1. Exemplu

O serie de studii privind stocurile unei fabrici și ale depozitelor pe care ea le aproviziona nu au permis o reducere substanțială a cheltuielilor. Consumatorii industriali interesați în produsul respectiv îl achiziționau direct de la depozite. Deoarece produsul se deteriora în condiții atmosferice normale, el era cumpărat în cantități mici. Fabricantul a încercat fără succes să convigă clienții să achiziționeze cantități mai mari, oferind reduceri substanțiale de preț. Pierderile ce s-ar creea prin acumularea de cantități suplimentare au făcut ca oferta să nu pară atractivă clienților. Echipa de cercetători operaționali a observat însă că s-ar putea obține o reducere a cheltuielilor de depozitare, dacă clientul ar prezenta cu câtva timp înainte o notă cu cantitatea necesară și data când dorește să ridice marfa. posibilitatea unei devansări a comenzii nu este prevăzută în mod normal în teoria stocurilor. S-au construit modelele corespunzătoare, cu ajutorul cărora s-au evaluat beneficiile ce s-ar putea obține în funcție de mărimea acestei devansări. A fost propus un plan de reducere a prețurilor, astfel încât noul preț al produsului să fie o funcție în trepte de mărimea intervalului de timp „oferit” de client, între lansarea comenzii si livrarea mărfii. Planul a fost pus în aplicare. Clienții l-au considerat avantajos, deoarece stocurile lor nu erau afectate, iar ei iși cunoșteau de regulă cu câtva timp înainte propriile necesități. În același timp, depozitele au putut utiliza o strategie „stoc pentru comenzi”, care a permis o reducere considerabilă a cheltuielilor de stocare.

1.9. Concluzii

Modelele joacă un rol atât de important în cercetarea operațională, încât unii

profesioniști consideră că tocmai acest lucru o deosebește de alte domenii care se ocupă, de asemenea, de cercetarea activității de conducere. Modelul oferă o descriere „filtrată” și simplificată a operațiilor sistemului pe care îl reprezintă. Analiza și experimentarea cu ajutorul modelului ne dă posibilitatea să stabilim ce modificări afectează performanțele sistemului. De obicei experimentarea directă asupra sistemului este sau imposibilă, sau foarte costisitoare. Chiar atunci când sistemul însuși ar putea fi supus experimentării, modelul ne permite să realizăm astfel de experimentări mult mai eficient.

Am deosebit trei tipuri de modele : imitative, analogice și simbolice. De regulă

modelele analogice și imitative sunt folosite la eleborarea celor simbolice, care deși mai abstracte, sunt mai ușor de mânuit și dau rezultate mai precise decăt celelalte.

În construirea modelelor ne putem servi de anumite metode generale, care

depind de complexitatea sistemului și de profunzimea cunoștințelor pe care le are cercetătorul despre structura sistemului. S-au considerat cinci astfel de metode , caracterizate prin : examinării directe a sistemului,folosirea unui model asemănător, analizelor datelor, experimentării, a unei „realități artificiale”.

Ne-am ocupat deasemenea de interacțiunea dintre datele disponibile și procesul

de construire a modelului. Adeseori trebuie elaborat un model mai puțin precis decât s-a sperat, dar totuși util. Un model aproximativ, dar folositor, este mult mai bun decât un model exact, dar inutilizabil.

Modelele nu sunt niciodată tot atât de complexe ca fenomenele pe care le

reprezintă; ele sunt simplificate cât mai mult posibil, fără ca aceasta să ducă la o pierdere semnificativă a acurateții rezultatelor. Pentru a simplifica reprezentarea sistemului studiat, unele variabile sunt omise sau li se modifică natura. De asemenea relațiile dintre variabile pot fi modificate, spre a deveni mai ușor de mânuit, iar unele restricții pot fi adăugate sau eliminate din model.

Sistemele mai complexe pot fi reprezentate uneori prin mai multe submodele,

legate între ele.

Pentru problemele ce trebuie rezolvate în mod repetat, în condiții variabile, s-au

elaborat metode secvențiale de decizie care exploatează toate informațiile disponibile în momentul luării deciziei. Aceste modele pot fi utilizate și pentru a determina momentul unei acțiuni.

În sfârșit, am menționat că modelele mai pot fi folosite pentru descoperirea unor

posibilități de acțiune, care n-au fost prevăzute anterior. De multe ori în acest fel se relevă soluții, a căror superioritate este atât de evidentă, încât nici nu mai este necesar să fie demonstrată.

2. REZOLVAREA MODELELOR

Tipuri de soluții

Am văzut că un model general de decizie poate fi pus sub forma

U = f(X, Y), (2.1)

unde X reprezintă variabilele controlabile, Y – variabilele necontrolabile, iar U – utilitatea sau valoarea estimată. În plus, pot exista și restricțiile X, Y și Φ pot fi vectori; U este scalar

Φ(X, Y) ≥ 0 (2.2)

Soluția acestui model se obține prin determinarea acelui X (ca funcție de Y), pentru care U devine maxim; pentru găsirea lui X se pot utilize instrumentele clasice ale matematicii (analiza matematică și calculul cu diferențe finite). Procedeele clasice funcționează dacă restricțiile relației (2.2) comportă numai egalități (iar numărul variabilelor controlabile este relativ mic). Astfel de metode care ne dau o expresie directă a lui X în funcție de Y se numesc deductive.

Uneori, în particular în situațiile probabilistice, s-ar putea să fie imposibil să exprimăm direct pe U ca o funcție de X și Y. În loc de aceasta dispunem de o serie de reguli care ne permit să calculăm pe U atunci când X și Y sunt dați. Luând pentru Y diverse valori, vom putea calcula utilitatea medie prin metode inductive. În astfel de situații, pentru determinarea soluției optime metodele matematice clasice ne sunt de puțin folos. Când metodele clasice nu funcționează, în lipsa unei formule pentru U sau datorită complexității restricțiilor și numărului mare de variabile, de regulă, suntem obligați să apelăm la procedee iterative. Recurgând la un astfel de procedeu, trebuie să dispunem de o soluție inițială (care în general nu este optimă) și de o serie de reguli (algoritm), care permit îmbunătățirea ei. În continuare, soluția inițială va fi înlocuită cu cea îmbunătățită și procesul se reia de la capăt. Se continuă până când fie că soluția nu se mai poate îmbunătăți, fie că prelungirea calculelor implică cheltuielile nejustificabile.

Soluții iterative

Mulți dintre algoritmii folosiți în programarea liniară, neliniară sau dinaimcă au

un caracter iterativ. Următorul exemplu foarte simplu ne va arăta cum funcționează un astfel de procedeu. Să presupunem că un comis voiajor dispune de zece ore pentru vânzarea a trei produse A, B și C.

Valoarea vânzărilor, în funcție de timpul consumat, este cunoscută pentru fiecare din cele trei mărfuri. Datele sunt precizate în tabelul 2.1, sub formă de "creșteri": dacă vânzătorul se ocupă două ore de produsul A, el vinde 20 + 17 = 37; dacă se ocupă trei ore, va vinde 20 + 17 + 12 = 49. Să observăm că creșterile sunt monoton descrescătoare.

Tabelul 2.1.

Un exemplu de procedeu iterativ

O metodă iterativă pentru obținerea unei repartizări a celor zece ore, care să asigure un volum maxim de vânzări, este următoarea:

1. Se distribuie în mod arbitrar cele zece ore între cele trei produse; fie, de exemplu, 4 ore pentru A și câte 3 ore pentru B și C.

2. Se stabilește creșterea maximă ce se poate obține adăugând 1 oră suplimentară. În cazul nostru se va obține 14, atribuind ora respectivă produsului C.

3. Se determină pierderea minimă ce apare ca urmare a micșorării timpului disponibil cu 1 oră. În exemplul de mai sus, pierderea este 10 și se produce atunci când timpul afectat lui A scade cu 1 oră.

4. Dacă numărul obținut la etapa 3 este mai mic decât cel obținut în etapa 2, se modifică cu o oră, în mod corespunzător, timpul acordat celor două produse. În situația de față, lui A și B le vor reveni câte 3 ore, iar lui C, 4 ore.

5. Se repetă etapele 2, 3 și 4, până când câștigul maxim ce s-ar putea obține adăugând câte 1 oră devine mai mic (sau egal) cu pierderea ce ar rezulta prin micșorarea timpului total cu 1 oră. În exemplul nostru mai este necesară numai o singură modificare: se afectează 1 oră în plus lui B (câștigul fiind 13) și se scade 1 oră din cele repartizate lui A (pierderea fiind 12). Soluția problemei va fi: produsului A trebuie să i se acorde 2 ore, iar produsele B și C câte 4 ore.

Procedeul

Metodele iterative se pot împărți în trei grupe. Pentru metodele din prima grupă

fiecare nouă iterație îmbunătățește rezultatul precedent, iar după un număr finit de etape se găsește soluția optimă, nemaifiind posibilă nici o îmbunătățire. În grupa a doua intră acele metode în care, deși soluția se îmbunătățește, cu fiecare iterație, optimul nu poate fi obținut decât ca limita unui proces infinit. În grupa a treia includem metode caracterizate prin încercări și erori: știm că în ansamblu soluția tinde să se îmbunătățească, dar acest lucru nu se întâmplă la fiecare iterație în parte.

Dacă pentru o metodă din prima grupă dispunem de un test care să ne tinde când soluția nu mai poate fi îmbunătățită, calculele se vor termina în mod sigur după un anumit timp. Totuși, efortul necesar s-ar putea să fie excesiv de mare și de aceea, pentru toate cele trei grupe, dorim să putem decide momentul când trebuie să ne oprim datorită faptului că următoarele îmbunătățiri nu vor justifica cheltuielile de calcul. Îl vom descrie mai întâi pentru un model determinist și vom arăta apoi cum se poate extinde și la sistemele stohastice.

Să presupunem că pentru o valoare dată a variabilelor controlabile X și a variabilelor necontrolabile Y putem calcula utilitatea U = f(X, Y). Pentru un Y dat să calculăm U pentru o serie de valori , , … ale lui X. Fie , ,…, rezultatele corespunzătoare. Dacă este posibil, ar fi bine să dispunem de o regulă care să ne permită alegerea lui în funcție de , …, și , … , astfel încât sa avem > . În lipsa unei astfel de reguli vom alege astfel încât inegalitatea > să aibă loc cu o probabilitate cât mai mare. Procedeul funcționează însă chiar dacă valorile succesive ale lui X sunt alese la întâmplare. În continuare, punctele se marchează pe un grafic (figura 2.1). Punctele care reprezintă utilitatea maximă, obținută până în momentul respectiv, se încercuiesc.

Figura 2.1.Grafic construit pe baza principiului Las Vegas

Cu mâna liberă se construiește o curbă (de obicei constantă), care să treacă prin cât mai multe din punctele încercuite. Extrapolând această curbă, putem estima ce îmbunătățire ne va aduce iterația următoare. Comparând câștigul respectiv cu cheltuielile de calcul, ne vom da seama dacă merită sau nu să continuăm aplicarea metodei iterative.

Mulți algoritmi iterativi folosiți în cercetarea operațională au fost elaborați foarte recent; de aceea presupunem că nu îi sunt familiari cititorului și ne vom opri asupra lor în detaliu, când vom discuta modelele pentru care au fost construiți. Pe de altă parte, multe din procedeele deductive utilizate de cercetarea operațională (calculul cu diferențe finite și calculul diferențial) sunt cunoscute de cei cu o pregătire științifică sau tehnică superioară. Ori de câte ori aparatul matematic necesar depășește aceste limite, vom da explicațiile corespunzătoare.

În acest capitol ne vom opri asupra următoarelor metode de determinare a soluției optime:

1) simulare: experimentare asupra modelului;

joc: un tip de simulare la care participă în mod real și cel care trebuie să ia

decizia (de regulă, conducerea firmei);

3) optimizare experimentală: experimentare asupra sistemului însuși.

Simulare

Modelele reprezintă realitatea, simularea o imită. Simularea presupune întotdeauna utilizarea modelului; ea constituie, în esență, o manipulare a modelului care creează impresia unui film al realității. În general, simularea necesită un mare volum de calcul și de aceea, până la apariția calculatoarelor electronice, adeseori era imposibil de realizat în practică. Chiar și în prezent, există situații când volumul de calcul este atât de mare în comparație cu "dimensiunile" problemei, incât rezolvarea ei prin simulare nu este practic posibilă.

Simularea unui model imitativ implică testarea modelului în condiții reale sau "imitative". Acest procedeu se utilizează pe scară largă când se studiază anumite proprietăți ale unui sistem foarte complex.

În simularea modelelor simbolice, problema constă în evaluarea unor expresii care conțin una sau mai multe variabile aleatoare. O variabilă aleatoare este caracterizată prin funcția sa de repartiție.

Să presupunem, de exemplu, că vrem să evaluăm valoarea medie a pătratelor unei variabile aleatoare z, care poate lua orice valoare întreagă cuprinsă între 0 și 9, cu aceeași probabilitate 1 ⁄ 10. Putem calcula cu ajutorul formule

dar putem încerca și altfel.

Cu ajutorul unui tabel de numere aleatoare alegem pentru z valori cuprinse între 0 și 9, cu aceeași probabilitate: calculăm pătratul lor și facem media. Rezultatul obținut de va da o estimație pentru . Procedeul este ilustrat în tabelul 2.2, unde mediile au fost calculate cumulativ după fiecare cinci iterații, dintr-un eșantion de volum 30.

Esența metodei simulării constă în atribuirea variabilelor aleatoare ale unei valori alese la întâmplare (selecție) dintr-o populație având aceeași repartiție cu cea a variabilei respective. Uneori metoda mai poartă numele Monte Carlo, dar strict vorbind, metoda Monte Carlo se referă la utilizarea selecțiilor pentru estimarea valorilor unor variabile nealeatoare. De exemplu, să presupunem că vrem să estimăm lungimea unuia dintre arcele marcate cu circumferința unei rulete. Rotind ruleta de un număr de ori, se determină numărul de cazuri în care oprirea s-a produs în dreptul arcului fixat. Înmulțind frecvența relativă cu 360º, vom găsi o estimație a lungimii arcului, exprimată în grade.

Tabelul 2.2

Pentru a efectua o selecție aleatoare dintr-o populație statistică cu o anumită funcție de repartiție, ne sunt necesare de obicei trei lucruri:

1) o mulțime de numere aleatoare (uniform repartizate);

2) un procedeu de a trasnforma aceste numere într-o altă mulțime de numere

aleatoare, a căror funcție de repartiție să fie tocmai cea dată;

3) o metodă de estimație.

Ne vom ocupa pe rând de aceste trei aspecte ale simulării.

2.2.1.Numere aleatoare

Pentru calculele manuale nu există nici o problemă privind obținerea de numere aleatoare. Există numeroase tabele de acest fel, cele mai extinse fiind cele publicate de RAND Corporation în 1955. În schimb, atunci când pentru simulare se folosește un calculator, rareori ne putem permite să-i încărcăm memoria cu o cantitate mare de numere aleatoare. În consecință, au fost elaborate o serie de programe pentru a genera numere, așa numite pseudoaleatoare. Două din metodele cele mai uzuale sunt metoda pătratelor și metoda congruențelor.

Metoda pătratelor constă în alegerea unui număr arbitrar de patru cifre (alte procedee, mai minuțioase, folosesc numere având până la zece cifre) care se ridică la pătrat; cifrele din mijloc ale rezultatului (de la a 3-a, la a 6-a inclusiv), formează un nou număr de patru cifre, care se ridică la pătrat, etc. De exemplu, plecând de la 3182 obținem 3182² = 10125124, deci numărul va fi 1251; el se ridică la pătrat și generează un nou număr de patru cifre etc. Este posibil ca în această serie să dăm de un număr pe care l-am mai întâlnit deja. Lungimea unui ciclu variază între și .

Metoda congruențelor, deși ceva mai complicată, ne poate da cicluri mai mari de . Ea constă în următoarele: se stabilesc două numere, K și M și se alege la întâmplare valoarea inițială , după care se determină formula

(mod M)

(adică este restul împărțirii lui la M). Metoda a fost introdusă de Lehmer, care a luat K = 23 și . El a obținut o serie de numere cu opt cifre, lungimea ciclului fiind 5882352. Taussky și Todd arată că luând , și , se obține o serie de aproximativ numere diferite.

2.2.2.Numere aleatoare cu o repartiție dată

Metoda de transformare a unor numere aleatoare uniform repartizate în numere aleatoare cu o repartiție dată este simplă în principiu, dar uneori este relativ greu de realizat în practică. Să considerăm funcția de repartiție al cărei grafic este prezentat în figura 2.2. Un număr aleatoriu uniform repartizat [0,1] se transformă astfel: numărul este reprezentat pe axa verticală, după care prin punctele respective se duce o paralelă la axa OX. Proiecția pe axa orizontală a punctului de

Figura 2.4.Transformarea unor numere aleatoare cu o repartiție uniformă

în numere aleatoare cu o repartiție dată

intersecție al acestei paralele cu graficul funcției va constitui transformatul numărului aleator inițial. Se observă ușor că în porțiunile unde panta funcției de repartiție este mai accentuată (și deci valorilor respective le corespunde o probabilitate mai mare), punctele "transformate" vor fi mai dense.

Există tabele de numere aleatoare având o repartiție normală. Pentru repartiția exponențială, astfel de numere se obțin imediat ca logaritmi ai unor numere aleatoare repartizate uniform.

În unele cazuri s-ar putea ca repartiția variabilei aleatoare să nu se încadreze într-unul din tipurile cunoscute. Atunci vom efectua o serie de observații independente asupra valorilor variabilelor și vom determina cu ajutorul lor funcția de repartiție empirică. Aceasta va lua locul lui F(X) în procedeul descris mai sus, când dorim să obținem numere aleatoare pe care să le putem folosi la simularea variabilei noastre. Procedeul comportă un oarecare pericol când numărul observațiilor nu este suficient de mare, deoarece valorile extreme ar putea fi omise. Pe de altă parte, vor trebui evitate "distorsiunile" repartiției empirice.

2.2.3. Metode de estimație

Datorită volumului mare de calcule necesitate de simulare, este de dorit să utilizăm metode de estimație care să dea rezultate cât mai precise, cu un număr cât mai mic de "observații". În particular, trebuie să ne conformăm acestei cerințe atunci când calculele sunt făcute manual. Metodele de estimație care oferă o precizie mai mare pentru același volum de selecție sau permit reducerea numărului de observații, pentru un același grad de precizie, poartă numele de procedee de micșorare a dispersiei.

Rețeaua foarte simplă de linii telefonice prezentată în figura 2.3 ne-ar putea ajuta la descrierea acestor procedee. Pentru fiecare din conexiunile rețelei există o anumită probabilitate (cunoscută) de a fi ocupată. Dorim să determinăm care este posibilitatea de a avea o legătură între 1 și 5. Problema poate fi rezolvată analitic, însă soluția nu se obține ușor, iar dificultățile se măresc pe măsură ce numărul conexiunilor crește. Vom încerca, de aceea, o altă cale.

Figura 2.3. O retea simplificată

Observăm că atunci când cunoaștem liniile libere, putem stabili ușor dacă comunicația între 1 și 5 este posibilă. De exemplu, 1 și 5 nu pot comunica, dacă liniile (35) și (45) sunt simultan ocupate. Fie pij, probabilitatea ca linia (ij) să fie ocupată și fie xij o variabilă aleatoare care ia valoarea 0 când linia (ij) este ocupată și valoarea 1, în caz contrar. Vom lua, de asemenea, = 0, dacă între i și j nu există o conexiune directă; în acest caz = 1. În fiecare moment, starea sistemului va fi descrisă complet de matricea ||||; cu ajutorul ei putem stabili, de asemenea, dacă 1 și 5 pot comunica.

Să presupunem acum că alegem la întâmplare numerele rij cuprinse între 0 și 100 și pentru orice ≠ 0, luăm = 0 dacă ≤ 100; în caz contrar, = 1. Repetăm acest proces și observăm că de fiecare dată dacă comunicația între 1 și 5 este posibilă. Calculele manuale, care pot fi greoaie în cazul unor rețele mai complexe, sunt de astădată destul de simple.

Tabelul 2.3.

Tabelul 2.3 ne dă probabilitățile ca fiecare linie să fie liberă. Să vedem cum putem estima probabilitatea ca 1 să comunice cu 5. Procedeul cel mai simplu constă în a alege la întâmplare câte un sistem format din șapte cifre, corespunzătoare celor șapte legături: (12), (13), (23), (24), (34), (35) și (45). Dacă prima cifră este 0, 1, 2, 3, 4, 5 sau 6 vom presupune că legătura (12) este liberă, iar în caz contrar, că este ocupată. Analog, dacă cea de-a doua cifră este 0 sau 1, presupunem că legătura (13) este liberă, etc. Tabelul 2.4 prezintă rezultatele a 30 de "experiențe"; în șase din ele, 1 și 5 comunică. Probabilitatea acestui eveniment o estimăm deci ca fiind P = 6 ⁄ 20 = 0.3. Dispersia estimației este

Există o serie de procedee care ne permit să micșorăm dispersia (când ea este prea mare), modificând în acest scop experimentul sau metoda de estimație.

Tabelul 2.4.

Numere aleatoare folosite în simularea rețelei telefonice

=Numerele incercuite reprezintă conexiuni libere=

Selecție orientată. Să presupunem că pentru estimația lui P, în locul probabilității "adevărate" p, ca linia (12) să fie ocupată, folosim o probabilitate p'. Vom împărți în două grupe observațiile în care 1 și 5 comunică după cum linia (12) este sau nu liberă. Când folosim p' în locul lui p, linia va fi ocupată de p' ⁄ p ori este mai frecvent și va fi liberă de (1 – p)' ⁄ (1 – p) ori mai des. Să presupunem că din n observații, 1 și 5 comunică în cazuri cu linia (12) liberă, iar în cazuri cu linia (12) ocupată (lucrând cu probabilitatea p'). În realitate vom avea aproximativ (1 – p) ⁄ (1 – p') cazuri când 1 și 5 comunică, linia (12) fiind liberă circa p ⁄ p' cazuri când comunicația are loc cu linia (12) ocupată. Prin urmare, o estimație a lui P va fi

.

Se poate arăta că valoarea lui p' pentru care dispersia lui P devine minimă este dată de relația

, (2.3)

Unde reprezintă probabilitatea ca 1 și 5 să comunice știind că linia (12) este ocupată, iar , probabilitatea ca 1 și 5 să comunice știind că linia (12) este liberă. Desigur, și nu sunt cunoscute inițial, dar le putem estima ușor folosind datele pe care le vom obține pentru determinarea lui și .

Pentru valoarea lui p' determinată din relația (2.3), se poate arăta că dispersia estimației obținută pentru P pe baza a n observații se micșorează cu

. (2.4)

Expresia (2.4) este nenegativă și este cu atât mai mare, cu cât p este mai apropiat de 0.5 iar diferența dintre și este mai mare.

Dacă în exemplul nostru presupunem linia (12) ca fiind întotdeauna ocupată, ignorând deci numerele aleatoare din coloana corespunzătoare, 1 și 5 vor putea comunica într-un singur caz, ceea ce ne dă estimația 0.05 pentru . Analog, presupunând linia (12) liberă, găsim opt cazuri favorabile și deci estimația pentru este 0.4. Prin urmare,

,

de unde p' = 0.55.

Folosind această valoare, constatăm că pentru o selecție comportând 20 de observații, dispersia estimației lui P se micșorează cu 0.0018, adică cu circa 17%.

Ruleta rusă. În cele 20 de observații va trebui să generăm 20 × 7 = 140 numere aleatoare. Este însă evident că 1 și 5 nu pot comunica dacă liniile (12) și (13) sunt simultan ocupate. În aceste cazuri nu mai are nici un sens să examinăm situația celorlalte linii. Liniile (12) și (13) sunt ocupate simultan cu probabilitatea × = 0.3 × 0.8 = 0.24. Prin urmare, dacă atunci când se produce acest eveniment întrerupem observația, numărul mediu de numere aleatoare necesare pentru fiecare observație se va reduce de la 7 la 7(1 – × ) + 2 × = 6.52. Sau, în alți termeni, cu aceeași cantitate de numere aleatoare numărul observațiilor crește de 7 ⁄ 6.52 ori, adică cu circa 8%; în aceeași proporție se micșorează și dispersia estimației lui P. În exemplul nostru există trei cazuri de felul acesta, iar cele cinci numere aleatoare "irosite" de fiecare dată ne-ar fi permis obținerea a două observații suplimentare, ceea ce corespunde aproximativ cu aprecierile făcute de noi.

Ruleta rusă se bazează pe ideea că anumite observații sunt mai semnificative decât altele. O observație "semnificativă" este divizată în k părți, fiecare cu ponderea 1 ⁄ k, cu scopul de a mări numărul situațiilor interesante. (în exemplul nostru, k = 1). În același timp, un anumit procent de observații nesemnificative sunt eliminate (în exemplul nostru 100%). Observațiile nesemnificative se elimină în mod aleator; cele rămase capătă o pondere mai mare, pentru a compensa observațiile eliminate (Procedeul de eliminare amintește de un joc rus de noroc; de aici și denumirea. Întreaga metodă a fost eliberată de John von Neumann și S. Ulam).

2.2.4. Simularea pe calculator

Când selecția se face dintr-o populație statistică cu o funcție de repartiție multidimensională, dispersia estimației poate fi calculată uneori analitic, însă de cele mai multe ori acest lucru nu este posibil. Prin urmare, cercetătorul nu va cunoaște în prealabil numărul necesar de onservații.De aceea o selecție efectuată în mai multe etape (cel puțin două) este foarte potrivită în simulare. Dacă problema se rezolvă manual, dispersia estimației va fi recalculată la sfârșitul fiecărei etape. Când este folosit un calculator, efectuarea selecției în mai multe etape s-ar putea dovedi costisitoare. Adesea, însă, se neglijează faptul că este mult mai costisitor să determinăm volumul selecției la întâmplare și să constatăm la sfârșit că am făcut prea multe sau prea puține observații.

Chiar atunci când folosim un calculator, se fac de obicei câteva calcule manuale pentru verificarea programului. Rezultatele ce se obțin pe această cale ar putea fi folosite pentru a găsi chiar și o estimație grosieră a dispersiei, care ne-ar permite să evaluăm numărul observațiilor necesare. Dispunând de o estimație a dispersiei, putem aplica procedeele de determinare a volumului optim de selecție, eventual cu modificările impuse de caracteristicile situației.

În cazul unor probleme mai complexe există multe posibilități de apariție a unor erori care nu sunt legate de selecția propriu-zisă. Aceste erori au, în general, aceleași caracteristici ca și erorile de observație și pot fi tratate în același fel.

Pentru a hotărî dacă simularea o vom executa sau nu pe calculator, trebuie să avem în vedere atât factorii economici, cât și precizia rezultatelor pe care le vom obține. Costul utilizării calculatorului nu cuprinde numai timpul de calcul, ci și pe cel necesitat de inevitabilele depanări ale programului.

2.3. Joc operațional

O metodă de simulare în care deciziile sunt luate de una sau mai multe persoane reale se numește joc operațional. Termenul este utilizat uneori numai pentru situațiile care implică participarea a două sau mai multe persoane. Noi însă nu vom folosi termenul în acest sens restrâns.

În ultima decadă, jocurile au început să fie întrebuințate pe o scară din ce în ce mai mare în studiul operațiilor militare și industriale complexe. Ele sunt utilizate în prezent și la cercetarea unor triale complexe. Ele sunt utilizate în prezent la cercetarea unor probleme de administrație la nivel municipal sau național și chiar în politica externă. Jocurile sunt folosite de mult timp în domeniul militar, însă utilizarea lor ca instrument de cercetare este relativ recentă. După cum observă Hoggatt jocurile erau folosite ca "mijloc de învățare, făcând să crească interesul participanților la joc". Jocurile au început să fie folosite din ce în ce mai mult la selecția și instruirea personalului, pentru familiarizarea lui cu operațiile care au loc într-un sistem complex sau pentru a explica ideile care stau la baza acestor sisteme.

În problemele de cercetare, jocurile pot fi utilizate în următoarele trei scopuri:

la elaborarea unui model de decizie

la găsirea soluției optime a modelului

la evaluarea soluțiilor propuse pentru problemele modelate printr-un joc.

Jocurile ne pot ajuta la construirea modelelor, oferindu-ne o bază pentru a testa

gradul de importanță al variabilelor și a formei funcționale a modelului (adică a relațiilor dintre variabile). De asemenea, uneori jocurile ne permit să descoperim noi posibilități de acțiune sau să comparăm diferitele soluții găsite. În unele cazuri nu putem obține din model decât o descriere parțială a strategiei și nu una completă; efectul strategiei va putea fi determinat totuși cu ajutorul unui joc.

Jocurile operaționale reprezintă în esență experimente în care se observă comportarea în condiții controlabile a persoanei care ia deciziile. Ele diferă de cele mai multe din experimentele din psihologie și sociologie numai prin faptul că au loc în afara laboratoului, în condiții care să ne permită o mai bună cunoaștere a anumitor circumstanțe. De aceea, în mod deliberat situația experimentală este construită astfel încât să reprezinte un model imitativ sau analogic al situației reale care îl interesează pe cercetător.

Adeseori jocurile au fost elaborate fără a avea o idee clară despre felul cum ar putea sau ar trebui să fie utilizate. Ocazional s-a propus raționalizarea eforturilor, dar în general modelele au fost construite fie ca un exercițiu științific, fie în scopul explorării eventualelor aplicații. S-a pretins că jocurile sunt utile în selecționarea și instruirea personalului sau în descrierea funcționării sistemelor complexe, dar până acum nu se cunoaște aproape nimic despre eficiența acestor aplicații.

Thomas și Deemer au expus pe larg problemele metodologice legate de utilizarea jocurilor ca mijloc de cercetare. Redăm un citat din articolul lor.

"În afară de faptul că este greu să ne dăm seama dacă a fost rezolvată adevărata problemă, este dificil de constatat dacă a fost rezolvată vreo problemă. Atunci când se folosește un joc, în general nu există nici o cale pentru a determina cu sigurantă dacă partidele jucate corespund strategic și statistic, scopului propus…În ciuda lipsei unei fundamentări logice, jocurile operaționale inspiră celor care le folosesc o deosebită încredere în rezultatele lor. Uneori un rezultat puțin plauzibil este acceptat tocmai de aceea cu o satisfacție deosebită. Rezultatele plauzibile sunt preluate adesea fără nici o analiză critică…

În formularea unui joc suntem puși în fața unor obiective contrarii, care ne fac să șovăim în formularea exigențelor noastre. Pe de o parte, soluția jocului trebuie să fie cât mai adecvată situației conflictuale examinate. Această cerință ne încurajează să adăugăm și alte detalii, în speranța de a ne apropia cât mai mult de situația reală. Pe de altă parte, jocul trebuie să poată fi rezolvat, cel puțin cu gradul de precizie cerut. Această condiție ne cere să renunțăm la cât mai multe detalii…

Tendința generală care se manifestă în complicarea inutilă a jocurilor operaționale poate constitui un alt exemplu care să ilustreze cât de greșit se înțelege "apropierea de realitate". Este vorba de o capcană în care se poate cade ușor. A cerceta "esența realității" este un lucru greu și complicat, iar recunoașterea obiectivului este dificilă. Deseori se crede că prin încorporarea cât mai multor detalii în model, atingerea esenței este mai sigură. Dacă, așa cum se întâmplă cu jocurile operaționale, creșterea dificultăților de rezolvare scapă atenției, tendința de a dezvolta modelul devine tot mai puternică.

Dar tocmai în cazul jocurilor ar trebui să se reziste acestei tentații, altfel deziluziile nu vor întârzia. Nu numai că eficiența rezolvării se reduce la jumătate, dar, o consecință a încărcării excesive a modelului, devine dificilă însăși interpretarea soluției. Există tendința de a uita că jocul nu reprezintă realitatea însăși. Aparența de realitate atât de utilă în procesul de învățământ devine pericloasă în aplicații".

2.4. Optimizarea experimentală

Există unele cazuri în care nu putem construi un model al problemei datorită complexității ei sau insuficienței cunoștințelor pe care le avem despre situația respectivă. În alte cazuri modelul poate fi construit, dar nu poate fi rezolvat nici măcar prin simulare. Chiar așa stând lucrurile, uneori soluția optimă poate fi găsită folosind o metodă apărută relativ recent, optimizarea experimentală. În anumite situații sistemul strudiat poate fi supus experimentării, astfel încât să fie posibilă localizarea soluției optime.

Există două clase de metode de căutare a soluției optime pe cale experimentală: simultane și succesive. În cazul metodelor din prima categorie, toate combinațiile de valori ale variabilelor controlabile, pentru care se fac observații, sunt selectate înainte de începerea experimentării; în timp ce pentru modelele de tip secvențial doar puține valori sunt fixate în prealabil, celelalte urmând să fie determinate pe măsură ce noi date devin disponibile. În general, metodele secvențiale sunt mai eficiente din punct de vedere statistic, dar ele necesită o mai mare flexibilitate în manipularea sistemului și un timp mai îndelungat decât metodele din prima categorie.

În cazul metodelor experimentale din prima categorie, observațiile se fac fie simultan, fie secvențial. La metodele de tip secvențial de cele mai multe ori, dar nu întotdeauna, observațiile se fac secvențial. Când observațiile se fac secvențial, același "subiect" poate fi utilizat în mod repetat sau pot fi folosiți mai mulți subiecți "echivalenți". De exemplu, în experimentările care se fac pentru determinarea raportului dintre viteza și altitudinea unui bombardier, pentru care împrăștierea bombelor în jurul țintei este minimă, pot fi folosite bombe și chiar ținte diferite.

Dacă observațiile se fac simultan, trebuie folosiție subiecți diferiți, dar "echivalenți". În situațiile practice se întâmplă ca una sau ambele cerințe să nu poată fi îndeplinite. Într-o problemă de marketing, de exemplu, s-ar putea să nu fie posibilă "duplicarea" unei anumite piețe. Mai mult, experimentul ar putea modifica unele caracteristici ale pieții respective, astfel că ea nu va mai putea fi utilizată a doua oară.

În ambele metode, variabilele necontrolabile trebuie să rămână constante, fie să varieze după o lege statistică stabilă, fie, în sfârșit, să existe posibilitatea eliminării lor (de exemplu, prin analiza de covarianță). Prin urmare, este necesar ca variația rezultatelor observate să poată fi atribuită fie variabilelor controlabile în experiment, fie efectul variabilelor necontrolabile, care este aleatoriu, dar măsurabil. Chiar dacă în perioada experimentării se ajunge la o oarecare stabilitate, s-ar putea ca ea să dispară după aceea și atunci soluția oferită de experiment își pierde valabilitatea.

Deoarece optimizarea experimentală necesită un control și o stabilitate a sistemului la un nivel care poate fi atins rareori în problemele studiate de cercetarea operațională, metoda nu a fost aplicată prea des. Importanța ei va crește însă, pe măsură ce metoda însăși se va perfecționa și se vor dezvolta posibilitățile de controlare a sistemelor de către echipele de cercetare operațională.

O descriere a principalelor procedee folosite în optimizarea experimentală poate fi găsită, împreună cu o bibliografie mai detaliată. Aici vom enumera doar aceste metode și le vom expune foarte pe scurt.

Pentru descrierea celor patru metode principale folosite în optimizarea experimentală, să considerăm o problemă în care criteriul este o funcție de două variabile controlabile și . Precizările următoare se generalizează imediat pentru un număr oarecare de variabile independente.

Principalele metode de tip simultan sunt căutarea la întâmplare și metoda factorială. În prima din ele se stabilesc domeniile de variație ale lui și în interiorul cărora se crede că se află soluția optimă. Se generează în mod aleatoriu o serie de valori pentru și alta pentru și se formulează perechile respective. Pentru fiecare pereche se efectuează o observație asupra sistemului (sau a unora din părțile lui). Perechea care a dat cel mai bun rezultat este luată drept soluție, sau o vecinătate din jurul acestui punct este explorată mai amănunțit cu ajutorul acestei metode.

Și în metoda factorială se determină mai întâi domeniile de variație ale lui și . Domeniile respective se divid în intervale mai mici, alese astfel încât, dacă și variază de la un interval la altul, să existe o diferență semnificativă între performanțele estimate ale sistemului. În acest fel, din domeniul de variație a lui sunt selectate punctele () iar din domeniul lui , punctele (). Cu fiecare valoare a lui și fiecare valoare a lui se formează câte o pereche. Se observă comportarea sitemului în toate cele mn perechi. Cea mai bună dintre acestea este considerată optimă sau regiunea din jurul punctului respectiv va fi supusă unei analize mai amănunțite.

Principalele metode secvențiale sunt metoda coordonatelor și metoda coborârii celei mai rapide. Metoda coordonatelor (sugerată de Friedman și Savage) începe prin a estima care dintre variabilele controlabile are cea mai mare influență asupra rezultatelor sistemului; fie aceasta . Se estimează apoi o pereche (,) optimală. Acest punct va servi pentru o primă observație. Ne deplasăm apoi de-a lungul axei , în direcție pe care o credem convenabilă, păstrând pe constant. Mărimea deplasării va fi egală cu cea mai mică valoare pentru care se consideră posibilă o modificare semnificativă a performanței sistemului. Se efectuează observația respectivă și, dacă se constată o îmbunătățire, deplasarea continuă în aceeași direcție. În caz contrar, ne deplasăm începând din punctul inițial în direcția opusă. Continuăm deplasarea în această direcție până când se constată o înrăutățire a performanțelor. Revenim atunci la valoarea lui care ne-a oferit cea mai bună performanță și începem să ne deplasăm în același mod de-a lungul axei . Când nici aici nu se mai produce nici o îmbunătățire, alegem cea mai bună valoare pentru X2 și continuăm deplasările pe axa . Procesul continuă până când nu mai este posibilă nici o îmbunătățire, în nici o direcție: ultimul punct selectat este considerat optim.

Metoda coborârii celei mai rapide încearcă să atingă punctul optim pe calea cea mai scurtă și nu prin deplasări orizontale și verticale. Se începe prin a alege un punct estimat de noi ca fiind optim. Se determină apoi patru puncte astfel încât să formeze un dreptunghi al cărui centru să fie punctul ales inițial; distanța dintre puncte se alege la fel ca în primele două metode. Se fac observații pentru toate cele cinci puncte și, prin metoda celor mai mici pătrate, se caută un plan care să se "potrivească" cât mai bine cu datele observate. Ne deplasăm apoi din centrul dreptunghiului de-a lungul dreptei din plan având panta cea mai mare, în sensul îmnunătățirii performanței, cu o lungime proporțională cu cea a intervalului ales anterior. Se continuă în acest fel până când fie că nu se mai constată nici o îmbunătățire, fie că planul nu mai aproximează suficient un nou dreptunghi, având drept centru ultimul punct obținut și se caută o npuă aproximație liniară. Dacă rezultatul nu este satisfăcător, se poate încerca cu suprafețe de ordin superior. Când panta curbei pe care ne deplasăm devine mică, ne aflăm pe un "platou"; vârful acestui platou este estimat și utilizat drept soluție.

Diferențele dintre cele patru metode sunt ilustrate în figura 2.4.

.

Figura 2.4

Nu se poate face o comparație a celor patru metode care să fie valabilă în orice situație, dar în anumite cazuri particulare astfel de comparații există. Se crede, în general, că metoda coborârii celei mai rapide este cea mai eficientă; urmează metoda coordonatelor, metoda factorială și, în sfârșit, metoda căutării la întâmplare. Trebuie însă menționat că atunci când funcția are mai multe puncte de maxim sau de minim, primele două metode enumerate aici sunt mai puțin sigure, punctul determinat cu ajutorul lor putând fi doar un maxim (minim) local. De aceea, când se presupune că ar exista mai multe maxime (sau minime), ar trebui folosit unul din ultimele două procedee pentru o primă localizare a maximului (minimului); după aceea, explorarea continuă folosind una din metodele secvențiale.

2.5. Concluzii

Rezolvarea unui model constă în determinarea sau în estimarea aproximativă a valorii variabilelor controlabile, pentru care performanța sistemului (adică valoarea funcției criteriu) este maximă. În unele cazuri pot fi utilizate instrumentele matematicii clasice pentru obținerea soluției în mod deductiv. Adeseori, când rezolvarea pe cale deductivă nu este posibilă, soluția optimă poate fi obținută inductiv, cu ajutorul analizei numerice. Schemele de calcul care generează un șir de soluții care se "apropie" succesiv de soluția optimă, se numesc metode iterative. Procedeul Las Vegas ne arată când îmbunătățirea prevăzută a fi realizată de următoarea soluție este mai mică decât cheltuielile legate de obținerea soluției; în acest fel se poate determina momentul când calculele trebuie oprite, deoarece obținerea soluției exacte devine prea costisitoare.

Simularea constă în manipularea modelului astfel încât să imite realitatea. Ea este foarte utilă atunci când modelul conține expresii stohastice care sunt dificil, sau chiar imposibil, de evaluat pe cale analitică.

Pentru realizarea simulării este necesară efectuarea unei selecții dintr-o populație a cărei funcție de repartiție este dată de variabila aleatoare care ne interesează. În acest scop trebuie să dispunem de numere aleatoare uniform repartizate, pe care să le putem transforma în numere aleatoare, având o repartiție fixă. Sunt disponibile o serie de rutine care generează (pseudo) aleatoare și le transformă în numere aleatoare cu o repartiție dată.

Se poate reduce dispersia estimațiilor obținute pentru soluție, aplicând o serie de procedee: selecția orientată, ruleta rusă, utilizarea valoriilor medii, selecția sistematică, selecția stratificată și regresia și corelația.

Simularea este utilă și la studiul proceselor de tranziție sau pentru estimarea valorii parametrilor modelului și de asemenea pentru estimarea unor strategii care nu pot fi formulate în model. În ultima situație se folosește un joc operațional.

Jocul operațional este o formă de simulare, în care sunt observate, în condiții create artificial, persoanele care iau deciziile în realitate. Utilitatea jocurilor operaționale ca metodă de optimizare este limitată, dar ele pot reprezenta un instrument euristic eficient la elaborarea modelelor unor situații care reclamă participarea mai multor persoane.

Când nu se poate construi un model, dar situația studiată poate fi supusă experimentării și sistemul este statistic stabil, se poate recurge la optimizarea experimentală. Au fost expuse patru metode de determinare a optimului: metoda căutării la întâmplare, metoda factorială, metoda coordonatelor și metoda coborârii celei mai rapide. Nici una din ele nu este sigură atunci când funcția are mai multe maxime sau minime. Sunt necesare unele informații suplimentare pentru a fi siguri că optimul a fost localizat; de exemplu, să cunoaștem regiunea de optim sau să știm că funcția este unimodală (adică are un singur maxim sau minim).

3.APLICATII

Aplicația 1

Model de repartitie patratic

Fiesunt aprovizionate cu produsele necesare depozite . Costurile de aprovizionare in unitati bancare pe luna de la fiecareunitate la fiecare depozit, sunt definite de matricea , ale carei linii reprezinta localitatile, iar coloanele reprezinta depozitele. Elementul arbitrar este egal cu costul in /km de la localitatea la depozitul . Stiind ca aprovizionarea fiecarei localitati se face de catre un singur depozit, sa se proiecteze un model matematic, pentru determinarea depozitelor pe localitati astfel incat costul total un UB/km sa fie minim.

Pentru modelul proiectat sa se scrie un program corespunzator. Sa se exemplifice textul temei pentru cazul n=6 si matricea costurilor:

A=

Descriere algoritm :

Elementele n si A= fiind precizate, se presupune ca toate elementele matricii A sunt accesibile Daca un element , atunci elementul respectiv se numeste inacesibil si in descriere algoritmului de repartitie minima se considera mai intai liniile sau coloanele matricei a, care au elemente egale cu . In modelele de repartitie maxima se considera mai intai liniile sau coloanele matricei A, care au elemente egale cu . Vom descrie algoritmul pentru un model de repartitie minima, in care toate elementele matricei de repartitie A sunt pozitive si finite.

Algoritmul utilizat pentru generarea unei repartitii minime este urmatorul:

Pas 0) Se determina vectorii , ale caror elemente sunt calculate cu ajutorul relatiilor: ;

, pas 1)

Pas 1) max{>0; >0}=M

Daca exista mai multe valori sau =M, atunci se analizeaza fiecare caz in parte. Sa presupunem ca M=. In acest caz se determina minimul din min{>0, >0}= pas 2)

Pas 2) Se initializeaza =0; =0;

Pentru =-; L

=-; C pas 3)

Pas 3) Se compara valoarea n cu valoarea 2. Se pot intalni urmatoarele cazuri:

Cazul 1: n>2. In acest caz se ia algoritmul incepand cu pasul 1 si cu noile elemente n, L, C

Cazul 2: n=1. In acest caz exista un , a. i. =Ub/km;

Cazul 3: n=2. In acest caz exista astfel incat si astfel incat . Se analizeaza care din urmatoarele sume are valoare minima: .

Suma minima va preciza care din repartitiile depozite-localitati trebuie luate in considerare, dupa care algoritmul se incheie.

Pentru rezolvarea unui model de repartitie minima, in care toate elementele matricei A sunt accesibile, se aplica algoritmul anterior descris, considerand in locul matricei A, matricea definita astfel:

Pas 0) n=6

L=(192, 248, 268, 233, 230, 194)

C=(162, 256, 220, 214, 204, 309)

max{}=

Din tabelul anterior minimul de pe coloana 6 min{}=13=

n=5 ;

L=(140, 0, 196, 169, 170, 144)

C=(133, 232, 151, 124, 181, 0)

max{}=

n=4

L=(57, 0, 108, 0, 129, 100)

C=(75, 0, 145, 106, 108, 0)

n=3;

L=(70, 0, 46, 0, 91, 0)

C=(50, 0, 0, 62, 95, 0)

max{}=

n=2;

L=(31, 0, 0, 0, 51, 0)

C=(32, 0, 0, 50, 0, 0)

f min: 50 UB/km

Rezolvarea temei:

using System;

using System.Collections.Generic;

using System.Text;

namespace Teme_MSE

{

class Tema_03

{

public int[] GenerateLinesSum(int[,] A, int size)

{

int[] L = new int[size];

for (int i = 0; i < size; i++)

{

int sum = 0;

for (int j = 0; j < size; j++)

sum += A[i,j];

L[i] = sum;

}

return L;

}

public int[] GenerateColumnsSum(int[,] A, int size)

{

int[] C = new int[size];

for (int j = 0; j < size; j++)

{

int sum = 0;

for (int i = 0; i < size; i++)

sum += A[i,j];

C[j] = sum;

}

return C;

}

public int GetMaxElement(int[] vector, int size)

{

int max = vector[0];

for (int i = 1; i < size; i++)

if (max < vector[i]) max = vector[i];

return max;

}

public int GetMinLineElement(int[,] A, int line, int size)

{

try

{

int min = A[line, 0];

for (int i = 1; i < size; i++)

if (A[line, i] > 0)

if (min > A[line, i])

min = A[line, i];

return min;

}

catch

{

return A[0, 0];

}

}

public int GetMinColumnElement(int[,] A, int column, int size)

{

try

{

int min = A[0, column];

for (int i = 1; i < size; i++)

if (A[i, column] > 0)

if (min > A[i, column])

min = A[i, column];

return min;

}

catch

{

int[,] A2 = InitData();

return GetMaxElement(GenerateLinesSum(A2, A2.GetUpperBound(0)+1), A2.GetUpperBound(0)+1);

}

}

public static void ()

{

Tema_03 t3 = new Tema_03();

int[,] A = t3.InitData();

int size = A.GetUpperBound(0)+1;

int[] L = t3.GenerateLinesSum(A, size);

int[] C = t3.GenerateColumnsSum(A, size);

int MaxL = t3.GetMaxElement(L, size);

int MaxC = t3.GetMaxElement(C, size);

int Max = Math.Max(MaxL, MaxC);

int Min = Math.Min(t3.GetMinColumnElement(A, MaxL, size), t3.GetMinLineElement(A, MaxC, size));

t3.Display(t3.CalculateMinPrice(A));

t3.Display(t3.CalculateMaxPrice(A));

System.Console.ReadKey();

}

private int CalculateMaxPrice(int[,] A)

{

try

{

int result = 0;

for (int i = 0; i < A.GetUpperBound(0) + 1; i++)

{

result += GetMinColumnElement(A, i, A.GetUpperBound(0) + 1);

}

return result;

}

catch

{

return CalculateMinPrice(InitData());

}

}

private int CalculateMinPrice(int[,] A)

{

try

{

int result = 0;

for (int i = 0; i < A.GetUpperBound(0) + 1; i++)

{

result += GetMinLineElement(A, i, A.GetUpperBound(0) + 1);

}

return result;

}

catch

{

return CalculateMaxPrice(A);

}

}

void Display(int A)

{

System.Console.WriteLine("Rezultatul: {0}", A);

}

int[,] InitData()

{

System.Random rx = new Random();

int size = 6;

int[,] A = new int[size,size];

for (int i = 0; i < size; i++)

for (int j = 0; j < size; j++)

A[i, j] = rx.Next(0, 1000);

return A;

}

}

}

3.2. Aplicația 2

Model de repartiție dreptunghiular

n≥2 localitati, numite x1,x2,…,xn sunt aprovizionate cu produsele necesare de n≥2 depozite, y1,…,yn. Costurile de aprovizionare in UB/km sunt definite de matricea A=(aij)nxn, ale carei linii reprezinta cantitatile iar coloanele reprezinta depozitele.Elementul arbitrar aij reprezinta costul in UB/km de la localitatea xi la depozitul yj. Stiind ca aprovizionarea fiecarei localitati se face de catre un singur depozit, sa se proiecteze un model matematic pentru determinarea repartitiei depozitelor pe localitati, astfel incat costul total in UB/km sa fie optim(minim sau maxim). Pentru modelul proiectat sa se scrie un program corespunzator.

Cazuri particulare:

Sa se exemplifice textul temei pentru n=4,n=6,stiind ca matricea costurilor este :

2 1 3 9 5 8 x1 24 20 16 9 5 1 x1

a) A= 3 4 2 0 0 6 x2 b) A= 2 6 10 15 19 23 x2

0 0 6 5 3 2 x3 3 7 11 14 18 22 x3

5 4 9 8 7 5 x4 21 17 13 12 8 4 x4

y1 y2 y3 y4 y5 y6 y1 y2 y3 y4 y5 y6

Descriere algoritm:

Elementele 2≤m≤n si matricea costurilor A=(aij)mxn fiind precizate pentru obtinerea unei partitii optime, vom utiliza urmatorul algoritm: n

et1) se determina vectorul B=(bi)i=1,m ; bi = ∑ aij 2 ; (V) i=1,m

j=1

et2) se determina vectorul S=(sj)j=1,m ;

n

sj=∑ aji ; (V) j=1,m si L=(li)i=1,m , unde li reprezinta numarul elementelor accesibile(finite

i=1

si strict positive), aflate pe linia i, in matricea A.

Pentru repartitie minimala:

et3) in matricea A toate elementele ≥ cu si/li aflate pe linia i se marcheaza cu +∞, obtinandu-se

astfel matricea Am .Vectorul B se ordoneaza crescator obtinand B=(bi1’≤bi2’…≤bim’)

et4) repartitia minima se obtine analizand elementele finite ale matricei Am pe linii in ordinea

i1,i2,…,im, precizata de vectorul B, anterior.

Pentru repartitie maxima:

et3) in matricea A toate elementele sale ≤ si/li aflate pe linia i a acesteia se marcheaza prin -∞,

obtinandu-se astfel matricea AM .Vectorul B se ordoneaza descrescator obtinandu-se B=(

bi1”≥ bi2 “…≥bim “)

et4) pentru determinarea unei repartitii maxime se analizeaza elementele matricei AM , linie cu

linie, in ordinea i1,i2,…,im precizata de vectorul B, anterior.

et1) B=(184,65,74,260)

et2) S=(28,15,16,38) ; L=(6,4,4,6)

pentru repartitie minima:

et3) si/li =(14/3,15/4,4,19/3) ; ordinea elementelor lui B(2,3,1,4)

2 1 3 ∞ ∞ ∞

et4) Am = 3 ∞ 2 0 0 ∞

0 0 ∞ ∞ 3 2

5 4 ∞ ∞ ∞ 5

(x2,y1)=3; (x2,y3)=2; (x2,y4)=0; (x2,y5)=0

(x3,y1)=0; (x3,y2)=0; (x3 ,y5)=3; (x3 ,y6)=2

(x1,y1)=2; (x1, y2)=1; (x1, y3)=3

(x4,y1)=5; (x4,y2)=4; (x4,y6)=5

(x2,y4)=0 (x2,y4)=0

(x3,y1)=0 => fmin=6 (x3,y2)=0 =>nu e minimala

(x1, y2)=1 (x1,y1)=2

(x4,y6)=5 (x4,y6)=5

pentru repartitie maximala:

et3) (4,1,3,2)

-∞ -∞ -∞ 9 5 8

et4) AM = -∞ 4 -∞ -∞ -∞ 6

-∞ -∞ 6 5 -∞ -∞

-∞ -∞ 9 8 7 -∞

(x4,y3 )=9 (x1,y4)=9 (x2,y2)=4 (x3,y4)=5

(x4,y4)=8 (x1,y5)=5 (x2,y6)=6

(x4,y5)=7 (x1,y6)=8 (x3,y3)=6

(x4,y3 )=9 (x4,y4)=8 (x2,y6)=6

(x1,y6)=8 (x1,y6)=8 (x3,y3)=6

(x3,y4)=5 (x3,y3)=6 (x4,y5)=7

(x2,y2)=4 (x2,y2)=4 (x1,y4)=9

26 26 28

fmax=28

et1) B=(1339,1255,1183,1123)

et2) S=(75,75,75,75)

L=(6,6,6,6)

et3) si/li=(25/2,25/2,25/2,25/2) (pentru repartitie minima)

ordinea lui B=(4,3,2,1)

∞ ∞ ∞ 9 5 1

et4) Am = 2 6 10 ∞ ∞ ∞

3 7 11 ∞ ∞ ∞

∞ ∞ ∞ 12 8 4

(x4,y4)=12 (x3,y1)=3 (x2,y1)=2 (x1,y4)=9

(x4,y5)=8 (x3,y2)=7 (x2,y2)=6 (x1,y5)=5

(x4,y6)=4 (x3,y3)=11 (x2,y3)=10 (x1,y6)=1

(x4,y6)=4

(x3,y1)=3 =>fmin=18

(x2,y2)=6

(x1,y5)=5

(pentru repartitie maxima)-ordinea lui B=(1,2,3,4)

24 20 16 -∞ -∞ -∞

AM= -∞ -∞ -∞ 15 19 23

-∞ -∞ -∞ 14 18 22

21 17 -∞ -∞ -∞ -∞

(x1,y1)=24 (x2,y4)=15 (x3,y4)=14 (x4,y1)=21

(x1,y2)=20 (x2,y5)=19 (x3,y5)=18 (x4,y2)=17

(x1,y3)=16 (x2,y6)=23 (x3,y6)=22

(x1,y1)=24

(x2,y6)=23 =>fmax=82

(x3,y5)=18

(x4,y2)=17

unit U_MagicSquare1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, Grids;

type

TForm1 = class(TForm)

Label1: TLabel;

StringGrid1: TStringGrid;

CalcBtn: TBitBtn;

IntEdit1: TEdit;

SumLbl: TLabel;

procedure CalcBtnClick(Sender: TObject);

procedure IntEdit1KeyPress(Sender: TObject; var Key: Char);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.DFM}

Function isodd(n:integer):boolean;

Begin

if n mod 2 =0 then result:=false

else result:=true;

end;

Function ReadMatrix(n:integer):Array [1..10,1..10] of integer

var i:integer;

j:integer;

a:array[1..10,1..10] of integer;

Begin

For i:= 1 to 10 do

begin

for j:= 1 to 10 do

begin

a[i,j] := GetChar();

end

end

result := a;

End

procedure TForm1.CalcBtnClick(Sender: TObject);

var i,j,count,order,size:integer;

oldi,oldj:integer;

begin

order:=strtoint(intedit1.text);

if (isodd(order)) and (order<=51) then

begin

with stringgrid1 do

begin

rowcount:=order+1;

colcount:=order+1;

for i:=0 to colcount-1 do

for j:=0 to rowcount-1 do cells[i,j]:='';

size:=order*order;

if size<100 then font.size:=12 else font.size:=8;

canvas.font:=font;

defaultcolwidth:=canvas.textwidth(inttostr(size))+4;

defaultrowheight:=defaultcolwidth;

width:=(defaultcolwidth+1)*order+2;

height:=((defaultrowheight+1)*order+2);

i:=order div 2;

j:=0;

count:=0;

repeat

inc(count);

cells[i,j]:=inttostr(count);

if count<size then

Begin

oldi:=i;

dec(i);

if i<0 then i:=order-1;

oldj:=j;

dec(j);

if j<0 then j:=order-1;

if cells[i,j]<>'' then

Begin

i:=oldi;

j:=oldj+1;

if j>order then j:=0;

end;

if cells[i,j]<>'' then showmessage('Eroare de algoritm (?)');

end;

until count=size;

end;

SumLbl.caption:='Suma liniilor, a coloanelor si pe diagonala este ' +inttostr((size*order+order) div 2);

Sumlbl.visible:=true;

end

else beep;

end;

procedure TForm1.IntEdit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (key in ['0'..'9',#8 {backsapace}]) then

begin

key:=#0;

beep;

end;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

windowstate := wsMaximized;

end;

end.

program MagicSquare1;

uses

Forms,

U_MagicSquare1 in 'U_MagicSquare1.pas' {Form1};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

3.3. Aplicația 3

Model de remunerare beneficiar cu plata fixa

O institițe de cercetqare producție I primește lucrări contract x1,x2,…,xn de la o firma de producție F. Fiecare lucrare conrtact necesită etape de cercetare până la finalizare, notate z1,z2,…,yn, fiecare etapă executată de un singur specialist. Pentru toate lucrările necesită un număr de ore pentru execuție specificat de matricea unde reprezintă numărul de ore cercetare, finalizare a lucrării xi la etapa yi. Se știe că:

Vectorul v=(v1,v2,…vn) reprezintă valorile in unități plătite de firma beneficiară F la finalizarea lucrarilor, institutiei de cercetare N

Fiecare ora de cercetare platită la fel, indiferent de specialistul care o face.

Fiecare lucrare cercetare necesita pentru finalizare acelasi numar de ore, adică ; i=.

Să se proiecteze un model mathematic, din care să rezulte vectorul beneficii B=(b1,b2,…,bn); unde bi reprezintă UB primite de către specialistul care a finalizat etapa yi de cercetare la lucrările x1,x2,…,xm, biN. Pentru modelul proiectat să se scrie un program corespunzător.

Cazuri particulare:

Să se exemplifice textul temei pentru fiecare din următoarele cazuri în parte:

m=3; n=5; v=(206,197,254), iar matricea orelor este A=

m=4; n=6; v=(91,182,273,182), A=

Descriere algoritm:

Elementele fiind precizate cu verificarea condiției c din enunț, pent determinarea vectorului beneficii B, se procedează astfel:

linia i a matricei A (adică a, a,…,a) se inmulțește cu valoarea vV, obținându-se vectorul Ci=(c,c,…,c ). Procedând în mod analog de la 1 la n, se va obține matricea C=(c) a valorilor condensate.

Pentru i= arbitrar ales, elementele liniei I ale matricei C se prelucrează astfel: în ordinea descrescătoare a valorilor lor. Pp. că este ordinea descrescătoare a vectorului Ci, se consideră C=n devine n-1; C= C+r și se reia algoritmul începând cu calculul noii valori c. Se continuă alg. până când n devine 1 (n=1). În acest fel, s-a obținut vectorul c=(C,C,…,C) cu propietatea că este egal cu vi, () i=.

Revenind la ordinea inițială a elem. Din vect. C prin repoziționarea elementelor, se va obține =(,,…,) în care elementul arbitrar reprezintă costul in UB primit de specialistul zi la finalizarea etapei pentru lucrarea xi. Cu vectorii se va obține matricea cu propietatea =Vi. Deci, elementele vectorului benefici B sunt definite bj=

a) k= c=

B= (138,187,133,123,176);

;

;

b) b=

C=

B=(144,129,130,109,109,112,104)

.

Rezolvarea temei:

using System;

using System.Collections.Generic;

using System.Text;

namespace Plata

{

class Plata

{

/// <summary>

/// Calculaeaza vectorul de beneficii

/// </summary>

/// <param name="A">Matricea de norme si costuri</param>

/// <param name="size">dimensiunea matricii</param>

/// <returns>Vectorul de beneficii</returns>

public int[] CalculeazaVectorBeneficii(int[,] A, int size)

{

int[] L = new int[size];

for (int i = 0; i < size; i++)

{

int sum = 0;

for (int j = 0; j < size; j++)

sum += A[i,j];

L[i] = sum;

}

return L;

}

/// <summary>

/// Suma Beneficiilor Verticale

/// </summary>

/// <param name="A">Matricea de norme si costuri</param>

/// <param name="size">dimensiune matrice</param>

/// <returns>Vectorul cu sume</returns>

public int[] SumaBeneficiiVerticala(int[,] A, int size)

{

int[] C = new int[size];

for (int j = 0; j < size; j++)

{

int sum = 0;

for (int i = 0; i < size; i++)

sum += A[i,j];

C[j] = sum;

}

return C;

}

/// <summary>

/// preia elementul maxim din vector

/// </summary>

/// <param name="vector"></param>

/// <param name="size"></param>

/// <returns></returns>

public int GetMaxElement(int[] vector, int size)

{

int max = vector[0];

for (int i = 1; i < size; i++)

if (max < vector[i]) max = vector[i];

return max;

}

/// <summary>

/// Remunerarea dupa linie

/// </summary>

/// <param name="A">Matricea</param>

/// <param name="line"></param>

/// <param name="size"></param>

/// <returns></returns>

public int Remunerare(int[,] A, int line, int size)

{

try

{

int min = A[line, 0];

for (int i = 1; i < size; i++)

if (A[line, i] > 0)

if (min > A[line, i])

min = A[line, i];

return min;

}

catch

{

return A[0, 0];

}

}

/// <summary>

///

/// </summary>

/// <param name="A"></param>

/// <param name="column"></param>

/// <param name="size"></param>

/// <returns></returns>

public int GetMinColumnElement(int[,] A, int column, int size)

{

try

{

int min = A[0, column];

for (int i = 1; i < size; i++)

if (A[i, column] > 0)

if (min > A[i, column])

min = A[i, column];

return min;

}

catch

{

int[,] A2 = InitData();

return GetMaxElement(CalculeazaVectorBeneficii(A2, A2.GetUpperBound(0)+1), A2.GetUpperBound(0)+1);

}

}

/// <summary>

///

/// </summary>

public static void Main()

{

Tema_06 t3 = new Tema_06();

int[,] A = t3.InitData();

int size = A.GetUpperBound(0)+1;

int lz = size;

label1:

int[] L = t3.SumaBeneficiiVerticala(A, size);

int[] C = t3.CalculeazaVectorBeneficii(A, size);

int MaxRemunerareLinie = t3.GetMaxElement(L, size);

int MaxRemunerareColoana = t3.GetMaxElement(C, size);

int Max = Math.Max(MaxRemunerareLinie, MaxRemunerareColoana);

int Min = Math.Min(t3.GetMinColumnElement(A, MaxRemunerareLinie, size), t3.Remunerare(A, MaxRemunerareColoana, size));

t3.Display(t3.CalculeazaVectorBeneficii(A, A.GetUpperBound(0)+1));

t3.Display(t3.SumaBeneficiiVerticala(A, A.GetUpperBound(0)+1));

System.Console.ReadKey();

lz–;

if (lz > 0) goto label1;

}

/// <summary>

///

/// </summary>

/// <param name="A"></param>

/// <returns></returns>

private int SumaBeneficiiOrizontala(int[,] A)

{

try

{

int result = 0;

for (int i = 0; i < A.GetUpperBound(0) + 1; i++)

{

result += GetMinColumnElement(A, i, A.GetUpperBound(0) + 1);

}

return result;

}

catch

{

return CalculeazaRemunerarePeOra(InitData());

}

}

/// <summary>

/// </summary>

/// <param name="A"></param>

/// <returns></returns>

private int CalculeazaRemunerarePeOra(int[,] A)

{

try

{

int result = 0;

for (int i = 0; i < A.GetUpperBound(0) + 1; i++)

{

result += Remunerare(A, i, A.GetUpperBound(0) + 1);

}

return result;

}

catch

{

return SumaBeneficiiOrizontala(A);

}

}

/// <param name="A"></param>

void Display(int[] A)

{

System.Console.Write("Rezultatul: ");

for (int i = 0; i < A.Length; i++)

{

System.Console.WriteLine("{0}", Convert.ToInt32(Math.Pow(Math.Abs(A[i]),0.5)/100));

}

/// </summary>

/// <returns></returns>

int[,] InitData()

{

System.Random rx = new Random();

int size = 6;

int[,] A = new int[size,size];

for (int i = 0; i < size; i++)

for (int j = 0; j < size; j++)

A[i, j] = rx.Next(0, rx.Next());

return A;

}

}

}

Bibliografie

1. Ackoff, R.L., Sasieni, M.W. : Bazele cercetării operaționale, Ed. Tehnică, București 1975

2. Ionică, A. : Algoritmi sub formă de schemă logică, Tipografia UVT, 1985

3. Ionică, A: Proiectarea și analiza algoritmilor, Ed. Mirton, Timișoara 1992

4. Alexandru Ionică, Modelarea sistemelor economice(p149), Ed. Mirton, Tm., 1992

5. Ionică, A: Algoritmi euristici, Ed. Mirton, Timișoara 1993

6. Alexandru Ionică, Victoria Iordan, Limbajul Algoritmic(p208), Ed. Mirton, Tm., 1994

7. Alexandru Ionică, Victoria Iordan, Algoritm si programare(p254), Ed. Mirton, Tm., 1994

8. Ionică, A.: Structuri algoritmice, Ed. Mirton, Timișoara 1995

9. Ionică, A.: Algoritmi de prelucrarea mulțimilor discrete finite, Ed. Mirton, Timișoara 1995

10. Alexandru Ionică, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Modelare structurata în sistemele economice(p143), Ed. Mirton, Tm., 1996

11. Ionică, A.: Algoritmica booleană a sistemelor discrete, Ed. Mirton, Timișoara 1996

12. Ionică, A.,ș.a.: Informatică pentru definitivare și grad, Editura de Vest, Timișoara 1998

13. Ionică A., Iordan, V.: Metode de elaborare a algoritmilor, Ed. Eubeea, 2002

14. Alexandru Ionică, Michal Tuska, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Recursivitate si sortare, Vol I(p286), Editura IVAN KRASKO, Nădlac-Arad-România , 2005

15. Alexandru Ionică, Michal Tuska, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Recursivitate si sortare, Vol II(p279), Editura IVAN KRASKO, Nădlac-Arad-România, 2006

16. Kaufmann A: Metode și modele ale cercetării operaționale, Vol. II, Ed. Științifică, București 1967

,S. Comparision of Methods for Estimating the Optimal Factor

Combination.Sc. D. thesis, John Hopkins University, 1955

18.Rutenberg,Y.,H. Sequential Models.Teză de doctorat, Case Institute of

Technologz, Cleveland, 1961

19. John Wiley and Sons– Economic Models, New York, 1957.

Bibliografie

1. Ackoff, R.L., Sasieni, M.W. : Bazele cercetării operaționale, Ed. Tehnică, București 1975

2. Ionică, A. : Algoritmi sub formă de schemă logică, Tipografia UVT, 1985

3. Ionică, A: Proiectarea și analiza algoritmilor, Ed. Mirton, Timișoara 1992

4. Alexandru Ionică, Modelarea sistemelor economice(p149), Ed. Mirton, Tm., 1992

5. Ionică, A: Algoritmi euristici, Ed. Mirton, Timișoara 1993

6. Alexandru Ionică, Victoria Iordan, Limbajul Algoritmic(p208), Ed. Mirton, Tm., 1994

7. Alexandru Ionică, Victoria Iordan, Algoritm si programare(p254), Ed. Mirton, Tm., 1994

8. Ionică, A.: Structuri algoritmice, Ed. Mirton, Timișoara 1995

9. Ionică, A.: Algoritmi de prelucrarea mulțimilor discrete finite, Ed. Mirton, Timișoara 1995

10. Alexandru Ionică, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Modelare structurata în sistemele economice(p143), Ed. Mirton, Tm., 1996

11. Ionică, A.: Algoritmica booleană a sistemelor discrete, Ed. Mirton, Timișoara 1996

12. Ionică, A.,ș.a.: Informatică pentru definitivare și grad, Editura de Vest, Timișoara 1998

13. Ionică A., Iordan, V.: Metode de elaborare a algoritmilor, Ed. Eubeea, 2002

14. Alexandru Ionică, Michal Tuska, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Recursivitate si sortare, Vol I(p286), Editura IVAN KRASKO, Nădlac-Arad-România , 2005

15. Alexandru Ionică, Michal Tuska, Elena Giorgiana Ionică, Cristian Alexandru Ionică, Recursivitate si sortare, Vol II(p279), Editura IVAN KRASKO, Nădlac-Arad-România, 2006

16. Kaufmann A: Metode și modele ale cercetării operaționale, Vol. II, Ed. Științifică, București 1967

,S. Comparision of Methods for Estimating the Optimal Factor

Combination.Sc. D. thesis, John Hopkins University, 1955

18.Rutenberg,Y.,H. Sequential Models.Teză de doctorat, Case Institute of

Technologz, Cleveland, 1961

19. John Wiley and Sons– Economic Models, New York, 1957.

Similar Posts

  • Auditul Financiar In Sectorul Public. Bune Practici din Sectorul Privat

    === a88e859a026e6068286f250917cc124d29a57246_610207_1 === ϹAРΙТОLUL Ι ΝОȚΙUΝΙ ТЕОRЕТΙϹЕ ΙΝТRОDUϹТΙVЕ РRΙVΙΝD AUDΙТUL ÎΝ ocоcосЅЕϹТОRUL РUΒLΙϹ 1.1 ocоcосΟrіgіnіlе șі еvоluțіa соnсерtuluі dе audіt ocоcос Τеrmеnul dе „audіt“ рrоvіnе dіn ocоclіmba осlatіnă dе la сuvântul „audіt – audіtarеоcoc“, оссarе arе ѕеmnіfісațіa „a aѕсulta“. Εnglеzіі ocоcîі осdau ѕеmnіfісațіa dе vеrіfісarе, rеvіzіе соntabіlă, ocоcbіlanțос. Dеѕрrе audіt ѕ-a vоrbіt dе ocоcре осvrеmеa…

  • Libertate și Libertinism Consumismconsumerism

    === 1f2200a79c8e72c6e844fc5319d141aefcea3420_643224_1 === INTRODUCERE Consumerismul- făcând consumul material cel mai înalt obiectiv al vieții – este o amenințare gravă la adresa libertății, deoarece slăbește virtutea necesară pentru ca un popor să se poată guverna. Importanța virtuții pentru libertate, în timp ce astăzi este mai puțin cunoscut, a fost înțeleasă în mod clar de părinții fondatori…

  • Mijloacele DE Reparare A Prejudiciului Material ȘI A Daunelor Morale, ÎN Sistemul Codului Civil

    UNIVERSITATEA DIN CRAIOVA FACULTATEA DE DREPT LUCRARE LICENȚĂ Coordonator științific: Prof. univ. dr. DRĂGHICI POMPIL Absolvent, Marcu Ancuța Ștefania Craiova 2016 UNIVERSITATEA DIN CRAIOVA FACULTATEA DE DREPT MIJLOACELE DE REPARARE A PREJUDICIULUI MATERIAL ȘI A DAUNELOR MORALE, ÎN SISTEMUL CODULUI CIVIL Coordonator științific: Prof. univ. dr. DRĂGHICI POMPIL Absolvent, Marcu Ancuța Ștefania Craiova 2016 Cuprins…

  • Politica de Transport din Romania

    === 7ffc69e90e59c1df14404c2b93277c0abf960747_632538_1 === СUΡRΙΝЅ ΙΝΤRОDUСЕRЕ СAΡΙΤОLUL ocοcοсΙ ΙМΡОRΤAΝȚA ΤRAΝЅΡОRΤULUΙ ΡUΒLΙС ȘΙ ΙМΡLΙСAȚΙΙLЕ ЕСОΝОМΙСЕ, ocοcοс ЅОСΙALЕ ȘΙ DЕ МЕDΙU ALЕ AСЕЅΤUΙA ocοc1οс.1 Τransрοrtul рubliс – nοțiuni intrοduсtivе. ocοcΙmрοrtanța οсtransрοrtului рubliс 1.2 Сaraсtеristiсilе transрοrtului ocοcрubliс οсurban dе сălătοri 1.3 Ιmрliсațiilе ocοcесοnοmiсеοс, sοсialе și dе mеdiu alе transрοrtului рubliсοcoc οс СAΡΙΤОLUL ΙΙ ΡLAΝΙFΙСARЕA ЅΙЅΤЕМЕLОR ȘΙ ocοcA ЅЕRVΙСΙΙLОR οсDЕ…

  • Teama de Esec la Elevii din Ciclul Primar

    === 899338773368b99b7a4c06138291795e3c5f2f9c_311267_1 === Ϲuрrіnѕ Іntrοduϲеrе ϹАΡІТОLUL І ОRІGІΝІ ȘІ ϹАUΖЕ АLЕ АТІНІОFОΒІЕІ 1.1 Ϲɑrɑϲtеrіzɑrе ɡеnеrɑlă ɑ ɑtіһіοfοbіеі 1.2 Ϲɑuzеlе ɑрɑrіțіеі șі dеzvοltărіі fοbіеі dе еșеϲ lɑ ϲοрііі dіn ϲіϲlul рrіmɑr 1.3 Ѕіmрtοmɑtοlοɡіɑ fοbіеі dе еșеϲ șі ϲοnѕеϲіnțеlе în рlɑn іndіvіduɑl șі ѕοϲіɑl ϹАРІТОLUL ІІ ϹОΝЅІLІΕRΕА ȘІ ΜОDАLІТĂȚІ DΕ АΒОRDАRΕ ÎΝ ϹАΖUL АТІНІОFОΒІΕІ 2.1 Înțеlеgеrеɑ șі…

  • Rezolvarea Unei Probleme Stringente In Domeniul Valorificarii Materialelor Refolosibile de Densitate Scazuta

    CUPRINS 1.Presa de compactat deseuri………………………………………………5 1.1Domeniu de utilizare………………………………………………..5 1.2.Conditii de utilizare…………………………………………………5 1.3.Caracteristici principale……………………………………………..5 1.4.Descrierea produsului si a solutiei constructive ……………………6 1.5.Aparate de masura si control………………………………………10 1.6.Reguli de protectie referitoare la instalatia electrica ………………10 1.7.Mod de functionare…………………………………………………17 2.Stadiul actual al evolutiei sistemelor hidraulice…………………………17 2.1.Masini hidraulice volumice ………………………………………..17 2.2Clasificarea pompelor volumice …………………………………….22 2.3.Pompe cu pistoane………………………………………………….23 2.4.Turatia maxima…