București, 2017 [630383]
Universitatea Politehnica din Bucure ști
Facultatea de Automatică și Calculatoare
Departamentul de Automatică și Ingineria Sistemelor
București, 2017
Coordonator
Prof.Dr.Ing Ciprian Lupu
Student: [anonimizat]. Maria – Alexandra Tincu
LUCRARE DE DIS ERTAȚIE
Human In The Loop
2
Cuprins
Listă de figuri ………………………….. ………………………….. ………………………….. ………………………….. .. 3
1 Introducere ………………………….. ………………………….. ………………………….. …………………………. 4
1.1 Principiu de funcționare ………………………….. ………………………….. ………………………….. … 5
1.2 Aplicabilitate ………………………….. ………………………….. ………………………….. ……………….. 6
2.1.1 Industria auto ………………………….. ………………………….. ………………………….. ………… 6
2.1.2 Aviație ………………………….. ………………………….. ………………………….. ………………….. 8
2.1.3 Marină ………………………….. ………………………….. ………………………….. ………………… 10
2 Analiza factorilor umani ………………………….. ………………………….. ………………………….. …….. 10
3 Luare deciziilor ………………………….. ………………………….. ………………………….. …………………. 13
4 Soluția problemei ………………………….. ………………………….. ………………………….. ………………. 15
4.1 Învățarea supervizată sau clasificarea ………………………….. ………………………….. ………… 16
4.2 Învățarea nesupervizată sau clusterizarea ………………………….. ………………………….. …… 17
4.3 Drools ………………………….. ………………………….. ………………………….. ……………………….. 18
4.3.1 Algoritmul Rete ………………………….. ………………………….. ………………………….. …… 19
4.3.2 Cum scriem regulile? ………………………….. ………………………….. ………………………… 21
4.3.3 Alte tipuri de fișiere de reguli ………………………….. ………………………….. …………….. 22
5 Studiu de caz ………………………….. ………………………….. ………………………….. …………………….. 25
5.1. Soluția clasică ………………………….. ………………………….. ………………………….. …………….. 25
5.2 Soluția Drools ………………………….. ………………………….. ………………………….. …………….. 27
6 Concluzii ………………………….. ………………………….. ………………………….. ………………………….. 31
7 Bibliografie ………………………….. ………………………….. ………………………….. ………………………. 32
3
Listă de figuri
Figura 1 Principiu funcționare sisteme Human In The Loop ………………………….. ……………………. 5
Figura 2 Principiu funcționare autopilot avion ………………………….. ………………………….. …………… 9
Figura 3 Analiza factorilor umani ………………………….. ………………………….. ………………………….. . 11
Figura 4 Ierarhie decizii ………………………….. ………………………….. ………………………….. ……………. 13
Figura 5 Inteligen ță artificială ………………………….. ………………………….. ………………………….. ……. 15
Figura 6 Arbore decizional ………………………….. ………………………….. ………………………….. ……….. 17
Figura 7 Împărțirea nodurilor ………………………….. ………………………….. ………………………….. …….. 20
Figura 8 Decisio n table ………………………….. ………………………….. ………………………….. …………….. 23
Figura 9 Cuplarea complexă a două bucle de reglare ………………………….. ………………………….. … 26
Figura 10 Proces ………………………….. ………………………….. ………………………….. ……………………… 27
Figura 11 Clasele asociate procesului ………………………….. ………………………….. ……………………… 27
Figura 12 Reguli care testează nivel maxim rezervoare ………………………….. …………………………. 28
Figura 13 Reguli care testează menținerea constantă a valorii raportului ………………………….. …. 29
Figura 14 Acțiunea regulii care verifică valoarea raportului ………………………….. …………………… 29
4
1 Introducere
Atunci când a fost introdus prima oară conceptul de automatizare, proiectanț ii sisteme lor
de acest gen au î ncercat automatizare a tuturor etapelor unui proces ș i excluderea operatorului
uman din acestea, c onsiderat a fi un punct slab. Când această abordare nu a prezentat rezult atele
dorite, omului i -au fost încredinț ate taskurile pe care proiectantul nu le-a putut automatiza .
În funcție de domeniu, există procese sau etape ale proceselor, la care intervenția unui
operator uman este esențială și altele care se pot lipsi de aceasta. Cel mai important și în același
timp greu lucru este să identificăm corect momentele când este necesar ca omul să intervină
precum și pe acelea în care nu mai e ste nevoie de această intervenție.
De exemplu, oamenii depășesc mașinăriile î n:
– abilitatea de a improviza ;
-abilitatea de a lua decizii atunci când avem la dispoziție doar informații contextuale;
– abilitatea de a -și aminti î n momentele opo rtune din cant itatea de informație acumulată;
– abilitatea de a judeca probleme prin proceduri inductive ;
Dar, mașinăriile depășesc oamenii î n:
– abilitatea de a răspunde rapid și precis comenz ilor;
– abilitatea de a realiza taskuri repetitive ;
– abilitatea de a judeca probleme prin proceduri deductive ;
– o capacitate mai bună de a realiza taskuri simultan ;
Astfel, ținând cont de avantajele respectiv dezavantajele de mai sus, în analiza procese lor
se ține cont de urmă toarele caracteristici:
– mărime ș i complexitate ;
– gradul de predispunere la schimbă ri;
– impac tul procesului asupra mediului înconjură tor;
– problemele de siguranță a oamenilor, echipamentului sau a mediului înconjură tor;
– psihologia omului: modul cum ia decizii, cum reacționează la situaț ii sub presiune ;
– modul cum e realizat designul consolelor operator, acestea să fie cât mai ușor de folosit,
plăcute vizual;
5
– particularitățile sistemului (de exemplu timp de întâ rziere , timp de răspuns, timp mort);
În scopul optimiză rii performa nțelor obținute de la sistem este necesară înțelegerea și
maximizarea colaboră rii di ntre operatorul uman și controlerul sistemului. Controlerul trebuie să
prezinte operatorului uman cât mai multe detalii pentru o înțelegere cât mai bună a situației,
urmâ nd ca omul să decidă care e cea mai bună soluț ie de adoptat. De asemenea, un factor
important în acest moment este folosirea unui limbaj comun între cele două părți componente
pentru o cât mai bună și rapidă identificare a necesităților sistemului de către o peratorul uman.
Unul dintre cele mai delicate lucruri cu ca re operatorii umani se confruntă e să știe când e
momentul să intervină în locul sistemelor suport, iar atunci când intervin să știe ce acțiuni sunt
necesare pentru a ține situaț ia sub control. Situația devine cu atât mai grea cu cât aceștia se află și
sub presiunea timpului.
Pentru ca acest ă comunicare să aibă loc cu succes este necesar ca si stemele suport să nu
fie prea complexe și să poată fi folosite cu ușurință de că tre operatori. De aceea se recomandă ca
sistemele să fie construite î n jurul modului cum oamenii își organizează taskurile, procesează
informația ș i iau decizii. Astfel operatorului îi va fi ușor să fie conștient î n toate etapele
procesului de starea în care sistemul se află și să fie pregătit să intervină .
1.1 Principiu de funcționare
Figura 1 Principiu funcționare sisteme Human In The Loop
Pentru a funcționa, pilotul automat primește prescrieri de la pilot dar și informații de la
diverși senzori : inerțiali (giroscoape , de unde și altă denu mire a pilotului automat, de giropilot),
cei de presiune (pentru altitudinea barometrică, viteză față de aer), temperaturi (exterioare,
6
temperatură motor) etc. D e asemenea, primește semnale radio de la senzorii de la bord
(radioaltimetru , radiocompas , GPS), după caz.
După cum se observă și în imaginea de mai sus, sistemul își urmează comportamentul
impus până l a un anumit punct, la întâlnirea unui impediment. În acel moment, dacă sistemul
suport nu știe ce comportament să adopte cere ajutorul de la operatorul uman.
Informația e trimisă la receptor (utilizatorul uman) sub forma unei erori (de exemplu pop
up-urile care apar pe browserele web), notificări care să permită evaluarea unui comportament și
apoi decizia unui curs de acțiune (de exemplu în momentul instalării sau upgradării unor
programe), prin cititirea indicatorilor de stare a procesului, urmărirea unor anumite tutoriale sau
traininguri care să îl pregătească în eventualitatea întâlnirii unei astfel de situații.
Operatorul uman generează o decizie care determină un anumit comportament al
sistemului. Acesta e determinat și în funcție de cât de bine s -a transmis informația sau de timpul
necesar operatorului să o proceseze cât ș i de percepția acestuia asupra faptelor.
Astfel de sisteme sunt foarte populare în industria automobilelor, a avioanelor dar și în
marină. “Un pilot automat sau autopilot este un sis tem tehnic montat la bordul unui automobil,
aeronavă, navă, etc care asigură conducerea acesteia preluând unele din sarcinile pilotului, în
special menținerea stabilității pe traseul prestabilit.”1
1.2 Aplicabilitate
2.1.1 Industria auto
La un moment dat, tot ceea ce știm astăzi despre condusul unei maș ini va fi istorie .
Șoferia va dispărea treptat pentru că plă cerea de a conduce a stat mai mereu în umbra
comodităț ii. Dezvoltarea tehnologiilor de tip pilot automat la automobile a câștigat tot m ai multă
atenție în ultimii ani, în principal datorită investițiilor bine promovate în domeniu., iar punctu l de
plecare a fost tempomatul (cruise -control).
Tempomatul es te un instrument electronic regăsit pe majoritatea mașinilor produse î n
prezent, folosi t pentru a co ntrola viteza de deplasare a mașinii fără a acționa pedala de
acceleraț ie.
Printre primii producă tori care au implementat o astfel de tehnologie a fos t Mitsubishi,
japonezii uimind în 1995 cu aș a-numitul cruise -control adaptiv. În 2006, Merce des, producă torul
care, practic, a popularizat utilizarea tempomatelor inteligente, a plusat cu versiunea… “Plus” a
sistemului Distronic. Aceast sistem nu numai că micșorează viteza mașinii atunci când vehiculul
din față face același lucru, ci și opreș te mașina în locul șoferului, dacă acesta nu are nicio reacție.
Mai nou, grație funcț iei Pre Safe Brake, Distron ic Plus are capacitatea de a acț iona l a maximum
1 Wikipedia
7
frânele atunci când sesizează un accident iminent, diminuând considerabil pericolul vătămă rilor
corporale grave.
Mașinile din zilele noastre vin cu sisteme îmbunătăț ite de pilot automat denumite
generic cruise control adaptive (ACC) care pe lângă menț inerea vitezei dorite pot declanșa
frânarea automată sau mersul bară la bară pe autostrăzi. Pentru frânar ea automată se utilizează un
sistem de tip radar sau laser însă ambele sisteme prezintă dezavantaje în condiț ii meteo
nefavorabile.
O altă tehnolo gie extrem de utilă pentru ș oferi este Dynamic Set Speed Type. P rin
această tehnologie este consultată o bază de date în timp real ș i un GPS per formant pentru a
adapta viteza în funcție de condițiile de trafic. Totodată grație acestui sistem maș ina este c apabilă
să recunoască indicatoarele rutiere și să se adapteze acestora.
Pilotul a utomat poate fi dezactivat cu ușurință prin comutarea manetei pentru pilot
automat pe “oprit” sau prin acționarea ambreia jului respectiv a pedalei de frână .
Spre deosebire de celelalte industrii unde găsim implementate numai sisteme pentru
menținerea direcției, ăn industria automobilelor au apărut tehnologii mai diversificate care
permit:
Efectuarea de manevre de parcare laterală în mod autonom. BMW a prezentat un astfel
de sistem care poate schimba vitezele, poate accelera și frâna la viteze reduse în timpul
manev relor de parcare . Sistemul, însă nu funcționează fără prezența unei persoane pe
locul șoferului, care trebuie să țină apăsat permanent pe un buton în timpul manevrei de
parcare, fiind astfel răspunzător de eventuale pagube.
Audi intenționează prezentarea unei tehnologii de navigare pe pilot automat în condiții de
trafic foarte aglomerat. Astfel, automobilul se ocupă de direcție, accelerație și frână în
aceste conditii utilizând senzori radar, laser și pe bază de ultrasunete pentru a detecta
obiectele din jur.
Mai mult, Audi are și un concept de aplicație prin care să -ți controlezi mașina prin
parcare, fie spre locul unde s -o lași, fie din acel loc la tine. Conceptul se bazează pe
garajul în care se lasa masina, un garaj înțesat cu senzori lase r care monitorizează în
permanență. Toate acestea sunt posibile datorită integrării sistemului de operare Android
pe ceea ce este în fond o tabletă care ia locul sistemului de bord.
În mod uzual, sistemele ACC mențin o distanță constantă față de mașina din față, frânând
sau accelerând în funcție de viteza de deplasare a mașinii monitorizate și setările aplicate
de șofer. Atunci când o mașină intra în raza de acțiune a senzorilor de pe altă bandă, de
cele mai multe ori, sistemele clasice aplică frânele destu l brusc. Cu scopul de elimina
efectele nedorite ale unui astfel de scenariu, sistemul i -ACC dezvoltat de Honda
monitorizează în mod constant nu doar mașina din fata, ci și pe cele din lateral, aplicând
un algoritm complex de predicție, capabil să reacțione aze cu până la 5 secunde înainte a –
8
ți fi tăiată fața. Noua Honda CR -V, primul model Honda care va beneficia de sistemul i-
ACC, e disponi bilă pe piața din România începâ nd cu luna aprilie 2015.
Sistemele de tip “human in the loop” sunt aplicabile în special pentru șoferii de camioane. În
octombrie 2015, î n Germania au fost testate primele camioane echipate cu sistemul Highway
Pilot , parte din proiectul Future Truck 2025 dezvoltat de Daimler și Mercedes -Benz
Principalul avantaj al unui astfel de sistem este acoperirea unei distanțe considerabile fără
oprire și cu risc diminuat de accidente produse din cauza oboselii sau neatenției, totodată
respectând termene de livrare mai scurte pentru marfa transportată.
Totuși, în situațiile ceva mai complexe, cum ar fi apropierea ieșirii de pe autostradă, sistemul
Highway Pilot solicită intervenția umană. Similar, dacă senzorii de proximitate detectează un
obstacol neașteptat, cum ar fi o porțiune de drum în lucru sau, sunt emise alerte adio și vizuale
solicitând interve nția șoferului. Dacă alerta este ignorată, computerul va frâna automat, oprind
vehiculul în mod controlat.
O îmbunătățire esențială a acestui sistem față de Cruise Control, deja existent pe alte
autoturisme este posibilitatea de a putea co munica cu alte ca mioane aflate în
vecină tate circulând informații despre starea drumului și condițiile de trafic, evitând accidentele
în lanț și alte pericole ce pot apărea în mod neașteptat.
Visul omenirii de zeci de ani, conducerea autoturismului prin folosirea sistemul ui autopilot
nu este departe de a dev eni realitate. Tehnologia este încă la inceput de drum, prea scumpă și
prea puțin testată pentru a fi gata de exploatare comercială însă primii paș i au fost deja făcuț i:
Ford a prezentat un prototip complet autonom iar Volvo va introduce în circulație un sistem de
pilot automat autonom care permite celui de la volan să predea conducerea automobilului către
creiserul electronic al mașinii.
Atunci când mașina ajunge pe un segment de drum unde conducerea autonomă este
disponibilă, display -ul din bord îl informează pe cel de la volan despre acest aspect. Dacă
dorește, acesta poate activa sistemul inteligent. Din acel moment, mașina preia toate funcțiile
necesare condusului. Când segmentul de drum pe care sistemul este dispon ibil se aprope de final,
cel de la volan este alertat și trebuie să reia comenzile. Dacă cel de la volan nu reacționează,
mașina se va opri automat într -un loc sigur.
2.1.2 Aviație
Cele mai răspâ ndite sisteme de tip pilot automat se întâlnesc însă în aviație.
Implementarea acestora a fost mai dificilă deoarece aici pot fi comandate mai multe elemente iar
datele sunt colectate de la o multitudine de senzori ( giroscoape, altimetre, accelerometre, GPS,
etc.) însă necesară mai ales în cazul curselor lungi, intercont inentale.
9
Astfel, întâlnim așa numiții “autopiloți pe o singură axă” care trebuie s ă asigure controlul
eleroanelor2, “autopiloți pe două axe” care trebuie să asigure atât controlul eleroanelor dar și al
profundoarelor3, respectiv “autopiloți pe trei axe” care trebuie să asigure controlul celor două
menționate dar și al cârmei (dup ă engl. rudder).
În general, pilotul automat îndeplinește următoarele funcț ii:
Amortizare, realizează compensarea oscilaț iilor avionului (la viteze supersonice);
Stabilizare, real izează menț inerea aeronavei pe o traiectorie dată , de regulă orizontală;
Comandă, realizează modificarea evoluțiilor de zbor.
Nucleul unui sistem modern de control automat al unui avion este calculatorul ce con ține o
serie de procesoare de mare viteză. Ace stea comunică cu senzorii localizați î n majoritatea
zonelor apr opiate de elementele de comandă iar pe baza comparaț iei dintre datele de in trare ș i un
set prestabilit stabilesc dacă avionul ș i urmăreș te traiectoria.
Figura 2 Principiu funcționare autopilot avion
Acest set p restabilit este setat de pilot și conț ine det aliile de zbor; este folosit atât pentru a
menține viteza, direcția dar și pentru a determina poziția în raport cu destinaț ia.
În cazul în care trebuie să se ia o acțiune se trimite o comandă la servomecanismele din
apropierea elementelor de comandă. Odată cu generarea acestei comenzi se pre ia noul set de date
de intrare ș i se reiau calculele (feedback control) .
Este un domeniu unde în continuare se poate veni cu multe inovații deoarece momentan
majoritate sistemelor autopilot sunt proiectate doar pentru a ajuta pilotul să păstreze direcția la
altitudini mari. De asemenea, piloții trebuie să aibă o foarte bună cunoaștere a condițiilor,
respectiv a acțiunilor fiecăr ui buton de pe panoul de control pentru a ști astfel cu exactitate când
să activeze funcțiile de care au nevoie.
Însă cum ar fi sa avem un sistem autopilot care pe lângă aceste funcții de bază să ne asigure o
pornire respectiv aterizare în siguranță? Din p ăcate, realizarea acestora este destul de complexă,
2 ELERÓN, eleroane, s. n. Fiecare dintre aripioarele de comandă ale cârmei transversale a unui avion, prin
manevrarea căreia se realizează mișcările în zbor ale avionului .
3 PROFUNDÓR, profundoare, s. n. Partea posterioară, mobilă a ampenajului orizontal al unei aeronave,
care asigură ușurința mânuirii, echilibrul și stabilitatea aeronavei.
10
fiind prea mulți factori externi de luat în calcul. Mai mult decât atât, având în vedere că sistemele
autopilot pot da și au dat greș preferăm să aruncăm vina pe ele pentru fiecare accident ce se
petrece și să nu investim cât s -ar putea într -o mai bună sau mai avansată implementare.
De asemenea, consider că ar fi utilă și implementarea unui sistem de control automat al
traficului. Multe din accidentele care au avut loc puteau fi evitate printr -o dirijare mai precisă a
traficului aerian, prin înlocuirea unui operator uman care poate fi ușor distras sau obosit cu un
calculator.
2.1.3 Marină
În marină funcția de bază a pilotului automat este de a menține cursul, prin preluarea
muncii timonierului. De asemenea, la velierele moderne el poate ajusta poziția velelor pentru o
eficiență maximă sau pentru o asietă convenabilă.
2 Analiza factorilor umani
Un factor important în scopul optimiză rii performa nțelor obținute de la sistem este
folosirea unui limbaj comun între cele două părți componente (controler și operator uman) pentru
o cât mai bună și rapidă identificare a necesităților sistemului de către operatorul uman.
Unul dintre cele mai delicate lucruri cu ca re operatorii umani se confruntă e să știe când e
momentul să i ntervină în locul sistemelor suport, iar atunci când intervin să știe ce acțiuni sunt
necesare pentru a ține situaț ia sub control. Situația devine cu atât mai grea cu cât aceștia se află și
sub presiunea timpului.
Pentru ca acest ă comunicare să aibă loc cu succes este necesar ca si stemele suport să nu
fie prea complexe și să poată fi folosite cu ușurință de că tre operatori. De aceea se recomandă ca
sistemele să fie construite î n jurul modului cum oamenii își organizează taskurile, procesează
informația ș i iau decizii. Astfel operatorului îi va fi ușor să fie conștient î n toate etapele
procesului de starea în care sistemul se află și să fie pregătit să intervină .
În urma studiului cauzei producerii numeroaselor accidente din domeniul aviatic apărea
de foarte multe ori știința înțelegerii capacităților umane, a orientării arhitecturii sistemelor
consolă operator în jurul acestora precum și interacțiunea dintre utilizator și mediul ambiant.
Deoarece suntem diferiți unii față de ceilalți, fiecare având slăbiciuni , puncte forte, anumite
capacități sau limitări, lista factorilor umani care pot conduce la astfel de incidente este foarte
mare.
Termenul de factori umani cuprinde noțiuni din mai multe discipline precum: psihologie,
antropometrie, informatică, inginerie , sau medicină. Studiul impactului acestora este cu atât mai
dificil cu cât este greu să se găsească un punct comun în modul în care oameni diferiți sunt
afectați de anumite condiții doar în anumite situații.
11
Figura 3 Analiza factorilor umani
Cercetarea în acest domeniu începe să facă progrese pe măsură ce mai multe discipline,
respectiv subdiscpline a celor menționate mai sus, care influențează oamenii în astfel de situații
sunt luate în calcul. Printr -o mai bună înțe legere a acestora și prin aplicarea rezultatelor astfel
obținute se mărește posibilitatea recunoașterii dar și a corectării în timp util a problemelor.
Cea mai bună metodă pentru a ține unificate diferite rezultate obținute în urma unei
analize în domeniu l științelor menționate mai sus a fost prin utilizarea unui model. Termenul
“PEAR” este cel care este folosit pentru a aduce în atenție cele mai importante patru noțiuni de
care trebuie să ținem cont în analiza influenței factorilor umani:
Oamenii care fac munca respectivă ( People)
Mediul în care lucrează ( Environment)
Acțiunile întreprinse ( Actions)
Resursele necesare pentru realizarea cu succes a sarcinilor alocate ( Resources)
Trebuie să ținem cont de faptul că oamenii care fac slujba și care se confruntă cu
probleme fizice, psihologice sau de ordin social. Trebuie să ne concentrăm asupra limitărilor dar
și a capacităților acestora astfel încât să le exploatăm la maxim potețialu l prin taskurile alocate.
Mediul de lucru trebuie să fie unul plăcut, în care oamenii să simtă că pot coopera si comunica
cu ușurință unii cu ceilalți.
12
Există o metodă de analiză numită JTA (Job Task Analysis) folosită pentru a identifica
cunoștințele, ap titudinile dar și atitudinea necesară pentru alegerea persoanei care trebuie să
efectueze un anumit task. Ultima noțiune menționată, dar nu cea din urmă, stă în puterea
companiei pentru a oferi resursele necesare pentru îndeplinirea cu succes a sarcinilor asignate dar
și pentru a veni în sprijinul nevoilor angajatului.
Rețeaua de transport din Canada a investit în investigarea acestei probleme și a
identificat o listă cu 12 din factorii umani care afectează performanțele angajaților și conduc la
incidente. Acestea poartă numele de “dirty dozen ” si au devenit un fel de standard internațional.
Este important să știm cum să recunoaștem “simptomele” pentru a ști ce trebuie să facem pentru
a contribui la împiedicarea agravării lor.
Primul dintre acestea este lipsa de comunicare . Este important să nu se omită niciodată
pași din verificările de siguranță ale avionului pe presupunerea că aceștia deja au fost efectuți, să
existe o comunicare cât mai eficientă între tehnicieni și piloți în schimburile de ture. Este indicat
să se folosească niște rapoarte scrise pentru o mai mare ușurință în comunicarea acestor detalii.
Complacerea este unul dintre riscurile care apare odată cu trecerea timpului. Pe măsură
ce ne acomodăm cu un sistem și avem încredere că începem să î l cunoaștem, că am căpătat
experiență cu acesta, avem tendința să evităm să mai realizăm taskurile repetitive, care de obicei
nu ne trezesc interesul atât de tare. Principala consecință negativă a acestui fapt este că există
mereu o șansă oricât de mică ca o defecțiune să fi apărut în acele locuri. De asemenea, este foarte
important să ne îngrijăm de menținerea eficientă a documentației.
Lipsa de cunoștințe . Este foarte important să nu ne abatem de la standarde în acțiunile
efectuate și dacă suntem nesiguri de cursul de acțiune potrivit într -o situație să verificăm cu
altcineva.
Distragerea este una dintre cele mai comune greșeli întâlnite. Pentru evitarea acesteia
este important să ținem cu noi o listă cu ceea ce avem de verificat, să ne asigurăm că nu am s ărit
peste vreun pas.
Este foarte important ca mereu să lucrăm în echipă . Întotdeauna este mai bine să întrebi
pentru a fi asigur decât să faci o presupunere.
Oboseala, presiunea sau stresul apar ca urmare a unui program de lucru nepotrivit sau a
unei c omunicări ineficiente în cadrul echipei.
Lipsa resurselor ține de compania producătoare. Aceasta trebuie să se asigure că le oferă
angajaților săi echipamente aflate într -o stare bună, bine documentate și în cantitate suficientă
astfel încât aceștia să î și poată desfășura activitatea cu succes.
13
Este important ca angajații să simtă că se pot exprima liber , că plângerile sau îngrijorările
lor vor fi ascultate și întelese. Totadată aceștia trebuie și ei la rândul lor să fie caabili să își asume
responsabilitatea pentru faptele lor. Trebuie să realizeze în permanență fiecare sarcină de lucru
ca și când ar fi prima dată când o fac, deoarece multe vieți omenești depind de ei.
În întrerinderea tuturor acestor acțiuni, trebuie să avem grijă să respe ctăm normele și
convențiile companiei, stabilite pentru ca în cazul în care cineva se confruntă cu o decizie și nu
știe care ar fi cel mai bun curs de acțiune să îi vină acestea în ajutor.
Toate aceste informații sunt disponibile oricărei companii, respe ctiv persoane interesate
în a afla mai multe. S -au tot căutat soluții pentru crearea unei mediu cât mai bun de muncă,
oferirea resurselor necesare, însă stă în natura omului să se sature de realizarea unor lucruri
repetitive, să își dorească altceva și aut omat să se încadreze într -un din cele “dirty dozen”.
3 Luare deciziilor
Numim decizie alegerea unei ieșiri pe baza intrării oferit e. Pentru sistemel e fizice,
precum cele prezente î n domeniul automaticii, cel mai jos nivel decizional este cel legat de
contro lul mișcă rii lor. Pe măsură ce ne punem probleme prec um care e traiectoria pe care ar
trebui să o urmăm mai urcă m un nivel in ierarhia decizională ș i ajungem la alt nivel numit
planificare sau organizare . Cel mai înalt nivel este însă cel care se referă la asignare și anume
alocarea resurselor la task urile potrivite. Ce ne preocupă pe noi în ceea ce priveș te sistemele
human in the loop este nivelul decizional legat de alocare.
Figura 4 Ierarhie decizii
14
Atunci câ nd realiză m o acțiune de asignare ne interesează ca obiectivele finale să fie
îndeplinite și constrâ ngerile problemei satisfăcute. În problemele de genul acesta în general ne
preocupă două aspecte importante: soluț ia aleasă și planificarea derulă rii procesului .
Cu alegerea unei soluț ii ne întâlnim și î n problemele de zi cu zi atunci când căutăm să
realizăm o acțiune ținând cont de anumite constrâ ngeri impuse (de timp, de rapiditatea cu car e
trebuie realizat ceva, etc). Î n mod uzual, aceste probleme su nt reprezentate ca probleme convexe
de optimizare și sunt rezolvate prin diferiț i algoritmi euristici. Un exemplu de problemă din viața
reală ar fi controlul traficului aer ian: date fiind avioanele, locațiile de start, stop și câ teva
intermediare, scopul f inal este gă sirea un or rute astfel încât avioanele să decoleze și aterizeze la
timp, fără a rămâne însă fără combustibil.
Atunci c ând ne punem o astfel de problem ă trebuie să luăm în calcul câțiva factori
importanț i precum: agentul, cel care execută taskul , taskul ce se dorește îndeplinit și costul
îndeplinirii acestuia (distanța parcursă , timpul petrecut, etc). La un anumit nivel de abstractizare,
este rezonabil să presupunem că mișcarea agentului este aproximativ deterministă. De exemplu,
este posibil să nu fie necesar să se ia în considerare dinamica zborului atunci când se rezolvă o
problemă de control a traficului aerian în întreaga lume. La scară spațială mică, însă, mișcările
agentului stocastic pot reflecta incertitudinea în interacțiunea dintre agen ți și mediul lor: efectele
vântului asupra aeronavelor, d e exemplu. Dinamica sarcinilor încredințate ar putea fi surprinsă
fie de incertitudinea procesului de finisare, fie de incertitudinea în interacțiunea mediu -sarcină
(mediul de lucru este liantul între om și sarcinile încredinț ate lui).
Una dintre cele mai cunoscute probleme de acest gen este problema vânzătorului călător
(TSP) enunțată astfel: “un vânzător trebuie să viziteze m orașe însă fiecare oraș doar o singură
dată, iar la finalul turului trebu ie să se întoarcă în oraș ul de unde a pornit. Scopul este gă sirea
unui astfel de traseu care să aibă costuri minime.”
Altă problemă de acest gen este problema de rutare a vehiculelor (VRP) care întreabă
“care este setul de ru te cu costul cel mai mic care să respecte constrângerile: fiecare oraș e vizitat
doar o singură dată , toate tu rurile pornesc și se termină în același loc, numărul de orase și
vehicule e fixat de la î nceput?”
Dincolo de limitările specifice acestui gen de probleme, și anume lipsa const rângerilor
mai putin rigide sau hibride și a reprezentărilor stocastice, probabil cele mai limitate neajunsuri
se află în definirea problemei și generalizarea soluțiilor. În majoritatea cazurilor, chiar și o ușoară
modificare a constrângerilor necesită rez olvarea de la zero. Soluțiile au tendința de a nu putea fi
generalizate, chiar și pentru probleme echivalente.
Succesul rezolvă rii problemelor decizionale este dat de o bună planificare . În cadrul
acestui proces ne punem problema alocă rii unui se t limitat de resurse cu scopul î ndeplinirii
sarcinilor propuse. De obicei partea care ține de alegerea unei soluții este cea precedent
prezentată iar partea care ține de alocarea î n timp ține de planific are. Din categoria problemelor
15
întâlnite în viaț a de zi cu zi cel mai bun exemplu ar fi rețeaua de transport: gă sirea unui orar
optim astfel încât cererea să fie satisfăcută .
Atunci când ne referim la o problemă decizională în primul rând trebuie să identificăm
agentul care realizează taskul respectiv. Avem nevoie să ordonă m subtaskurile care compun
taskul respectiv , să identifică m durata lor de tim p și eventualele constrâ ngeri. Apoi putem porni
în rezolvarea problemei.
4 Soluția problemei
“Singurul lucru important este cee a ce învățăm după ce știm totul. ”(Earl Weaver)
Când vorbim despre inteligența artificială, oamenii își imaginează de obicei o lume SF
dominată de roboți. Cu toate acestea, inteligența artificială este deja o realitate și îmbunătățește
în fiecare zi tehnologii din comerț ul electronic, sisteme de suprave ghere ș i sectorul industrial.
În ultimii ani, domeniul inteligenței
artificiale a fost într -o continuă dezvoltare, încet
îndreptâ ndu-ne către o lume complet automatizată .
Învățarea automată , unul din subdomeniile
inteligenței artificiale se preocupă cu dezvoltarea
de metode ce permit unui sistem să învețe reguli
sau algoritmi ș i să acum uleze câ t mai multe date.
Concomitent c u creșterea puterii de calcul
disponibile, atât pentru universități, în industrie dar
și în calculatoarele personale, cu avansul metodelor
de stocare și de achiziție a datelor, cercetarea în
domeniul învățării automate este în plină explozie .
O component ă esențială este faptul că învățarea trebuie să ducă la formularea de
suficiente “reguli” astfel încât să permită rezolvarea unor probleme dintr -un spațiu mai larg decât
cel pe baza căruia s -a făcut învățarea. Adică învățarea trebuie să îmbunătățească perfo rmanța
unui sistem nu doar în rezolvarea repetată a unui același set de probleme, ci și în rezolvarea unor
probleme noi. Acest lucru presupune o generalizare a unei metode de rezolvare pentru a acoperi
un număr cât mai mare de instanțe posibile.
O metodă de învățare este definită în primul rând de datele de plecare și scopul
algoritmului, adică ce se dorește să se obțină pe baza datelor oferite.
Algoritmii pot fi grupaț i:
Figura 5 Inteligen ță artificială
https://ro.wikipedia.org/wiki/Fi%C8%99
ier:ArtificialFictionBrain.png
16
1. După stilul de învăț are
2. După similaritatea în funcț ionare
Cea mai populară c lasificare este cea după stilul de învățare așa că o voi prezenta î n
continuare. Există doar câteva stiluri sau modele de învățare principale pe care un algoritm le
poate avea iar în continuare vom trece prin câteva exemple.
4.1 Învățarea supervizată sau clasi ficarea
Învățarea supervizată este un tip de învățare inductivă ce pleacă de la un set dat de exemple
de instanțe ale problemei și formează o funcție de evaluare (șablon) care să permită clasificarea
(rezolvarea) unor instanțe noi. Formal, setul de instanț e de antrenament este o mulțime de
perechi atribut -valoare (x,f(x)), unde x este instanța iar f(x) clasa căreia îi aparține instanța
respectivă.
Modelul rezultat capătă acurateț e printr -un proces de instruire în care este necesar să se facă
predicții și es te corectat când aceste predicții sunt greșite. Procesul de instruire continuă până
când modelul atinge nivelul dorit de precizie.
Acest tip de învățare este similar cu învățarea umană: ținem cont de experiențele noastre din
trecut pentru a dobândi cunoștințe și abilități noi cu scopul de a ne îmbunătăți capacitatea de a
face față unor noi provocă ri. Deoarece computerele nu au “ experiență”, învățarea superviza tă
învață din datele pe care le -a colectat în trecut .
Învățarea supervizată are loc în 3 etape:
– Faza de preprocesare când se determină tipul datelor, se fac operații suplimentare
asupra lor și se alege algoritmul de învățare;
– Faza de antrenare în care mode lul este construit din datele de antrenament de către un
algoritm de învățare ;
– Faza de testare când algoritmul este verificat folosind un set de test pentru a evalua
acuratețea modelului nou construit. Dacă acuratețea modelului asupra datelor de test
îndep linește cerințele inițiale, atunci clasificatorul poate fi folosit pentru a clasifica noi
date de interes. În caz contrar, procesul este u nul iterativ și se poate reveni la un pas
precedent.
Exemple de probleme din viața reală în care se poate aplica învăt area supervizată:
– O cameră de urgenț e dintr -un spital măsoa ră 17 caracteristici ale pacienț ilor care ajung
acolo (presiunea sângelui, temperatura, vârsta etc.). Este necesară o decizie pentru a se
stabili care sunt pacientii care au nevoie de îngrijire urg entă, Asadar, problema constă în
identificarea pacientilor cu riscuri mari si diferentierea lor de cei cu riscuri mai scăzute.
17
– O com panie care acordă credite primește mii de aplicaț ii pen tru credite noi. Fiecare
aplicație conține următoarele informaț ii despre persoana care face cererea: vârsta, starea
civilă, salariul anual, alte venituri. Problema o constituie clasificarea aplicaț iilor primi te
în două categorii: aprobate ș i neaprobate.
Câteva exemple de algoritmi ar fi: rețele neurale, rețele bayesiene, arbori de decizie, etc.
Una din cele mai utilizate structuri de reprezentare utilizate în învățarea automată este
arborele de decizie. Pentru a “naviga” prin arbore se verifică anumite proprietăți ale unei instanțe
și în funcție de testul efectuat asupra lor se ajunge la frunza căutată.
Figura 6 Arbore decizional
Dezavantajele folosirii algoritmilor de învățăre s upervizată constă î n cantitatea de date de
antrenament disponibilă raportată la complexitatea funcț iei ce trebuie determinate , inconsistenț a
datelor de antrenament, eterogenitatea lor, faptul că datele de intra re se pot potrivi pe mai multe
șabloane existente sau zgomotul prez ent în valorile de ieșire.
4.2 Învățarea nesupervizată sau clusterizarea
Învățarea nesupe rvizată e limină complet prezența unui set de antrenament, dec i și problemele
legate de acest a. În învățarea nesupervizată algoritmul este lăsat singur să identifice concepte
posibile.
18
În general, învățarea nesupervizată presupune existența unor instanțe ne clasificate, un set de
reguli euristice pentru crearea de noi instanțe și evaluarea unor concepte deduse. Utilizatorul este
lăsat să exploreze datele cu scopul de a găsi structuri noi, interesante și folositoare.
Printre cele mai importante metode ale învă țării nesupervizate este clusterizarea, care
organizează datele în grupuri similare numite clustere în asa fel încât instanțele dintr -un grup
sunt similare dintr -un anumit punct de vedere și total diferite față de datele din celelalte grupuri.
Clusterizare a are nevoie de o funcție de similitudine pentru a măsura cât de similare sunt două
date, sau alternativ, o funcție de depărtare (disimilaritate) pentru a măsura distanța dintre două
date.
Principala problemă a clusterizării o constituie volumul mare de d ate care trebuie procesat,
algoritmii de clusterizare fiind în general algoritmi cu timp de răspuns mare. Alte dezavantaje
sunt reprezentate și de complexitatea de calcul și cerințele de spațiu.
“Some day we will build a thinking machine. It will be a truly intelligent machine. One
that can see and hear and speak. A machine that will be proud of us. ” (Thinking Machines
Corporation)
Metodele învățării automate au devenit instrumente de bază în imple mentarea sistemelor
complexe de inteligență artificială. Rezultatele semnificative date de aplicarea acestor noi idei
promit crearea unor sisteme tot mai inteligente, până la crearea primei inteligențe artificiale
reale. Probabil aceasta nu va fi creată de programatori umani, ci de un sistem artificial ce va fi
învăța să fie inteligent observând instanțele date de raționamentele umane.
Inteligența artificială este o armă cibernetică extraordinară, care nu poate totuș i gestiona pe
cont propr iu sarcina de a l upta cu amenință ri de pe Internet. Oamenii și mașinile trebuie să
lucreze împreună. Sistemele de machine learning po t genera alarme false, astfel că este nevoie
de decizie umană pentru a reantrena algor itmii folosind datele corespunză toare. De ce alaltă parte,
algoritmii sunt mai preciș i dec ât oamenii când vine vorba de găsirea potențialelor amenință ri din
volume mari de date sau de re cuperarea rapidă a breș elor.
4.3 Drools
Drools a început ca un motor de reguli bazat pe o variantă îmbunătățită și optimizată a
algoritmului Rete, dezvoltat de Charles Forgy, capabil să proceseze un număr mare de reguli și
fapte.
Un sistem cu un număr mare de reguli și fapte poate avea ca rezultat fap tul că multe reguli
sunt valabile pentru aceelași input. Se spune că aceste reguli sunt în conflict. Drools a rezolvat
acestă problmă prin introducerea conceptului de agenda. Aceasta este partea sistemului care
gestionează ordinea de execuție a acestor reg uli conflictuale utilizând o strategie de soluționare a
conflictelor.
19
Funcționarea este simplă: în primă fază, se preiau datele de intrare primite, numite și fapte.
Apoi se execută regulile din baza de date cu reguli și dacă există vreo potrivire se declan șează
regula sau regulile respective și se execută acțiunile corespunzătoare lor.
Avantajele utilizării unui astfel de motor de reguli sunt multiple:
se bazează pe utilizarea programării declarative și anume pe a descrie ce trebuie făcut
nu cum trebuie fă cut;
logica aplicației se regăsește numai în cadrul regulilor, făcând astfel codul ușor de
întreținut și într -un singur loc;
algoritmi rapizi și scalabili la bază;
integrare ușoară cu IDE -uri;
limbajul în care sunt scrise regulile este ușor de înțeles chia r și de persoane non
tehnice.
Când ar trebui însă să ne punem problema folosirii acestei soluții?
O problemă este prea complexă și m odalitățile tradiționale nu ne ajută în a înțelege
problem a sau soluția sa pe deplin;
Soluția implementată nu este o varian tă sigură și este posibil să mai apară schimbări.
Având în vedere că logica implementată se regăsește doar în cadrul regulilor este ușor să
le realizăm;
Utilizatorii finali ai sistemului sunt persoan e non tehnice care nu înțel eg limbajul în care
a fost imp lementată soluția și au nevoie de un limbaj mai apropiat de cel natural în care
să fie descrisă soluția – posibilitățile sunt multiple în acest caz: fișiere DSL/DSLR, DRL,
XLS sau XML.
4.3.1 Algoritmul Rete
Algoritmul Rete are două mari părți componente: compilarea regulilor și execuția lor. În faza
de compilare regulile sunt procesate și filtrate. La început nodurile au multe potriviri însă pe
măsură ce algoritmul avansează acestea se împuținează.
Nodul rădăcină este punctul de intrare în rețea pentru toate obiectele. De aici toate sunt
considerate ObjectTypeNode, procedură care aj ută motorul de reguli să ef icientizeze procesul de
prelucrare a regulilor prin trimiterea obiectelor la acele noduri care au același tip de obiect ca și
ele. Din acest punct întâlnim o clasificare a nodurilor în: noduri Alpha, Beta și LeftInputAdapter .
Nodurile alpha sunt folosite la evaluarea condițiilor literale precum: nume == “Test” . Drools
a îmbunătățit algoritmul original prin adăugarea unui pas de hashing. De fiecare dată când un
nod Alpha este adă ugat unui Obj ectTypeNode, valoarea sa este păstrată ca ș i cheie iar nodul
alpha ca ș i valoare într-un HashMap.
20
Nodurile beta sunt folosite pentru a com para două obiecte inclusiv câmpurile lor î mpotriva
celuilalt. Acestea pot fi chiar ș i de tipuri diferite. De obicei intrarea din st ânga este o listă de
obiecte , în Drools numită tuplu ș i cea din dr eapta este un obiect. Drools a îmbunătățit
performanț ele algoritmului ini țial și aici p rin folosirea indicilor. Nodurile Beta se împart în două
categorii: noduri Join sau NotNode.
Nodurile LeftInput Nodes Adapter ia u ca ș i intrare un obiect și ca ieșire au un tuplu de obiecte.
Ca de exemplu : Cheese( $cheddar : name == “Cheddar”) .
Nodurile terminale ne indi că că regula a îndeplinit toate condiț iile.
Drools efectuează și împărțirea nodurilor. Multe reguli repetă aceleași tipare și împărțirea
nodurilor ne permite să restrângem modelele astfel încât să nu fie reevaluate pentru fiecare
instanță.
Figura 7 Împărțirea nodurilor
https://docs.jboss.org/drools/release/6.0.0.CR3/d
rools -expert -docs/html_single/
21
4.3.2 Cum scriem regulile?
De obicei f ișierele de reguli au extensia DRL . Într -un astfel de fișier putem avea declarații de
clase, importuri, variabile globale, funcții și bineînțeles reguli. Cu excepția faptului ca numele
pachetului trebuie să fie prima linie din fișier, ordinea în care apar acestea nu contează.
Structura un ei reguli este (fiecare componentă apare pe o linie nouă):
Cuvântul cheie rule urmat de numele regulii specificat între ghilimele;
Atribute ale regulii – sau un fel de reguli îndrumătoare ale comportamentului regulii;
Cuvântul cheie when ;
Descrierea condiț iilor;
Cuvântul cheie then ;
Descrierea acțiunilor;
Cuvântul cheie end;
Comentariile sunt ignorate, pot fi atât pe o linie cât și pe mai multe linii.
Pachetul este colecția sub care sunt ținute mai multe reguli. Importurile funcționează precum
cele din Jav a. Se pot importa atât clase create de utilizator cât și clasele din pachetul java.lang.
Variabilele globale sunt folosite pentru a face obiectele din aplicație disponibile și în cadrul
regulilor. Funcțiile sunt folosite pentru a descrie o logică mai compl exă sau pentru a evita să
avem cod duplicat.
Putem declara clase în fișierele de reguli prin folosirea cuvântului cheie declare urmat de
numele clasei, o însiruire de atribute și tipul lor (despărțite prin : ) și cuvântul cheie end.
22
Atributele regulilor sunt folosite pentru a influența comportamentul acestora. Cele mai
importante exemple ar fi:
salience specifică prioritatea de execuție a
regulilor;
agenda -group este folosit pentru gruparea
regulilor la execuție;
activation -group, permite execuția
exclusivă a regulilor. Odată ce o regulă din
grup a fost activată ea le dezactiveză
automat pe celelalte;
date-effective, duration și date -expires sunt atribute cu care perioada de valabilitate a
regulilor poate fi customizată;
4.3.3 Alte tipuri de fișiere de re guli
I. Pe lângă fișierele DRL putem întâlni și alte tipuri de fișiere de reguli. Fișierele de tip
DSL/DSLR oferă un strat de separare între autorii de reguli și specificul tehnic din
spatele acestora. Folosim astfel de fișiere atunci când vrem sa ascundem de taliile de
implementare și să ne concentrăm pe descrierea regulii. Mai jos e prezentat conținutul
unui fișier DSL (primul), respectiv DSLR (al doilea).
Prima linie a unui fișier DSL e considerată aceea care începe cu [. Cuvântul cheie when
indică că avem o condiție în vreme ce cuvântul cheie then indică că avem o acțiune.. În partea
dreapta a semnului egal este maparea condiției în limbajul întâlnit până acum și în fișierele DRL.
În partea stânga este scrierea în limbajul natural. Dacă o ex presie începe cu “-“ se presupune ca
este o altă constrângere pentru obiectul declarat pe linia deasupra sa.
În aceste expresii se pot folosi câmpuri de orice tip de date iar asupra lor putem aplica
totți operatorii cunoscuți și din alte limbaje de progr amare. Generalizând expresiile DSL sunt de
forma:
23
[when][] – {field: \w*} {operator} {value: \d*}={field} {operator} {value}
Între parantezele care succed cuvântul cheie when se poate specifica clasa obiectului la
care se face referire.
În cadrul fișierelor DSLR are loc scrierea regulilor, folosindu -ne de condițiile și a cțiunile
specificate în fișierele DSL. În faza de compilare fișierele DSL/DSLR sunt transformate tot în
fișiere DRL.
II. Decision Tables se folosesc mai ales atu nci când regulile urmează acela și template.
Fiecare rând din tabel reprezintă o regulă. Acestea sunt mai ușor de folosit de către
persoanele care deja sunt obișnuite să lucreze cu fișiere de tipul xls sau csv.
Figura 8 Decision table
https://docs.jboss.org/drools/release/6.0.0.CR3/drools -expert -docs/html_single/
În exemplul de mai sus în coloana C, rândul 9 se specifică numele pachetului. Imediat
sub sunt import -urile separate prin virgulă. După cuvântul cheie RuleTable, există un nume ,
folosit pentru a prefixa numele regulilor generate.
24
Pe rândul 14 cuvintele cheie when și then indică faptul că datele din coloanele de mai jos
sunt pentru părțile din stânga sau din dreapta ale unei reguli. Există și alte atribute ale regu lii care
pot fi setate opțional.
Rândul 15 conține declarații de tip obiecte . Conținutul acestui rând este opțional, dar dacă
această opțiune nu este utilizată, rândul tr ebuie să fie lăsat necompletat. C u toate acestea, această
opțiune este, de obicei, considerată a f i destul de utilă.
Rândul 16 conține șabloanele de reguli. Acestea pot utiliza substituentul "$ param" pentru
a indica unde ar trebui interpolate datele din celulele de mai jos. Rândul 17 este ignorat, acesta
poate conține descrieri textuale ale scopului coloanei.
Rândurile 18 și 19 prezin tă date, care vor fi combinate cu șabloanele din rândul 15,
pentru a genera reguli. Dacă o celulă nu conține date, șablonul este ignorat. Rândurile de reguli
sunt citit e până când există un rând gol.
III. O altă opțiune ar fi fișierele XML , deși nu e de preferat deoarece acestea sunt foarte greu
de citit și înțeles.
25
5 Studiu de caz
Pentru a testa cele descrise mai sus am folosit soluția Drools în rezolvarea unei probleme de
automatizare. În industrie, în ultimii ani a fost o cerer e foarte mare pentru o soluție care să
rezolve problema funcționării fără oprire a unei linii de producție. Avantajele unui astfel de
proces sunt multiple: costuri reduse, controlul întregului ansamblu fără divizarea acestuia,
reducerea timpul ui de procesare.
Una dintre cele mai mari probleme însă este reprezentată de faptul că odată apărută o
problemă, linia de producție este oprită până la rezolvarea acesteia. Astfel s -a ajuns la necesitatea
menținerii constante a unui raport de produs final . Cu timpul au fost propuse numeroase soluții
de la unele simple precu m gruparea în serie sau paralel a buclelor de reglare până la structuri
adaptive. Scopul final este creșterea performanței și calității în încercarea de a eficientiza acest
proces.
5.1. Soluția clasică
Utilizarea ș i acordarea unor bucle mult ivariabile este foarte dificilă, soluț ia unui c ontroller
multivariabil prezentâ nd dezavantaje precum: grad mare de complexitate, grad de repetabilitate
scăzut sau costuri foarte ridicate.
O soluț ie ar fi d escompunerea î n cât mai multe structuri de reglare mono varibile I/O care ar
rezolva problema repetabilit ății ș i a costurilor dar ar diminua gradul de performanță.
Așadar s -a ajuns la propunerea altor metode de conducere a proceselor multivariabile d in
care amintim:
Descentralizare;
Decuplare statică ;
Decuplare dinamică ;
Cuplare serie;
Cuplare paralel;
Descentralizarea presupune ignorarea interinfluen țelor între bucle, care se comportă
asemănător perturbațiilor. Buclele se perturbă reciproc și tr euie să ne asigurăm că sunt
proiectate suficient de “robuste ” astfel încât să suporte atât perturbațiile exterioare cât și cele
provocate de buclele paralele.
Uneori nu este posbil să le ignorăm așa că trebuie aplicată altă soluție și anume
decuplarea buc lelor. Decuplarea dinamică este destul de dificilă însă cea static ă este posibilă
și implementabilă.
Însă există bucle de reglare a căror funcționare trebuie cuplată, cum ar fi și cazul
procesului descri s mai sus.
26
Cuplarea în paralel este cea mai intuitivă dar este recomandată doar în cazul sistemelor
slab perturbate.
Cuplarea în serie în schimb rezolvă problema perturbațiilor din prima buclă dar nu și pe
cea a celor din cea de -a doua buclă., astfel că este recomandat ca bucla cea mai per turbată să
fie prima.
Soluția care combină ce este mai bun din cele două menționate anterior este cuplarea
complex ă a buclelor, unde referința fiecărei bucle este o combinație proportionat ă între
referința real ă și ieșirea celeilalte bucle.
Figura 9 Cuplarea complexă a două bucle de reglare
În figura 9 s-a notat cu a raportul între referințele buclelor (0 < a <1) , cu F 1 factorul de
cuplare a primei bucle (0 < F 1 < 1) și cu F 2 factorul de cuplare a celei de -a doua bucle (0 < F2
< 1).
Atunci când F 1 = 1 și F 2 = 1 ne aflăm în cazul particular când avem o cuplare paralel,
când F 1 = 1 și F 2 = 0 sau F 1 = 0 și F 2 = 1 ne aflăm în cazul particular când avem cuplare serie.
Dezavantajul acestei soluții este încetinirea dinamicii în urm ărirea referinței, de aceea
fiind recomandată reproiectarea după cuplare.
27
5.2 Soluția Drools
Procesul pe care ne dorim să implementăm această soluție este descris prin figura de mai jos:
Figura 10 Proces
Pentru a mă putea folosi de frameworkul Drools, am modelat acest proc es cu ajutorul
limbajului de programare Java, astfel:
Figura 11 Clasele asociate procesului
Clasa ReservoirList reprezintă linia de asamblare. Pentru aceasta vrem să identificăm tipul
(dacă e produsul A sau B ) și lista de rezervoare asociată fiecărei linii.
Clasa Reservoir ne ajută să reținăm caracteristicile unui rezervor și anume: nivelul său actual
– level (cu ajutorul unui sensor de nivel) , dacă a atins nivelul maxim – isAtMax sau nivelul minim
– isAtMin (tot cu ajutorul unor senzori) , dacă acesta este rezervorul din care se ia produsul –
isOn , sau dacă mai trebuie să se adauge cantitate din el în produsul fina l – stopAdding .
Clasa Ratio ne ajut ă să reținem caracteristicile produsului final: cât la sută din produsul A,
respectiv B conține (cu ajutorul unor senzori care monitorizează acest lucru) .
28
Odată create aceste clase și obiectele aferente lor – un obiect de tip ReservoirList care să
simuleze linia A cu două obiecte de tip A, 1A și 2A care reprezintă lista de rezervoare
corespunzătoare acestei linii , unul care să simuleze linia B care le fel ca și la linia A conține în
lista de rezervoare două obiecte 1B și 2 B și un obiect de tip Ratio am trecut la implementarea
regulilor.
Regulile vor fi testate folosind frameworkul de testare Junit.
Figura 12 Reguli care testează nivel maxim rezervoare
Cele două reguli se asigură de faptul că atunci când limita maximă a vreunuia din
rezervoarele corespunzătoare liniei A, sau B, după caz, este atinsă, acestea nu mai sunt
alimentate (se setează variabila stopAdding pe true).
Se observă în condiția regulilor ca este apelată o funcție de java – checkIfMa xIsReached din
clasa externă fișierului de reguli, Calculator . Pentru a putea evalua rezultatul acestei funcții se
folosește funcția build -in a frameworkului, eval, iar pentru a putea avea acces la acesta trebuie
mai întâi importată în fișierul de reguli ( import function app.Calculator.checkIfMaxIsReached).
Același lucru se realizează și în cazul acțiunilor prin apelul funcției actionsForMax .
Pentru a testa acest lucru am creat un ReservoirListA și un ReservoirListB. Pentru rezervorul
2A, respectiv 1B am se tat cu valoarea true variabila care indică dacă rezervorul a atins sau nu
nivelul maxim. Așadar mă aștept ca după execuția bazei de cunoștințe să se declanșeze două
reguli și anume cele două figurate mai sus. Testul a fost executat cu success, ieșirea aces tuia
find:
One/more of the reservoirs in line A needs no more filling
One/more of the reservoirs in line B needs no more filling
ReservoirList {reservoirList= [Reservoir{level=30, isAtMax=false, isAtMin=false,
isOn=true , stopAdding=false}, Reservoir{level=90, isAtMax=true, isAtMin=false,
isOn=false, stopAdding =true}], type='A'}
29
ReservoirList {reservoirList= [Reservoir{level=60, isAtMax=true, isAtMin=false,
isOn=true, stopAdding =true}, Reservoir{level=90, isAtMax=false, i sAtMin=false,
isOn=false , stopAdding=false}], type='B'}
Același principiu se aplică și pentru regulile care testează nivelul minim.
Figura 13 Reguli care testează menținerea constantă a valorii raportului
Prima regulă se asigură că atunci când valaorea raportului dintre produsul A și B este mai
mică decât valoarea pe care dorim să o menținem constantă, acest lucru este retușat în timp util
prin mărirea cantitășii adăugate de produs B. Acțiunea executată arat ă în felul următor:
Figura 14 Acțiunea regulii care verifică valoarea raportului
30
Dacă rezervorul1A este pornit și nu a atins pragul minim (încă se poate lua produs din el)
atunci se ia o anumită cantitate din el( 10 setat de mine în cod) și se adaugă în produsul final.
Dacă a ajuns pragul minim, atunci se apelează la cel de -al doilea rezervor pentru care ne punem
aceeași problemă. Între timp se va declanșa și regula care se asigură că atunci când se atinge
nivelul minim, rezevorul este reumplut. Pentru a ne asigura că regulile sunt executate în ordinea
dorită am setat atributul salience la o valoare mai mare la regula care verfică raportul față de cea
care verifică dacă nivelul minim a fost atins.
Pentru a valida acest lucru, mi -am creat niște obiecte de test: un obiect Ratio, un obiect
care să simuleze linia A, respectiv B și am setat valoarea raportului dorit la 0.5. Pentru rezervorul
1A am setat să fi atins nivelul minim, astfel încât să se ia ca ntitatea de produs necesară din
rezervorul 2A.
Valoarea nivelului din reze rvorul 1A este 10, din 2A 90, 1B 70 și 2B tot 90. La început
rezervorul 1A este pornit și 2A oprit.
Ieșirea în urma execuției ruleset -ului a fost:
Ratio is below
One/more of the res ervoirs in line A needs more filling
ReservoirList{reservoirList=[Reservoir{level=10, isAtMax=false,
isAtMin=true, isOn=false, stopAdding=false}, Reservoir{level=80,
isAtMax=false, isAtMin=false, isOn=true, stopAdding=false}], type='A'}
Ratio{howMuchA=40.0 , howMuchB=70.0}
După cum se observă, rezervorul 1A nu mai este activ (variabila isOn e setată pe false) ,
valoarea nivelului din rezervorul 2A a scăzut cu 10 unități și acum acesta e rezervorul active pe
linia A .
Acela și lucru se petrece și pentru regula care verifică că valoarea raportului nu e peste
valoarea limită dorită.
31
6 Concluzii
Sistemele de tip human -in-the-loop sunt din ce în ce mai întâlnite în viața de zi cu zi. Fie
că le găsim implementate în lucruri pe care le folosim în viața de zi cu zi (de exemplu browsere
web, procesoare ale calculatorelor), mijloace de transport sau chiar și la locul de muncă sistemele
suport decizie sunt un aspect esențial al îmbunătățirii modului în care ne desfășurăm activitatea.
Oamenii au încercat automatizarea activităților realizate în viața de zi cu zi care îi
plictisesc sau pe care le consideră inutile dar nu sunt dispensabile, încercând să maximizeze
astfel investiția în timpul personal.
Scopul lucrării de față este prezentarea domeniului larg de aplicabilitate al sistemelor de
tip human in the loop. Deși deja s -au făcut progrese enorme în cercetarea respectiv
implementarea sistemelor de acest gen, oamenii continuă să vină cu idei de îmbunătățire al căror
principal scop este ușurarea muncii sale dar și creșterea preciziei în desfășur area respectivelor
activități.
32
7 Bibliografie
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: București, 2017 [630383] (ID: 630383)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
