ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 43
Abonament PDF

Logica Fuzzy și mecanismele specifice. O introducere teoretică

Mursa Bogdan
Software Developer @ Yardi



PROGRAMARE


Proiectarea mecanismelor tehnice ce pot reproduce o funcționalitate a corpului uman a fost una dintre preocupările frecvente care l-a frământat pe om de-a lungul evoluției sale. Răspunsul la întrebarea "De ce?" este unul destul de evident, ce se poate sumariza la următorul aspect: ușurarea ori îmbunătățirea activităților pe care le desfășoară omul.   

Începând de la simpla roată care a apărut odată cu necesitatea transportului de materiale mult prea grele pentru un om până la sistemul optic ce formează un binoclu, care facilitează vizualizarea de obiecte aflate la o distanță mult prea mare, astfel de mecanisme au ajutat la o evoluție rapidă a tuturor domeniilor.    

Încetul cu încetul soluția tehnică ce poate efectua procesări similare creierului uman a devenit o necesitate, odată cu această evoluție rapidă din majoritatea domeniilor. Capacitatea intelectuală a oamenilor nu mai făcea față ori era mult prea costisitoare pentru a putea fi folosită în mecanisme manuale. Astfel apariția calculatorului modern, ce reprezintă transpunerea într-un sistem mecanic a creierului uman, marchează începutul unei noi ere, unde procesări de înaltă performanță devin posibile.  

Modul în care calculatorul interpretează datele se bazează pe o logică tradițională și anume logica binară. La un moment dat, orice decizie luată de această unealtă creată de om se va rezuma la un răspuns 0 sau 1 sau, natural vorbind, adevărat sau fals. Până nu demult acest lucru mulțumea toate nevoile domeniilor ce foloseau puterea de procesare a calculatoarelor, însă expansiunea rapidă a nivelului calității și preciziei care se dorește în luarea de decizii a început să nu mai fie satisfăcută de acest mod tradițional de a procesa datele. 

Necesitatea folosirii unei logici care să fie mult apropiată de raționamentul creierului uman, a fost demult semnalată de profesorul Lotfi A. Zadeh (1965). Din păcate, precum marelui Einstein i-au fost respinse teoriile de mulți fizicieni ai momentului și acum aceste teorii reprezintă bazele fizicii moderne, așa și teoria profesorului Zadeh, intitulată Fuzzy Logic, a fost respinsă de majoritatea oamenilor de știință din acel moment; abia după mulți ani comunitatea științifică i-a înțeles adevărata putere. Acum teoria reprezintă una din bazele Inteligenței Artificiale moderne și este folosită în sisteme fuzzy aflate în: automobile, mecanisme de securitate, aparate medicale, mecanisme decisionale (marketing, business etc.), aparate foto etc. .

Noi ca oameni folosim așa numita logică fuzzy zi de zi, fără să avem nici cea mai mică idee, pentru că mintea umană este construită natural să gândească într-o manieră fuzzy. Un exemplu simplu poate fi reprezentat de răspunsurile posibile la întrebarea "Cât de satisfăcut ești de Universitatea Babeș-Bolyai?": "Destul de satisfăcut", "Nu sunt satisfăcut", "Foarte satisfăcut", care sunt răspunsuri ce pot fi considerate ambigue sau fuzzy, folosind termenii prezentați deja. Pentru că raționamentul uman este făcut să lucreze așa, pentru noi oamenii este foarte simplu să interpretăm aceste tipuri de răspunsuri, folosindu-ne de experiența acumulată deja sau de diferite metrici. Însă când vine vorba de mașini controlate de un calculator ce folosește logica binară, acest lucru nu mai este posibil. Pentru că acestea înțeleg doar valori ca 0 și 1, sau răspunsuri ca "satisfăcut", "nesatisfăcut". 

 În termenii logicii fuzzy, aceste seturi de date ce pot fi interpretate de orice mașină într-un sistem binar se numesc crisp data. 

Pentru a parcurge și câteva noțiuni mai practice, vom folosi un exemplu destul de interesant ca să vedem cum se vor comporta logica fuzzy și cea tradițională. În acest exemplu dorim să creăm conceptual un sistem de "self-driving car" de pe un automobil care să fie capabil să ia cele mai bune decizii în momentul în care o altă mașină se află la o anumită distanță de automobilul nostru.

Conform metodei tradiționale, sistemul nostru va putea lua doar două decizii: aproape și departe. Folosindu-ne de Figura 1. ne putem imagina distanța între mașini ca fiind împărțită în două jumătăți egale, fiecare având drept corespondent direct una din cele două decizii. În acest context, faptul că putem lua în considerare doar aceste două decizii trase în urma analizei distanței între mașini duce la măsuri direct proporționale. Voi formula aceste decizii sub forma unor reguli de forma "dacă-atunci" (dacă o condiție atunci o consecință). 

Dacă mașina B este aproape atunci frânează.    

Dacă mașina B este departe atunci nu frâna.

Dacă presupunem că mașina noastră va avea mereu o viteză mai mare decât mașina B și ținem cont de regulile de mai sus, atunci de fiecare dată când distanța dintre mașini va fi undeva în intervalul semnalat ca aproape, sistemul self-driving va frâna brusc, indiferent de cât de aproape sunt mașinile. Odată ce distanța dintre mașini se va situa în intervalul departe, mașina noastră va reporni și își va continua drumul până când iarăși va fi oprită brusc, în momentul în care distanța va ajunge în intervalul aproape.

Abordarea pe care o propune logica fuzzy este una care spune că răspunsul este mereu undeva între 0 și 1 (inclusiv acestea). Deci reprezentarea distanței dintre cele două autovehicule va fi mai mult un gradient așa cum este afișat în Figura 2.

Astfel putem obține seturi de reguli de forma celor de mai sus, punând întrebări cât mai naturale:

Mașina B este aproape ?       

Răspuns: 0.2 (nu foarte aproape).     

Dacă mașina B este 0.2 de aproape atunci frânează 0.2 (nu foarte tare).         

Răspuns: 0.8 (destul de aproape).     

Dacă mașina B este 0.8 de aproape atunci frânează 0.8 (destul de tare). 

Exemplul de mai sus oferă ca răspuns la întrebare un număr ce se află în intervalul [0,1]. Acest număr este de fapt un număr fuzzy ce are în calitate de corespondent un set fuzzy căruia îi poate fi asociat (în acest caz setul "nu foarte aproape").    

Într-un caz real, un mecanism de "self-driving car" ce ar implementa o logică fuzzy conform exemplului de mai sus, ar respecta comportamentul omenesc mult mai bine, mașina conducându-se cu adaptări ale vitezei în funcție de distanța între mașini, fără a pune frâne bruște.      

Cu siguranță acest exemplu v-a făcut un pic curioși în legătură cu algoritmul propriu-zis ce este implementat într-un astfel de sistem fuzzy. Această implementare este una foarte naturală de asemenea, deși mai este presărată pe alocuri cu diferite noțiuni specifice; partea bună este că acestea sunt sugestive. 

Un controler fuzzy sau un mecanism fuzzy nu este altceva decât o mașină ce folosește logica fuzzy. Acest controler poate să fie un sistem hardware sau software, sau amândouă, scopul lui final fiind să aplice logica fuzzy în așa fel încât să interpreteze datele așa cum ar face-o un om, doar că mult mai rapid.    

Flow-ul unui astfel de mecanism este reprezentat prin următorii pași:            

1.Primirea unui număr de măsurători oferite de un alt sistem (în exemplul de mai sus, ar fi un senzor care ar măsura distanța între cele două mașini). 

E.g: 4 m, 5 m etc.              

2.Să nu uităm că sistemul nostru poate procesa doar seturi de date fuzzy. Deci datele primite în pasul anterior trebuie transformate din date crisp în date fuzzy. Aceste transformări se fac conform unor metrici stabilite de un expert în domeniul de aplicabilitate. 

E.g: 4 m reprezintă o valoare de 0.3 de aproape.    

3.Setul de date fuzzy rezultat este folosit ca input în regulile fuzzy de tipul  "dacă-atunci", ce au drept rezultat (sau consecință) un alt set de date fuzzy

E.g: Dacă mașina B este 0.3 m aproape atunci apasă frâna 0.3 (nu foarte tare)               

4.În ultimul pas această consecință fuzzy trebuie tranformată în date crisp pentru ca  sistemele ce citesc output-ul din controler-ul fuzzy să poată lua măsuri. 

E.g: 0.3 frână poate  reprezenta o reducere de viteză de 30% față de viteză actuală. 

Din păcate detaliile despre arhitectura propriu-zisă a unui astfel de sistem ce folosește flow-ul de mai sus, s-ar încadra într-o altă discuție. Însă sper că aspectele teoretice prezentate de-a lungul articolului au fost destul de clare și au oferit o sumarizare completă a conceptului din spatele logicii fuzzy și a sistemelor ce o implementează.       

Vă recomand să continuați să descoperiți aplicațiile practice ale acestor sisteme ce folosesc modul de gândire propus de profesorul Zadeh. Beneficiile aduse pot fi unele extraordinar de mari, și pot aduce un aport de calitate și precizie oricărui proiect pe care îl desfășurați.  

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects