Vol.I ALGORITMI GENETICI LUȚĂ COSTINA CLAUDIA ALGORITMI GENETICI VOL.I ISBN

Size: px
Start display at page:

Download "Vol.I ALGORITMI GENETICI LUȚĂ COSTINA CLAUDIA ALGORITMI GENETICI VOL.I ISBN"

Transcription

1 LUȚĂ COSTINA CLAUDIA ALGORITMI GENETICI ISBN VOL.I 0 S L A T I N A 2014

2 Tehnoredactare : Luță Costina Claudia Referent ştiinţific: Profesor gradul I ~ Gabriela Raluca Ionică ~ Inspector şcolar de specialitate I.S.J. Olt Autor: Profesor gradul I ~Luță Costina Claudia ~ Colegiul Tehnic Alexe Marin Slatina 1

3 CERCETARE ȘTIINȚIFICĂ CAPITOLUL I Noțiuni introductive 1.1 Istoric Rezolvarea problemelor care implică folosirea unor expresii matematice a fost intens studiată în ultimele decenii. In matematică optimizarea este înțeleasă ca însemnând găsirea unei soluții optime. In acest scop s-au obținut rezultate importante în calculul diferențial, calculul variațional, controlul optimal, cercetări operaționale. Drumul de la rezultatele teoretice, referitoare la teoreme de existență, unicitate, caracterizare a soluției, etc., la optimizarea efectivă este de multe ori prea lung, fie datorită complexității prea mari a problemelor reale față de modelul matematic utilizat, fie datorită complexității (timp, memorie) algoritmilor utilizați. La mijlocul anilor 70, odată cu creșterea performanțelor calculatoarelor și, implicit, a complexității problemelor reale ce se puteau rezolva cu ajutorul calculatorului, au devenit frecvente situațiile în care modelele clasice de optimizare nu mai conduceau la soluții acceptabile pentru probleme modelabile pe calculator. Tot mai frecvent, probleme din biologie, climatologie, chimie, mecanica, analiza datelor, etc., probleme ale căror modele includ sute sau mii de variabile, ale căror funcții de optimizat prezintă multiple optime locale și neregularități nestudiate din punct de vedere numeric, rămâneau nerezolvate sau cu soluții aproximate grosier. 2

4 Studiindu-se excelenta adaptare a ființelor vii, în ceea ce privește forma, structura, funcțiile și stilul de viața, numeroși cercetători au ajuns la concluzia că natura oferă soluții optimale la problemele sale, soluții superioare oricăror performanțe tehnologice. S-a demonstrat chiar matematic optimalitatea unor sisteme biologice: raportul diametrelor ramificațiilor arterelor, poziția punctelor de ramificare a vaselor de sânge, valoarea hematocritului (procentul volumului particulelor solide din sânge). În consecință au apărut primele încercări de imitare a procesului de evoluție naturală. In anul 1970 profesorii Hans-Paul Schwefel (Dortmund) și Ingo Rechenberg (Berlin) având de rezolvat o problemă de mecanica fluidelor, referitoare la optimizarea formei unui corp ce se deplasează într-un fluid, au căutat o noua tehnica de optimizare deoarece metodele cunoscute până în acel moment nu conduceau la o soluție acceptabilă. Ideea lor a întruchipat conjectura lui Rechenberg, ramasă până azi justificarea fundamentală a aplicării tehnicilor evolutive: Evoluția naturală este, sau cuprinde, un proces de optimizare foarte eficient, care, prin simulare, poate duce la rezolvarea de probleme dificil de optimizat. Modelul de simulare propus de Rechenberg și Schwefel este cunoscut azi sub numele de strategii evolutive și inițial se aplica doar problemelor de optimizare de variabila continua. Soluțiile candidat x se reprezintă în virgulă mobilă iar individul i căruia i se aplica procesul evolutiv consta din aceasta reprezentare și dintr-un parametru al evoluției, notat s, reprezentat tot în virgula mobila: i = (x, s). La fiecare pas soluția curentă este modificată pe fiecare componentă conform lui s și în cazul unei îmbunătățiri este înlocuită cu cea nou obținută. Parametrul s joaca rolul pasului din metodele iterative clasice și este astfel folosit încât să fie respectat principiul mutațiilor mici. A doua direcție de studiu s-a conturat la Universitatea San Diego; punctul de pornire a fost tot simularea evoluției biologice iar structura de date aleasă a fost mașina cu număr finit de stări. Urmând aceasta abordare, 3

5 Fogel generează programe simple, anticipând programarea genetica. După mai mulți ani de studiere a simulării evoluției, John Holland de la Universitatea Michigan a propus in 1973 conceptul de algoritm genetic. Au fost abordate probleme de optimizare discretă iar structura de date aleasa a fost șirul de biți. Într-o accepțiune strictă, noțiunea de algoritm genetic se refera la modelul studiat de Holland si de studentul sau De Jong. Într-un sens mai larg, algoritm genetic este orice model bazat pe ideea de populație și care folosește operatori de selecție și recombinare pentru a genera noi puncte în spațiul de căutare. 4

6 1.2 Importanta temei in actualitate În acesta carte am prezentat principalele direcţii ale algoritmilor evolutivi, în special al algoritmilor genetici. Aplicaţiile practice ale acestor algoritmi sunt nenumărate. Principalele caracteristici ale algoritmilor genetici, comparativ cu cei tradiționali sunt: - sunt algoritmi probabiliști ce îmbină căutarea dirijată cu cea aleatoare; - realizează un echilibru aproape perfect între explorarea spațiului stărilor și găsirea celor mai bune soluții; - în timp ce metodele clasice de căutare acționează la un moment dat asupra unui singur punct din spațiul de căutare, algoritmii genetici mențin o mulțime (= populație) de soluții posibile; - algoritmii genetici nu acționează direct asupra spațiului de căutare ci asupra unei codificări a lui; - sunt mai robuști decât algoritmii clasici de optimizare și decât metodele de cautare dirijată; - sunt simplu de utilizat și nu cer proprietăți importante ale funcției obiectiv, precum continuitate, derivabilitate, convexitate, ca in cazul algoritmilor clasici; - pot găsi soluții optime sau aproape optime cu o mare probabilitate. Caracteristicile lor au făcut ca algoritmii genetici să fie utilizați în cele mai diverse domenii: - optimizare: - optimizare numerică și combinatorică, - proiectarea circuitelor, a sistemelor de conducte și a liniilor de comunicație, 5 - proiectarea avioanelor; - planificarea proceselor de producție; - programare automata;

7 - scrierea programului LISP pentru o problema data; - obținerea de algoritmi de sortare; - instruirea mașinilor = machine learning; - deplasarea într-un labirint, - controlul deplasării unui robot; - proiectarea rețelelor neuronale; - deducerea regulilor pentru rezolvarea diferitelor probleme; - rezolvarea unor probleme dificile de tip joc; - proiectarea controlorilor inteligenți; - probleme de predicție a sistemelor haotice, vremii, evoluției pieței financiare; - modelarea unor procese complexe din: economie, politica, ecologie, etc. Ei sunt folosiţi în domenii tot mai neaşteptate cum ar fi proiectarea aripilor de avion sau la proiectarea formei staţiilor orbitale. Dacă aţi ales să rezolvaţi o problemă genetic, trebuie să ţineţi cont de câteva sfaturi. Pentru a rezolva o problemă cu algoritmi genetici trebuie să o transformaţi mai întâi într-o problemă de optimizare, adică să se minimizeze sau să se maximizeze o valoare (cel mai scurt lanţ hamiltonian, cea mai mare componentă intern stabilă etc.). Algoritmii genetici sunt algoritmi euristici, adică soluţia găsită de ei nu este întotdeauna cea mai bună, dar se află într-o vecinătate a soluţiei optime. Deci, dacă aveţi de ales între un algoritm polinomial care rezolvă sigur problema şi un algoritm genetic, ar fi de preferat să folosiţi algoritmul polinomial. Algoritmii genetici, de obicei, au complexitate polinomială. De aceea ei 6

8 sunt foarte des utilizaţi pentru a rezolva problemele dificile (NPcomplete). Rezultatele obţinute sunt foarte apropiate de cele obţinute de algoritmii siguri, dar care au rulat mii de ore. Dacă problema este complexă folosiţi un algoritm genetic şi nu o strategie evolutivă. De obicei mutaţia este un operator de căutare slab, deci, dacă se foloseşte doar acesta, există şanse mari să se obţină o soluţii locale şi nu globale. Concluzie - Puterea algoritmilor genetici constă în uşurinţa cu care sunt implementaţi şi în faptul că dau de multe ori rezultate bune, chiar dacă nu găsesc întotdeauna optimul global. 7

9 CAPITOLUL II Aspecte teoretice de baza 2.1 Calcul evolutiv În general, orice sarcină abstractă care trebuie îndeplinită, poate fi privită ca fiind rezolvarea unei probleme, care, la rândul ei, poate fi percepută ca o căutare în spaţiul soluţiilor potenţiale. Deoarece, de obicei, căutăm cea mai bună soluţie, putem privi acest proces ca fiind unul de optimizare. Pentru spaţii mici, metodele clasice exhaustive sunt suficiente; pentru spaţii mari, pot fi folosite tehnicile speciale ale inteligenţei artificiale. Rezolvarea problemelor folosind metode evolutive este un domeniu de tradiție. El își are rădăcinile în anii '50, când mai mulți cercetători au preluat metafora evolutivă din natură, aplicând-o la rezolvarea problemelor din diverse domenii. Metafora evolutivă este transpusă, informatic, într-un număr foarte mare de algoritmi. Totuși, câteva considerente generale pot fi indicate. Se lucrează cu o populație (vector, listă) de posibile soluții. Acestea se mai numesc uneori și indivizi, cromozomi etc. Indivizii populației inițiale sunt generați aleator. Cu ajutorul selecției și al operatorilor genetici indivizii evoluează și, eventual, vor converge către soluție. Indivizii sunt evaluați pe baza unei așa-zise funcții de fitness (calitate). Fitness înseamnă speranță de viață. Cu cât un individ este mai performant, cu atât speranța lui de viață este mai mare. Asupra indivizilor din populație se aplică operatori genetici. Acești operatori sunt dependenți de reprezentare. Dintre cei mai răspândiți operatori genetici amintim încrucișarea și mutația. Prin încrucișare, de obicei, doi părinți 8

10 dau naștere a doi fii. Prin mutație se aplică o mică "perturbație" a valorii unui individ. De obicei, nu toți indivizii sunt aleși pentru aplicarea operatorilor genetici. Modul și ordinea în care se aplică operatorii genetici asupra indivizilor variază foarte mult. De exemplu, într-un algoritm genetic din populație sunt selectați indivizi în funcție de fitness-ul lor. Indivizii selectați sunt introduși într-o populație intermediară. Indivizii din această populație intermediară sunt supuși operatorilor genetici de încrucișare și mutație. Indivizii rezultați în urma acestor operații constituie "următoarea generație", adică o nouă populație care va fi din nou supusă selecției și anumit număr de generații. Metodele calculului evolutiv se numără printre aceste tehnici; ele folosesc algoritmi ale căror metode de căutare au ca model câteva fenomene naturale: moştenirea genetică şi lupta pentru supravieţuire. Cele mai cunoscute tehnici din clasa calculului evolutiv sunt algoritmii genetici, strategiile evolutive, programarea genetică şi programarea evolutivă. Există şi alte sisteme hibride care încorporează diferite proprietăţi ale paradigmelor de mai sus; mai mult, structura oricărui algoritm de calcul evolutiv este, în mare măsură, aceeaşi. Ín ultimii 30 de ani, s-a manifestat un mare interes în rezolvarea problemelor de sistem bazate pe principiile evoluţiei şi eredității. Astfel de sisteme menţin o populaţie de soluţii potenţiale, ele au unele procese de selecţie bazate pe fitness individual, şi câţiva operatori genetici. Un astfel de sistem este o clasa a evoluţiei strategice i.e, algoritmi care imita principiile evoluţiei naturale pentru problemele de optimizare de parametru(rechemberg, Schwefel). Evoluţia programării lui Fogel este o tehnica de căutare într-un spaţiu finit, mic de maşini. Tehnologiile de căutare a maşinii lui Glover Scatter menţin o populaţie de puncte de referinţă, generând o stare speciala prin greutatea combinaţiilor liniare. 9

11 Alte tipuri de sisteme evoluţionare sunt Holland s Genetic Algorithms. În 1990 Koza a propus un astfel de sistem evoluţional, genetic programming, pentru a căuta cel mai potrivit program de computer sa rezolve o problema particulara. Folosind un termen comun E.P pentru toate sistemele(incluzând sistemele descrise mai sus). Structura evoluţiei programului este arătat astfel: procedura algoritm_evolutiv t 0 creare P(t) evaluare P(t) cât timp nu condiţia de terminare t t + 1 selectare P(t) din P(t-1) modificare P(t) evaluare P(t) sfârşit sfârşit procedura În cele ce urmează voi explica algoritmul general propus mai sus. Evoluţia programului este un algoritm probabilistic ce conține elemente distincte, P(t)={x 1 t, x 2 t,...x n t}. Algoritmii evolutivi menţin o populaţie de indivizi la fiecare iteraţie t. O populaţie poate fi privită ca fiind un vector de valori. Fiecare element distinct reprezintă o soluție potenţială a problemei în cauza și în orice program, este interpretat ca S structura de date. Fiecare solutie x 1 t, x 2 t,.., x n t este evaluata pentru a da o oarecare măsura a fitness-ului său. Fiecare individ (element al vectorului) reprezintă o soluţie potenţială a problemei şi este implementată sub forma unei structuri de date S. Un individ este uneori numit şi cromozom. Fiecare soluţie este evaluată ca fiind o măsură a "fitness-ului" său (speranţei de viaţă). Acest fitness reprezintă calitatea individului. De obicei, cu cât individul este mai 10

12 promiţător, cu atât fitness-ul său este mai mare. Există unele probleme în cazul cărora fitness-ul trebuie să fie minimizat. O nouă populaţie (iteraţia t + 1) se formează prin selectarea mai multor potriviri individuale, alegând cei mai promiţători indivizi (pasul de selecţie) din populaţia curentă. O parte din membri populaţiei nou formate suferă transformări (pasul de modificare) prin operarea genetica a noilor soluții. Vorbim despre o transformare unica e evoluţiei programului. 11

13 2.1.2 Operatori genetici - calculul evolutiv Operatorii genetici sunt, de fapt, proceduri care operează asupra elementelor vectorului populaţie. Există doi operatori genetici principali: un operator unar mi de transformare numit mutaţie, care creează un nou individ printr-o mică modificare a unui individ ales (mi: S S); un operator mai puternic cj numit încrucişare, care creează noi indivizi combinând părţi din doi sau mai mulţi indivizi (cj: S... S S) (de cele mai multe ori se folosesc doi părinţi). După un anumit număr de generaţii algoritmul converge: se speră că cel mai promiţător individ ajunge la o valoare cât mai apropiată de soluţia optimă. În ciuda similarităţilor puternice între diferitele tehnici de calcul evolutiv, există şi multe diferenţe. Acestea sunt date, în principal, de structurile de date folosite pentru a reprezenta un individ şi de ordinea în care se aplică operatorii genetici. De exemplu, cele două linii din algoritmul de mai sus: 12 selectare P(t) din P(t-1) modificare P(t) pot apărea în ordine inversă: (în strategiile evolutive, întâi se modifică populaţia şi apoi este formată o nouă populaţie prin procesul de selecţie, in timp ce într-un algoritm genetic întâi se aplică selecţia, iar apoi intră în acţiune operatorii genetici de transformare). Decembrie Există, de asemenea, şi alte diferenţe între metode. Una dintre acestea ar fi cea referitoare la metodele de selecţie care includ: selecţia proporţională, unde şansa (probabilitatea) ca un individ să fie selectat este proporţională cu fitness-ul lui; metoda rangului, în care toţi indivizii din populaţie sunt sortaţi în funcţie de fitness, iar probabilitatea

14 (şansa) ca ei să fie selectaţi este fixată de întreg procesul de evoluţie(de exemplu, probabilitatea de selecţie a celui mai promiţător individ este 0.15, a individului următor este 0.14, etc.; cel mai promiţător individ are cea mai mare probabilitate şi suma totală a probabilităţilor indivizilor este1); selecţia prin turnir (prin concurs) unde un anumit număr de indivizi (de obicei doi) luptă pentru a fi selectaţi în noua generaţie. Această competiţie (turnir) este repetată până sunt selectaţi un număr de indivizi egal cu dimensiunea populaţiei. Pentru fiecare dintre aceste categorii de selecţie există şi alte detalii importante. Câteva exemple sunt: selecţia proporţională poate necesita folosirea unor metode de trunchiere; există diferite moduri pentru stabilirea probabilităţii în metoda rangului; dimensiunea mulţimii alese pentru concurs poate juca un rol semnificativ în metoda selecţiei prin turnir. Trecerea de la o generaţie la alta poate fi efectuată în două variante: algoritm generaţional (noua populaţie este formată doar din descendenţi ai vechii generaţii); algoritm non-generaţional (în noua populaţie sunt introduşi, de obicei, cei mai promiţători indivizi din cele două populaţii, cea a părinţilor şi cea a descendenţilor). Este posibil, de asemenea, să creăm puţini (în particular, unul singur) descendenţi, care înlocuiesc câţiva (cei mai puţin promiţători) indivizi. Ca o regulă generală trebuie reţinut faptul că, în majoritatea cazurilor, este de preferat să se utilizeze un model elitist, care păstrează cei mai promiţători indivizi dintr-o generaţie şi îi adaugă automat generaţiei următoare (aceasta înseamnă că, dacă cel mai promiţător individ din generaţia curentă este pierdut datorită selecţiei sau operatorilor genetici, sistemul forţează apariţia lui într-o generaţie următoare). Un astfel de model este 13

15 foarte folositor pentru rezolvarea multor probleme de optimizare. Totuşi, structurile de date folosite pentru probleme particulare, împreună cu o mulţime de operatori genetici, constituie componenta esenţială a oricărui algoritm evolutiv. Acestea sunt elementele cheie care ne permit să distingem între variatele paradigme ale metodelor evolutive. 14

16 2.2. Algoritmi genetici paradigme ale calculului evolutiv Algoritmii genetici utilizează un vocabular împrumutat din genetica naturala. Mulțimea punctelor de căutare păstrate de algoritm la un moment dat se numește populație, iar indivizii unei populații se numesc cromozomi. Cromozomii sunt alcatuiți din unități numite gene, aranjate într-o succesiune liniară; fiecare genă controlează moștenirea a una sau mai multe caractere. Unele gene pot fi plasate în anumite locuri ale cromozomului, numite locus iar valorile posibile pentru o gena formează setul de alele ale genei. Odată populația inițială creată, fiecare șir este evaluat și i se atribuie un fitness dat de o funcție f, numită funcția fitness=funcția de evaluare. Noțiunile de fitness și evaluare sunt folosite în general cu același sens; totuși se poate face o distincție între ele. Funcția de evaluare, sau funcția obiectiv, reprezintă o măsură a performanței în raport cu o mulțime de parametri, în timp ce funcția fitness transformă aceasta măsură a performanței în alocare de facilități reproductive. Evaluarea unui șir reprezentând o mulțime de parametri este independentă de evaluarea altor șiruri. Fitness-ul unui șir este, însă, definit în raport cu alți membri ai populației curente. Fitness-ul poate fi definit, de exemplu, prin f i /f unde f i este evaluarea asociata șirului i iar f este evaluarea medie a tuturor șirurilor populației. Funcția de evaluare si codificarea sunt, de obicei, singurele componente ale algoritmilor genetici care depind de problema de rezolvat. Un algoritm genetic, folosit pentru rezolvarea unei probleme de optimizare, poate fi privit ca o cutie neagra cu o serie de butoane de control reprezentând diverși parametri. Ieșirea cutiei negre este valoarea unei funcții indicând în ce măsură o anumită distribuție a parametrilor rezolva problema dată. In termeni tradiționali dorim să minimizăm (maximizam) o funcție F (x 1, x 2,..., x n ). De cele mai multe ori este imposibil de tratat independent fiecare parametru. Apariția interacțiunilor face necesara considerarea efectelor combinate ale parametrilor in vederea optimizării cutiei negre. 15

17 In limbajul algoritmilor genetici, interacțiunea dintre variabile este numita epistasis. Variabilele reprezentând parametrii sunt, de obicei, codificate prin șiruri binare, dar există si alte codificări: numere întregi, numere reale, codul Gray, codificare alfabetica, arbori. Condițiile pe care trebuie să le îndeplinească o reprezentare buna sunt: independenta relativa a genelor, includerea a cat mai multe restricții ale problemei direct în reprezentare, complexitate scăzută a decodificări/codificării cromozomilor. Rezolvarea problemelor de codificare este considerata, de obicei, ca parte a construcției funcției de evaluare. Funcția de evaluare este parte a descrierii problemei. Precizarea funcției de evaluare poate implica o simulare si poate fi aproximativa sau parțială. De exemplu, sa consideram o problema de control optimal, în care mulțimea stărilor în care se poate afla sistemul poate fi exponențial de mare. Folosirea unui algoritm genetic pentru găsirea unei strategii optime de control presupune reducerea spațiului stărilor (prin eșantionare) și, astfel, evaluarea realizată este aproximativă și afectata de perturbații. Funcția de evaluare trebuie sa fie ușor de calculat având in vedere ca fiecare generație trebuie evaluata; deci funcția de evaluare este apelata de foarte multe ori. Exista o mare clasa a problemelor interesante pentru care încă nu au fost dezvoltați algoritmi rapizi. Multe dintre acestea sunt probleme sunt probleme optimizate care intervin frecvent în aplicații. Dându-se o problema prost optimizată este posibil mereu sa găsim un algoritm eficient a cărui soluţie este aproximativ optimala. Pentru unele probleme prost optimizate putem folosi algoritmi probabilistici: -acești algoritmi nu garantează valoarea optima, dar prin alegeri aleatoare, suficient de multe slăbiciuni a erorilor pot fi făcute astfel încât sa putem trece peste ele. Exista multe probleme importante practic optimizate pentru care asemenea algoritmi, de o înalta calitate, devenind disponibili. În orice caz 16

18 putem aplica simultan rularea mai multe fire de execuţie si competenta amplasării problemelor VLSI design pentru problemele gen agent comercial. In plus multe alte probleme aparținând unei game largi de probleme optimizate combinatorial pot fi rezolvate aproximativ în ziua de astăzi prin computer de genul tehnicilor Monte Carlo. Ín general, orice proces abstract pentru a fi îndeplinit poate fi gândit ca o rezolvare a problemei, care, in schimb, poate fi perceputa ca o căutare prin spațiul soluțiilor potențiale. Cum suntem in căutarea celei mai bune soluții, putem privi aceasta sarcina ca un proces optimizat. Pentru spatiile mici, metodele clasice executive sunt suficiente; pentru spaţiile largi tehnica speciala a inteligenţei artificiale trebuie sa fie luata in vedere. Algoritmii genetici sunt printre aceste tehnici; ei sunt algoritmi stohastici a căror metode de căutare modelează unele fenomene naturale. Ideea in spatele algoritmilor genetici este de a face ceea ce natura face. Începuturile algoritmilor genetici se situează undeva în jurul anului 1950, când mai mulţi biologi au folosit calculatoarele pentru simularea sistemelor biologice. Rezultatele muncii au început să apară după 1960, când la Universitatea din Michigan, sub directa îndrumare a lui John Holland, algoritmii genetici au apărut în forma în care sunt cunoscuţi astăzi. După cum sugerează şi numele, algoritmii genetici folosesc principii din genetica naturală. Câteva principii fundamentale ale geneticii sunt împrumutate şi folosite artificial pentru a construi algoritmi de căutare care sunt robuşti şi cer informaţii minime despre problemă. Algoritmii genetici au fost inventaţi folosind modelul procesului de adaptare. Ei operează, în principal, cu şiruri binare şi folosesc un operator de recombinare şi unul de mutaţie. Prin mutaţie se schimbă un element (genă) dintr-un cromozom, iar prin încrucişare se schimbă material genetic între doi părinţi; dacă părinţii sunt reprezentaţi prin şiruri de cinci biţi, de exemplu (0, 0, 0, 0, 0) şi (1, 1, 1, 1,1), încrucişarea celor doi vectori poate 17

19 duce la obţinerea descendenţilor (0, 0, 1, 1, 1) şi (1, 1, 0, 0, 0)(acesta este un exemplu al aşa-numitei încrucişări cu un punct de tăietură). Fitness-ul unui individ este atribuit proporţional cu valoarea funcţiei criteriu corespunzătoare individului; indivizii sunt selectaţi pentru generaţia următoare pe baza fitness-ului lor. Vom ilustra modul de lucru al algoritmilor genetici cu ajutorul unei probleme simple: proiectarea unei cutii de conserve. Considerăm o cutie de conserve cilindrică, cu numai doi parametri: diametrul d şi înălţimea h (evident, pot fi consideraţi şi alţi parametri, cum ar fi grosimea, proprietăţi ale materialului, forma, dar sunt suficienţi doar cei doi parametri pentru a ilustra lucrul cu algoritmii genetici). Să considerăm că această conservă trebuie să aibă un volum de cel puţin 300 ml şi obiectivul proiectului este de a minimiza costul materialului folosit la fabricarea conservei. Putem formula problema noastră astfel: să se minimizeze valoarea funcţiei unde c reprezintă costul materialului conservei per cm2, iar expresia din paranteză reprezintă suprafaţa conservei. Funcţia f se mai numeşte şi funcţie criteriu (sau funcţie obiectiv). Mai trebuie îndeplinită şi condiţia ca volumul cutiei să fie cel puţin 300 ml şi vom formula aceasta astfel: Parametrii d şi h pot varia între anumite limite: dmin d dmax şi hmin h hmax. 18

20 Reprezentarea soluţiei Primul pas în utilizarea unui algoritm genetic este stabilirea unei codificări a problemei. Codificarea binară este cea mai obişnuită dintre tehnicile de codificare; ea este simplu de manipulat şi conferă robusteţe problemei. Reprezentarea binară poate codifica aproape orice situaţie, iar operatorii nu includ cunoştinţe despre domeniul problemei. Este motivul pentru care un algoritm genetic se poate aplica unor probleme foarte diferite. Ín cazul codificării binare, fiecare valoare se reprezintă printr-un şir de lungime specificată care conţine valorile 0 şi 1. Ín anumite situaţii este necesar să utilizăm codificarea "naturală" a problemei, în locul reprezentării binare. Un exemplu de codificare naturală ar fi codificarea reală, care utilizează numere reale pentru reprezentare. Pentru a folosi algoritmii genetici la găsirea unor valori optime pentru parametri d şi h, care să satisfacă condiţia prezentată sub forma funcţiei g şi care să minimizeze funcţia f, vom avea în primul rând nevoie de reprezentarea valorilor parametrilor în şiruri binare (vom folosi, aşadar, o codificare binară a problemei). Algoritmii genetici nu ne impun numai valori întregi dintr-un anumit inteval; în general, putem folosi orice altă valoare întreagă sau reală, prin schimbarea lungimii şirului binar 19

21 2.2.1 Atribuirea fitness-ului Am afirmat anterior că algoritmii genetici lucrează cu şiruri de biţi reprezentând valorile parametrilor şi nu cu parametrii înşişi. După ce a fost creat un nou şir (o nouă soluţie) prin operatori genetici, trebuie să-l evaluăm. În majoritatea cazurilor, fitness-ul este chiar valoarea funcţiei criteriu pentru soluţia respectivă. Dacă obiectivul nostru este de a minimiza funcţia criteriu, atunci vom spune că o soluţie este mai bună decât alta, dacă fitness-ul celei de-a doua este mai mare Structura unui algoritm genetic Vom descrie în continuare structura algoritmilor genetici. Pentru început vom stabili următoarele: cromozomii utilizaţi au lungime constantă; populaţia (generaţia) P(t + 1) de la momentul t + 1 se obţine reţinând toţi descendenţii populaţiei P(t) şi ştergând ulterior cromozomii generaţiei precedente (P(t)); numărul cromozomilor este constant. Putem prezenta acum structura algoritmului genetic fundamental: Pasul 1: t 0. Pasul 2: Se iniţializează aleator populaţia P(t). Pasul 3: Se evaluează cromozomii populaţiei P(t). Ín acest scop se utilizează o funcţie de performanţă ce depinde de problemă. Pasul 4: Cât timp nu este îndeplinită condiţia de terminare se execută paşii 20

22 următori: Pasul 4.1: Se selectează cromozomii din P(t) care vor contribui la formarea noii generaţii. Fie P1 mulţimea cromozomilor selectaţi (P1 reprezintă o populaţie intermediară). Pasul 4.2: Se aplică cromozomilor din P1 operatorii genetici. Cei mai utilizaţi sunt operatorii de mutaţie şi încrucişare. În funcţie de problemă se pot alege şi alţi operatori (inversiune, reordonare, operatori speciali). Fie P2 populaţia astfel obţinută (descendenţii populaţiei P(t)). Se şterg din P1 părinţii descendenţilor obţinuţi. Cromozomii rămaşi în P1 sunt incluşi în populaţia P2. Se construieşte noua generaţie, astfel: P(t + 1) P2; se şterg toţi cromozomii din P(t); se execută atribuirea t t + 1; se evaluează P(t). Condiţia de terminare se referă, de regulă, la atingerea numărului de generaţii specificate. Dacă numărul maxim admis de generaţii este N, atunci condiţia de oprire este t > N. Se admite că rezultatul algoritmului este dat de cel mai promiţător individ din ultima generaţie. Ín realitate, nimic nu ne garantează că un individ mai performant nu a fost obţinut într-o generaţie anterioară. De aceea, este normal ca la fiecare pas (la fiecare generaţie t) să reţinem cel mai promiţător individ care a fost generat până atunci. Acest proces se numeşte elitism. 21

23 2.2.3 Selecţia Un rol important în cadrul unui algoritm genetic îl ocupă operatorul de selecţie. Acest operator decide care dintre indivizii unei populaţii vor putea participa la formarea populaţiei următoare. Scopul selecţiei este de a asigura mai multe şanse de reproducere celor mai performanţi indivizi dintr-o populaţie dată. Prin selecţie se urmăreşte maximizarea performanţei indivizilor. În continuare vom prezenta succint cele mai importante mecanisme de selecţie. Selecţia proporţională În cazul selecţiei proporţionale, probabilitatea de selecţie a unui individ depinde de valoarea performanţei acestuia. Să presupunem că avem o mulţime de cromozomi x 1, x 2,, x n. Pentru fiecare cromozom x i vom calcula performanţa sa f(x i ). Se impune condiţia ca f(x i ) 0. Suma performanţelor tuturor cromozomilor din populaţie va constitui performanţa totală şi o vom nota cu F. Selecţia bazată pe ordonare Această modalitate de selecţie constă în a calcula (pentru fiecare generaţie) valorile funcţiei de fitness şi de a aranja indivizii în ordinea descrescătoare a acestor valori. Se va atribui fiecărui individ i o probabilitate de selecţie pi care depinde de rangul său în şirul stabilit. Probabilităţile depind acum doar de poziţia cromozomului. Cel mai promiţător individ are probabilitatea 1. 22

24 Selecţia prin concurs Selecţia prin concurs sau selecţia turnir se bazează pe compararea directă a câte doi cromozomi şi selectarea celui mai performant. Operaţiile implicate sunt următoarele: se aleg în mod aleator doi cromozomi; se calculează performanţele cromozomilor selectaţi; cromozomul mai performant este selectat (copiat în populaţia intermediară asupra căreia se aplică operatorii genetici). Alte mecanisme de selecţie Un alt tip de selecţie este selecţia elitistă. În acest caz, la fiecare generaţie se păstrează cel mai promiţător sau cei mai promiţători indivizi. O altă idee ar fi ca, la fiecare generaţie, să fie înlocuită doar o parte restrânsă a populaţiei Operatorii genetici Descriu în continuare operatorii genetici folosiţi, de obicei, într-un algoritm genetic. Operatorul de reproducere Rolul operatorului de reproducere este de a menţine soluţiile promiţătoare din populaţie şi de a le elimina pe cele mai puţin promiţătoare, păstrând constantă dimensiunea populaţiei. Aceasta se realizează astfel: 23

25 se identifică soluţiile promiţătoare din populaţie; se creează mai multe copii ale soluţiilor promiţătoare; se elimină soluţiile mai puţin promiţătoare din populaţie astfel încât multiplele copii ale soluţiilor promiţătoare să poată fi plasate în populaţie. Există mai multe moduri de a realiza acest lucru. Cele mai uzuale metode sunt selecţia proporţională, selecţia prin turnir şi selecţia prin ordonare. Este uşor de observat că soluţiile promiţătoare au mai mult de o copie în populaţia intermediară Operatorul de încrucişare Operatorul de încrucişare este aplicat asupra indivizilor din populaţia intermediară. Ín exemplul nostru, va fi aplicat asupra reprezentării binare a celor şase elemente pe care le avem în populaţia intermediară. Operatorul de încrucişare acţionează în felul următor: sunt aleşi aleator doi indivizi din populaţia intermediară (care se mai numeşte şi piscină de încrucişare) şi anumite porţiuni din cei doi indivizi sunt interschimbate. Operatorul imită încrucişarea intercromozomială naturală.de regulă, se utilizează operatori de încrucişare de tipul (2, 2), adică doi părinţi dau naştere la doi descendenţi. Încrucişarea realizează un schimb de informaţie între cei doi părinţi. Descendenţii obţinuţi prin încrucişare vor avea caracteristici ale ambilor părinţi. Dată fiind importanţa majoră a încrucişării, au fost propuse mai multe modele de încrucişare. Vom enumera aici câteva dintre cele utilizate atunci când se foloseşte codificarea binară. 24

26 Încrucişarea cu un punct de tăietură Fie r lungimea cromozomilor. Un punct de tăietură este un număr întreg k {1, 2,..., r - 1}. Numărul k indică poziţia din interiorul cromozomului unde secvenţa cromozomială se rupe pentru ca segmentele obţinute să se recombine cu alte segmente provenite de la alţi cromozomi. Considerăm doi cromozomi: x=x 1 x 2...x k x k+1...x r şi y = y 1 y 2...y k y k+1...y r. Ín urma recombinării se schimbă între cei doi cromozomi secvenţele aflate în dreapta punctului de tăietură k. Cromozomii fii vor fi: x' = x 1 x 2...x k y k+1...y r şi y' = y 1 y 2...y k x k+1...x r. De exemplu, dacă avem o reprezentare mai sugestivă a celor doi cromozomi: descendenţii vor fi: 25

27 Încrucişarea cu mai multe puncte de tăietură Ín cazul utilizării mai multor puncte de tăietură, segmentele obţinute se combină după o regulă dată. Considerăm încrucişarea cu două puncte de tăietură. Acest tip de încrucişare se realizează conform schemei de mai jos. Din cromozomii: vor rezulta doi descendenţi de tipul: În cazul a trei puncte de tăietură, descendenţii vor fi de forma : Revenind la exemplul nostru, vom considera încrucişarea cu un singur punct de tăietură. De exemplu, din încrucişarea a două soluţii reprezentate prin cutia care are fitness-ul 23, h = 8 şi d = 10, respectiv cutia cu fitness-ul 26, h = 14 şi d = 6, vor rezulta doi descendenţi care vor avea fitness-ul 22, h = 10 şi d= 6, respectiv fitness-ul 38, h = 12 şi d = 10 după modelul de mai jos: Trebuie reţinut faptul că încrucişarea nu generează descendenţi aleatori. Deşi 26

28 este improbabil ca fiecare încrucişare între două soluţii din populaţie să genereze soluţii fii mai promiţătoare decât soluţiile părinte, totuşi în scurt timp devine clar că şansa de a crea soluţii mai promiţătoare este mai mare decât în cazul căutării aleatoare. Din încrucişarea cu un singur punct de tăietură a unei perechi de şiruri binare, se pot crea doar două şiruri pereche diferite care vor avea în componenţă biţi combinaţi din ambii părinţi; soluţiile fiu create sunt, probabil, şiruri cel puţin la fel de promiţătoare. Prin urmare, nu fiecare încrucişare poate crea soluţii la fel de promiţătoare, dar nu vor fi mai puţin promiţătoare decât părinţii. Dacă a fost obţinută o soluţie mai puţin promiţătoare, atunci aceasta nu va mai apărea când se va aplica următorul operator de reproducere şi astfel va avea o viaţă scurtă. Dacă este creată o soluţie mai promiţătoare, atunci este probabil ca ea să aibă mai multe copii la următoarea aplicare a operatorului de reproducere. Pentru a păstra o astfel de selecţie a şirurilor promiţătoare în timpul aplicării operatorului de reproducere, nu toate şirurile din populaţie sunt folosite pentru încrucişare. Operatorul de mutaţie Operatorul de încrucişare este, în principal, responsabil cu aspectul de căutare al algoritmilor genetici, în timp ce operatorul de mutaţie este folosit pentru alte scopuri. Mutaţia este cel de-al doilea operator genetic în ordinea importanţei şi folosirii sale. Efectul acestui operator este schimbarea valorii unei singure poziţii dintr-un cromozom. Prin mutaţie se introduc în populaţie indivizi care nu ar fi putut fi obţinuţi prin alte mecanisme. Operatorul de mutaţie acţionează asupra biţilor indiferent de poziţia lor în cromozom. Fiecare bit al cromozomului poate suferi o mutaţie. Într-un cromozom pot exista, aşadar, mai multe poziţii care suferă o mutaţie. Mutaţia este un operator probabilist (adică nu se aplică cu 27

29 siguranţă). Considerăm o populaţie de n indivizi (cromozomi), fiecare având lungimea r. Fiecare bit are aceeaşi probabilitate pm de a suferi mutaţia. Există mai multe variante ale operatorului de mutaţie. Una dintre ele ar fi mutaţia în forma tare. În această situaţie se procedează în felul următor: se generează un număr aleator q în intervalul [0, 1). Dacă q < pm, atunci se execută mutaţia poziţiei respective schimbând 0 în 1 sau 1 în 0. Ín caz contrar, poziţia respectivă nu se schimbă. Revenind la exemplul nostru, dacă aplicăm operatorul de mutaţie unei soluţii obţinute în urma procesului de încrucişare, şi anume soluţiei care are fitness-ul 22, vom obţine o altă soluţie care va avea fitness-ul 16. Soluţia obţinută este mai promiţătoare decât soluţia originală. Ín consecinţă, operatorul de reproducere selectează cele mai promiţătoare şiruri, operatorul de încrucişare combină subşiruri din două şiruri promiţătoare pentru a forma şiruri mai promiţătoare, iar operatorul de mutaţie schimbă şirurile local, de asemenea, pentru a îmbunătăţi soluţia. 28

30 2.3. Strategii evolutive Strategiile evolutive au fost dezvoltate ca metode de rezolvare pentru problemele de optimizare a parametrilor. Prima strategie evolutivă a fost bazată pe o populaţie constând dintr-un singur individ. De asemenea, este folosit un singur operator în procesul de evoluţie: mutaţia. Aceasta este în concordanţă cu conceptul biologic potrivit căruia modificări mici au loc mai frecvent decât o modificare mare. De obicei această strategie conform căreia un părinte dă naştere prin mutaţie unui singur descendent este cunoscută sub numele de strategie evolutivă Felul în care se aplică practic acest algoritm este simplu: se generează o soluţie aleatoare pe domeniul de căutare şi se efectuează mutaţii asupra ei. Este acceptat cel mai bun dintre părinte şi descendent. Operatorul de mutaţie se aplică repetat până când se ajunge la soluţie. Un alt tip de strategie este strategia ( + ): părinţi produc descendenţi. Noua populaţie (temporară) de ( + ) indivizi este redusă din nou - printr-un proces de selecţie - la indivizi. Pe de altă parte, in strategia (, ), indivizi produc descendenţi ( > ) şi prin procesul de selecţie se alege o nouă populaţie de indivizi numai din mulţimea celor descendenţi. Astfel, viaţa fiecărui individ este limitată la o generaţie. 29

31 2.3.1 Programare evolutivă Tehnicile programării evolutive originale au fost dezvoltate de Lawrence Fogel. El urmărea o dezvoltare a inteligenţei artificiale în sensul dezvoltării abilităţii de a prezice schimbările într-un mediu înconjurător. Mediul înconjurător a fost descris ca o secvenţă de simboluri, iar evoluarea algoritmului presupunea obţinerea unui nou produs, şi anume a unui nou simbol. Simbolul obţinut va maximiza funcţia finală care măsoară acurateţea predicţiei. De exemplu, putem considera o serie de evenimente notate a 1, a 2,..., a n ; un algoritm va determina următorul simbol (an+1), bazându-se pe simbolurile cunoscute a1, a2,..., an. Ideea care stă la baza programării evolutive este de a evolua un algoritm. Ca şi în strategiile evolutive, şi în tehnica programării evolutive se creează mai întâi descendenţii şi apoi se vor selecta indivizii pentru generaţia următoare. Fiecare părinte produce un singur descendent; deci dimensiunea populaţiei intermediare se dublează (ca în strategia evolutivă (n, n), unde n este dimensiunea populaţiei). Descendentul este creat printr-o mutaţie aleatoare a părintelui (este posibil să se aplice mai mult de o mutaţie unui individ). Un număr de indivizi (cei mai promiţători) egal cu dimensiunea populaţiei sunt reţinuţi pentru noua generaţie. Ín versiunea originală acest proces este repetat până se obţine un nou simbol care este disponibil. După ce s-a obţinut un nou simbol, acesta este adăugat listei simbolurilor cunoscute şi întregul proces se repetă. Recent, tehnicile de programare evolutivă au fost folosite pentru rezolvarea problemelor de optimizare numerică precum şi în numeroase alte scopuri. 30

32 2.3.2 Programarea genetică O altă abordare interesantă a fost descoperită relativ recent de John Koza. Koza sugerează că programul dorit va evolua el însuşi pe parcursul unui proces de evoluţie. Cu alte cuvinte, în loc de a rezolva o problemă şi în loc de a construi un program evolutiv care să rezolve problema, vom încerca să găsim un cod sursă care să o rezolve. Koza a dezvoltat o nouă metodologie care furnizează un mod de a efectua această căutare. De exemplu, se doreşte obţinerea unui program Pascal sau C++ care să rezolve problema drumului hamiltonian sau problema ieşirii dintr-un labirint. Deci, nu ne interesează să obţinem o soluţie pentru un set oarecare de date, ci, mai degrabă, ne interesează să obţinem un program sursă care să genereze o soluţie corectă pentru orice intrare dată. Cu alte cuvinte, ne interesează să obţinem ca rezultat un program asemănător cu cel pe care l-am fi putut scrie noi dacă am fi ştiut să rezolvăm problema. Din punct de vedere evolutiv abordarea unor astfel de probleme se face generând o mulţime (populaţie) aleatoare de coduri sursă care apoi sunt selectate pe baza funcţiei de fitness şi evoluate cu ajutorul unor operatori genetici specifici. Ín primul rând trebuie să atribuim o funcţie de calitate (funcţia fitness) fiecărui program generat. Această funcţie de fitness trebuie să reflecte performanţele programului căruia îi este ataşată. De obicei ataşarea unei funcţii de fitness se face rulând programul respectiv şi măsurând calitatea soluţiei în raport cu o soluţie care se cunoaşte a fi optimă. Un program va avea o calitate mai mare dacă soluţia generată va fi mai asemănătoare cu cea a soluţiei corecte. Nu este grav dacă o soluţie optimă nu se cunoaşte anterior, deoarece noi dorim să obţinem soluţii cu un fitness cât mai mare (sau cât mai mic). 31

33 Evoluarea programelor sursă se realizează prin operatori genetici specifici. De exemplu, un operator de recombinare poate însemna alipirea secvenţelor dintr-un cod sursă cu secvenţe din alt cod sursă. Un operator de mutaţie ar putea însemna inserarea de noi instrucţiuni în codul sursă, ştergerea de instrucţiuni, transformarea de instrucţiuni. Evident, în urma aplicării acestor operatori genetici se generează cod sursă care conţine greşeli de sintaxă. De asemenea, sunt generate secvenţe de cod sursă nefolositoare. Exemple în acest sens sunt secvenţa de instrucţiuni: i := i + 1; i := i - 1; sau secvenţa: a := 0; b := c / a; De obicei, se evoluează reprezentări mai simple ale programelor de calculator şi anume reprezentările arborescente. Există limbaje de programare (de exemplu LISP) în care programele sunt scrise sub forma unor liste uşor transformabile în arbori. 32

34 Aplicatie În cele ce urmează voi prezenta rezolvarea unei probleme folosind algoritmii genetici: Enunţ: (Submulţime de sumă dată) Se consideră o mulţime M de n numere şi un număr S. Să se determine o submulţime a mulţimii. M care are suma elementelor cât mai apropiată de numărul S. Rezolvare Determinarea unei submulţimi de sumă dată este o problemă NP-completă Aceasta înseamnă că nu se ştie dacă există sau nu un algoritm de complexitate polinomială pentru rezolvarea acestei probleme. Până în prezent, algoritmii folosiţi au complexitate exponenţială, iar pentru anumite cazuri particulare au complexitate pseudopolinomială. De exemplu, putem rezolva rezonabil această problemă, dacă datele de intrare îndeplinesc următoarele condiţii: sunt cel mult 100 de numere naturale; suma numerelor nu depăşeşte 500 (mai exact, produsul dintre numărul numerelor şi suma acestora nu trebuie să depăşească dimensiunea maximă admisă pentru alocarea unei matrice (presupunem că aceasta este alocată static). Dacă aceste condiţii ar fi îndeplinite am putea rezolva uşor această problemă prin metoda programării dinamice, folosind un algoritm de complexitate O(n S) ). Însă, dacă numerele nu ar fi întregi ci reale, sau suma lor ar fi mai mare decât 500, sau diferenţele între ele ar fi mari etc., 33

35 atunci algoritmul prin programare dinamică nu mai poate fi folosit. Am enumerat aici doar cazurile importante, dar pot fi imaginate şi alte dificultăţi. Din aceste motive vom rezolva această problemă cu ajutorul unui algoritm genetic. Va trebui să găsim o reprezentare a soluţiei şi, de asemenea, o funcţie de fitness. Modul în care vom reprezenta soluţia ne este dat chiar în enunţul problemei: se cere o submulţime a unei mulţimi M cu n elemente. Deci, o soluţie a problemei este o submulţime. Vom codifica o submulţime printr-un şir de lungime n care conţine doar valorile 0 şi 1. Dacă o poziţie k va avea valoarea 1, atunci submulţimea respectivă va conţine elementul Mk (al k-lea element din mulţimea M), iar dacă pe poziţia k este valoarea 0, atunci elementul respectiv nu aparţine submulţimii. Această reprezentare a unei submulţimi este specifică tipului set din Turbo Pascal. Modul de calcul al fitness-ului (calităţii) unei soluţii (submulţimi) este simplu. Calculăm suma elementelor submulţimii, iar fitness-ul va fi diferenţa (în valoare absolută) dintre suma obţinută şi numărul dat S. Ín aceste condiţii fitness-ul va trebui minimizat, deoarece noi dorim să determinăm o submulţime pentru care suma elementelor este cât mai apropiată de valoarea dată S. Structura algoritmului genetic propus pentru rezolvarea acestei probleme a fost prezentată mai sus. Vom folosi selecţia turnir pentru obţinerea populaţiei intermediare. Operatorii genetici folosiţi sunt specifici codificării binare (încrucişare cu un singur punct de tăietură, mutaţie cu probabilitate pm=0.1). 34

36 2.4 Sisteme hibride Așa cum am mai precizat, algoritmi genetici sunt o familie de modele inspirate de teoria evoluţiei, sunt programe inteligente capabile să soluţioneze probleme folosind un conceptul al evoluţiei speciilor. Aceşti algoritmi codifică soluţiile posibile ale unor probleme specifice într-o structură de date de tip cromozom şi aplică acestor structuri operatori de recombinare, pentru a păstra informaţia utilă. Un cromozom este un vector sau un şir de gene. Poziţia unei gene este numită locusul ei. Valorile pe care le poate lua o genă sunt numite alele, sunt mulţimi finite de numere întregi, intervale de numere reale, sau chiar structuri complexe de date. Alele variază de la un locus la altul. Sarcina unui algoritm genetic e să descopere cromozomi din ce în ce mai buni, până la atingerea unei valori a raportului dintre evaluarea asociată unui şir şi evaluarea medie a tuturor şirurilor populaţiei (fitness) despre care se ştie că este optimală, sau până când algoritmul genetic nu mai poate aduce îmbunătăţiri. Implementarea unui algoritm genetic începe cu o populaţie de cromozomi (aleasă aleator). Se evaluează, apoi, aceste structuri şi se alocă facilităţi reproductive astfel încât acei cromozomi, care reprezintă o soluţie mai bună pentru problema ţintă, să aibă mai multe şanse de a se reproduce decât acei cromozomi care sunt soluţii mai puţin bune. Definirea unei soluţii bune se face în raport cu populaţia curentă. Într-un sens mai larg, algoritm genetic este orice model bazat pe ideea de populaţie şi care foloseşte selecţie şi operatori de recombinare pentru a genera noi puncte într-un spaţiu de căutare. Multe modele au fost introduse de cercetători dintr-o perspectivă experimentală. Cercetătorii sunt orientaţi spre aplicaţii, fiind interesaţi de algoritmii genetici doar ca mijloace de optimizare. 35

37 Ei sunt recomandaţi pentru aflarea soluţiilor neliniare ale unor probleme atunci când nu este posibilă modelarea matematică şi nici euristică în domeniu. Adevăraţii profesionişti combină adesea cele mai variate tehnologii inteligente în scopul exploatării avantajelor fiecăreia, obţinând aşa-numitele sisteme hibride. Sunt posibile combinări de genul: 1. folosirea reţelelor neuronale la ajustarea parametrilor în sistemele expert fuzzy, 2. extragerea cunoaşterii din reţele neuronale pentru a fi utilizată în sistemele expert, 3. folosirea algoritmilor genetici la crearea unor reţele neuronale mai compacte şi mai eficiente, 4. folosirea unei reţele neuronale pentru asistarea funcţionării unui algoritm genetic, 5. folosirea algoritmilor genetici la reglarea parametrilor unui sistem expert fuzzy pentru controlul proceselor, 6. îmbunătăţirea performanţei unui sistem expert prin încorporarea raţionamentului bazat pe cazuri, etc. Asemenea cercetări sunt în prezent în mare vogă în cele mai specializate laboratoare ale lumii ştiinţifice. Câteva subiecte ale conceptelor de bază : probleme de optimizare - doar două componente principale sunt dependente de problema de rezolvat : codificarea şi funcţia de evaluare. Scopul este de a fixa parametrii în aşa fel încât ieşirea să fie optimă. Variabilele desemnând parametrii sunt reprezentaţi prin şiruri binare iar funcţia de evaluare este parte a descrierii problemei. algoritmul genetic canonic constă în generarea populaţiei iniţiale. Se aplică 36

38 acestei populaţii selecţia pentru a obţine o populaţie intermediară. Apoi se aplică recombinarea şi mutaţii pentru a crea o populaţie următoare (next population). Acest proces de trecere de la populaţia curentă la populaţia următoare reprezintă o generaţie în execuţia unui algoritm genetic. selecţia hiperplanelor nu este afectată de extremele locale. Creşterea ratei de selecţie a hiperplanelor peste medie nu garantează convergenţa către un optim global, ce ar putea fi un vârf relativ izolat. teorema schemei furnizează o margine inferioară a schimbării ratei de selecţie pentru un singur hiperplan de la generaţia t la generaţia t+1. alfabetele binare utilizarea lor va rezulta în urma unor calcule simple. Un alfabet minimal maximizează numărul de hiperplane utilizabile pentru codificarea procesării critica teoremei schemei inexactitatea inegalităţii face ca încercarea de a prezice pe baza teoremei reprezentarea unui anumit hiperplan de-a lungul generaţiilor, să fie fără succes Aplicaţii ale algoritmilor genetici Algoritmii genetici reprezintă o metodă cu care pot fi atacate relativ uşor probleme dificile de optimizare sau control, cu rezultate bune sau chiar optimale. Când se vorbeşte de aplicarea unei idei din software, se referă în general la un prototip care arată cum ar putea fi folosită respectiva idee într-un domeniu practic. Un exemplu îl constituie sistemul care funcţionează la instalaţia de maleabilizare a unui laminor de platbande de oţel, unde operatorul unei macarale 37

Calculul evolutiv contine paradigmele optimizarii si clasificarii cu masini instruibile (machine learning), care se bazeaza pe mecanisme evolutive:

Calculul evolutiv contine paradigmele optimizarii si clasificarii cu masini instruibile (machine learning), care se bazeaza pe mecanisme evolutive: Paradigme ale CE Calculul evolutiv contine paradigmele optimizarii si clasificarii cu masini instruibile (machine learning), care se bazeaza pe mecanisme evolutive: genetica biologica, selectia naturala

More information

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

Metoda de programare BACKTRACKING

Metoda de programare BACKTRACKING Metoda de programare BACKTRACKING Sumar 1. Competenţe............................................ 3 2. Descrierea generală a metodei............................. 4 3......................... 7 4. Probleme..............................................

More information

I. STRATEGII ÎN REZOLVAREA PROBLEMELOR

I. STRATEGII ÎN REZOLVAREA PROBLEMELOR I. STRATEGII ÎN REZOLVAREA PROBLEMELOR Goldstein și Levin (987) au definit rezolvarea problemelor ca fiind procesul cognitiv de ordin înalt care necesită modulația și controlul mai multor capacități /

More information

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

Restaurarea frontierelor unei imagini: abordare genetica

Restaurarea frontierelor unei imagini: abordare genetica 8 Revista Informatica Economica, nr./999 Restaurarea frontierelor unei imagini: abordare genetica Prof.dr. Luminita STATE, Universitatea Pitesti Conf.dr. Doina FUSARU, Universitatea Spiru Haret Bucuresti

More information

INTELIGENŢĂ ARTIFICIALĂ

INTELIGENŢĂ ARTIFICIALĂ UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică INTELIGENŢĂ ARTIFICIALĂ Rezolvarea problemelor de căutare Strategii de căutare informată locală Algoritmi Evolutivi Laura Dioşan Sumar

More information

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci. O condiţie necesară şi suficientă ca un număr să fie număr Fibonacci Autor: prof. Staicu Ovidiu Ninel Colegiul Economic Petre S. Aurelian Slatina, jud. Olt 1. Introducere Propuse de Leonardo Pisa în 1202,

More information

Managementul Proiectelor Software Metode de dezvoltare

Managementul Proiectelor Software Metode de dezvoltare Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Managementul Proiectelor Software Metode de dezvoltare 2 Metode structurate (inclusiv metodele OO) O mulțime de pași și

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

INSTRUMENTE DE MARKETING ÎN PRACTICĂ: INSTRUMENTE DE MARKETING ÎN PRACTICĂ: Marketing prin Google CUM VĂ AJUTĂ ACEST CURS? Este un curs util tuturor celor implicați în coordonarea sau dezvoltarea de campanii de marketingși comunicare online.

More information

Olimpiad«Estonia, 2003

Olimpiad«Estonia, 2003 Problema s«pt«m nii 128 a) Dintr-o tabl«p«trat«(2n + 1) (2n + 1) se ndep«rteaz«p«tr«telul din centru. Pentru ce valori ale lui n se poate pava suprafata r«mas«cu dale L precum cele din figura de mai jos?

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

Update firmware aparat foto

Update firmware aparat foto Update firmware aparat foto Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încredere că puteţi realiza acest update cu succes, acesta

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE

ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE Mihaela NOVAC 1, Ecaterina VLADU 1, Ovidiu NOVAC 1, Adriana GRAVA 1 1 Universitatea din Oradea, Facultatea

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip Mods euro truck simulator 2 harta romaniei by elyxir Mods euro truck simulator 2 harta romaniei by elyxir.zip 26/07/2015 Download mods euro truck simulator 2 harta Harta Romaniei pentru Euro Truck Simulator

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB Grafuri bipartite Lecție de probă, informatică clasa a XI-a Mihai Bărbulescu b12mihai@gmail.com Facultatea de Automatică și Calculatoare, UPB Colegiul Național de Informatică Tudor Vianu București 27 februarie

More information

R O M Â N I A CURTEA CONSTITUŢIONALĂ

R O M Â N I A CURTEA CONSTITUŢIONALĂ R O M Â N I A CURTEA CONSTITUŢIONALĂ Palatul Parlamentului Calea 13 Septembrie nr. 2, Intrarea B1, Sectorul 5, 050725 Bucureşti, România Telefon: (+40-21) 312 34 84; 335 62 09 Fax: (+40-21) 312 43 59;

More information

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE BOBST EXPERTFOLD 80 ACCUBRAILLE GT Utilajul ACCUBRAILLE GT Bobst Expertfold 80 Aplicarea codului Braille pe cutii a devenit mai rapidă, ușoară și mai eficientă

More information

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. I. SCOPUL LUCRĂRILOR Lucrările prezintă reprezentarea

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

Curs 1 17 Februarie Adrian Iftene

Curs 1 17 Februarie Adrian Iftene Curs 1 17 Februarie 2011 Adrian Iftene adiftene@info.uaic.ro 1 Limbajele calculatorului Compilate Interpretate Scripting P-cod Orientate pe aspect Orientate spre date 2 Cum lucrează? Orice program trebuie

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

Prelucrarea numerică a semnalelor

Prelucrarea numerică a semnalelor Prelucrarea numerică a semnalelor Assoc.Prof. Lăcrimioara GRAMA, Ph.D. http://sp.utcluj.ro/teaching_iiiea.html 27 februarie 2017 Lăcrimioara GRAMA (sp.utcluj.ro) Prelucrarea numerică a semnalelor 27 februarie

More information

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE) ANTICOLLISION ALGORITHM FOR VV AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP VV (VEHICLE-TO-VEHICLE) 457 Florin MARIAŞIU*, T. EAC* *The Technical University

More information

Software Process and Life Cycle

Software Process and Life Cycle Software Process and Life Cycle Drd.ing. Flori Naghiu Murphy s Law: Left to themselves, things tend to go from bad to worse. Principiile de dezvoltare software Principiul Calitatii : asigurarea gasirii

More information

Generarea şi validarea numerelor prime mari

Generarea şi validarea numerelor prime mari Generarea şi validarea numerelor prime mari 1 Modalităţi de generare a numerelor prime mari Metoda cea mai naturală este de a genera aleator un număr n de mărime adecvată şi de a verifica dacă acesta este

More information

Vizualizarea documentelor xml

Vizualizarea documentelor xml Vizualizarea documentelor xml Fără un fişier de stil asociat: browserul vizualizează conținutul documentului xml, cu posibilitatea de a vedea/ascunde descendenții unui nod din structura arborescentă Exemplu:

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

The First TST for the JBMO Satu Mare, April 6, 2018

The First TST for the JBMO Satu Mare, April 6, 2018 The First TST for the JBMO Satu Mare, April 6, 08 Problem. Prove that the equation x +y +z = x+y +z + has no rational solutions. Solution. The equation can be written equivalently (x ) + (y ) + (z ) =

More information

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs Acta Technica Napocensis: Civil Engineering & Architecture Vol. 57, No. 1 (2014) Journal homepage: http://constructii.utcluj.ro/actacivileng Updating the Nomographical Diagrams for Dimensioning the Concrete

More information

Raport stiintific sintetic

Raport stiintific sintetic Raport stiintific sintetic privind implementarea proiectului pe toata perioada de executie pana in prezent Proiect: Noi metode hibride metaeuristice pentru rezolvarea problemelor de proiectare a retelelor

More information

F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5. Capitolul 8 Data mining date corelate Reprezentarea datelor Vom continua să considerăm modelul de date coşuri de produse şi vom vizualiza datele ca o matrice booleană unde: linii=coşuri şi coloane=articole.

More information

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home Ce este Hi5!? hi5 este un website social care, în decursul anului 2007, a fost unul din cele 25 cele mai vizitate site-uri de pe Internet. Compania a fost fondată în 2003 iar pana in anul 2007 a ajuns

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

Managementul referinţelor cu

Managementul referinţelor cu TUTORIALE DE CULTURA INFORMAŢIEI Citarea surselor de informare cu instrumente software Managementul referinţelor cu Bibliotecar Lenuţa Ursachi PE SCURT Este gratuit Poţi adăuga fişiere PDF Poţi organiza,

More information

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTERE"IN VITRO" LA PLANTE FURAJERE

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTEREIN VITRO LA PLANTE FURAJERE INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTERE"IN VITRO" LA PLANTE FURAJERE T.Simplăceanu, C.Bindea, Dorina Brătfălean*, St.Popescu, D.Pamfil Institutul Naţional de Cercetere-Dezvoltare pentru

More information

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom RAPORT DE PIA?Ã LUNAR MARTIE 218 Piaţa pentru Ziua Următoare

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe Candlesticks 14 Martie 2013 Lector : Alexandru Preda, CFTe Istorie Munehisa Homma - (1724-1803) Ojima Rice Market in Osaka 1710 devine si piata futures Parintele candlesticks Samurai In 1755 a scris The

More information

Ghid de utilizare a Calculatorului valorii U

Ghid de utilizare a Calculatorului valorii U Ghid de utilizare a Calculatorului valorii U la Apelul de Propuneri de Proiecte Nr.3 pentru Instituțiile din Sectorul Public pentru investiții în Eficiență Energetică și Surse de Energie Regenerabilă Versiunea

More information

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE WebQuest O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE Cuvinte cheie Internet WebQuest constructivism suport educational elemente motivationale activitati de grup investigatii individuale Introducere Impactul tehnologiilor

More information

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare M. Merca, Partiţii întregi şi grafuri orientate aciclice 15 Partiţii întregi şi grafuri orientate aciclice Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare Abstract. The algorithms

More information

Baze de date distribuite și mobile

Baze de date distribuite și mobile Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Baze de date distribuite și mobile Lect.dr. Adrian Runceanu Curs 3 Model fizic şi model

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. Baze de date-anul 2 Laborator 4 SQL Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. I. [Funcţii grup şi clauza GROUP BY] Clauza GROUP BY este utilizată pentru a diviza liniile unui

More information

X-Fit S Manual de utilizare

X-Fit S Manual de utilizare X-Fit S Manual de utilizare Compatibilitate Acest produs este compatibil doar cu dispozitivele ce au următoarele specificații: ios: Versiune 7.0 sau mai nouă, Bluetooth 4.0 Android: Versiune 4.3 sau mai

More information

REZOLVAREA NUMERICĂ A ECUAŢIILOR CU DERIVATE PARŢIALE FOLOSIND METODA LINIILOR

REZOLVAREA NUMERICĂ A ECUAŢIILOR CU DERIVATE PARŢIALE FOLOSIND METODA LINIILOR DIDACTICA MATHEMATICA, Vol. 33(2015), pp. 17 26 REZOLVAREA NUMERICĂ A ECUAŢIILOR CU DERIVATE PARŢIALE FOLOSIND METODA LINIILOR Imre Boros Abstract. This paper discusses the numerical solution of partial

More information

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie Sistem de numeraţie CURS 2 Reprezentarea numerelor intregi si reale F.Boian, Bazele matematice ale calculatoarelor, UBB Cluj-Napoca, 2002 How computers see numbers and letters http://faculty.etsu.edu/lutter/courses/phys4007/p4007append_f.pdf

More information

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%]

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%] Piaţa pentru Ziua Următoare - mai 217 Participanţi înregistraţi la PZU: 356 Număr de participanţi activi [participanţi/lună]: 264 Număr mediu de participanţi activi [participanţi/zi]: 247 Preţ mediu [lei/mwh]:

More information

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE Eugen DOBÂNDĂ NOTES ON THE MATHEMATICAL MODELING IN QUASI-DYNAMIC REGIME OF A CLASSES OF MICROHYDROTURBINE

More information

6. Bucle. 6.1 Instrucţiunea while

6. Bucle. 6.1 Instrucţiunea while 6. Bucle În capitolul trecut am văzut cum putem selecta diferite instrucţiuni pentru execuţie folosind instrucţiunea if. O buclă este o structură de control care provoacă executarea unei instrucţiuni sau

More information

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE S.C. SWING TRADE S.R.L. Sediu social: Sovata, str. Principala, nr. 72, judetul Mures C.U.I. RO 9866443 Nr.Reg.Com.: J 26/690/1997 Capital social: 460,200 lei DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului

More information

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router Pentru a putea vizualiza imaginile unei camere web IP conectată într-un echipament Huawei HG8121H, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Proiect cofinanțat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane

Proiect cofinanțat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane Investeşte în oameni! FONDUL SOCIAL EUROPEAN Proiect cofinanțat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 2013 Axa prioritară 1: Educaţia

More information

Itemi Sisteme de Operare

Itemi Sisteme de Operare Itemi Sisteme de Operare 1. Pentru a muta un dosar (folder) de pe partiţia C: pe partiţia D: folosim: a. New Folder b. Ctrl + C din bara de instrumente şi Copy; c. Ctrl + X şi Ctrl + V; d. Edit Paste;

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII "IN VITRO" LA PLANTE FURAJERE

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII IN VITRO LA PLANTE FURAJERE INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII "IN VITRO" LA PLANTE FURAJERE T.Simplăceanu, Dorina Brătfălean*, C.Bindea, D.Pamfil*, St.Popescu Institutul Naţional de Cercetere-Dezvoltare pentru Tehnologii

More information

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru Мобильный портал WAP версия: wap.altmaster.ru Printesa fluture Love, romance and to repent of love. in romana comy90. Formular de noastre aici! Reduceri de pret la stickere pana la 70%. Stickerul Decorativ,

More information

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA SISTEME INTELIGENTE DE SUPORT DECIZIONAL Ș.l.dr.ing. Laura-Nicoleta IVANCIU Curs 7 Sisteme inteligente de suport decizional bazate pe RNA Cuprins RNA pentru aproximare de funcții Clasificatori cu RNA Studii

More information

Proiectarea Sistemelor Software Complexe

Proiectarea Sistemelor Software Complexe Proiectarea Sistemelor Software Complexe Curs 3 Principii de Proiectare Orientată pe Obiecte Principiile de proiectare orientată pe obiecte au fost formulate pentru a servi ca reguli pentru evitarea proiectării

More information

Evoluția pieței de capital din România. 09 iunie 2018

Evoluția pieței de capital din România. 09 iunie 2018 Evoluția pieței de capital din România 09 iunie 2018 Realizări recente Realizări recente IPO-uri realizate în 2017 și 2018 IPO în valoare de EUR 312.2 mn IPO pe Piața Principală, derulat în perioada 24

More information

CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE

CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE UNIVERSITATEA POLITEHNICA TIMIŞOARA Școala Doctorală de Studii Inginerești Ing. Daniel TIUC CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE Teză destinată obținerii titlului

More information

Lucrarea Nr.1. Sisteme de operare. Generalitati

Lucrarea Nr.1. Sisteme de operare. Generalitati Lucrarea Nr.1 Sisteme de operare. Generalitati Scopul lucrarii Lucrarea îsi propune familiarizarea studentilor cu sistemele de operare disponibile în laborator, respectiv acele sisteme de operare cu ajutorul

More information

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU UNIVERSITATEA POLITEHNICA BUCUREŞTI FACULTATEA ENERGETICA Catedra de Producerea şi Utilizarea Energiei Master: DEZVOLTAREA DURABILĂ A SISTEMELOR DE ENERGIE Titular curs: Prof. dr. ing Tiberiu APOSTOL Fond

More information

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII Adrian Mugur SIMIONESCU MODEL OF A STATIC SWITCH FOR ELECTRICAL SOURCES WITHOUT INTERRUPTIONS IN LOAD

More information

RAPORTUL STIINTIFIC SI TEHNIC FAZA DE EXECUTIE NR. 2

RAPORTUL STIINTIFIC SI TEHNIC FAZA DE EXECUTIE NR. 2 RAPORTUL STIINTIFIC SI TEHNIC FAZA DE EXECUTIE NR. 2 CU TITLUL Schitarea unei noi paradigme RAPORTUL STIINTIFIC SI TEHNIC 1.1. Cuprins 1.2. Obiective generale... 4 1.3. Obiectivele fazei de executie...

More information

HEAPSORT I. CONSIDERAŢII TEORETICE

HEAPSORT I. CONSIDERAŢII TEORETICE I. CONSIDERAŢII TEORETICE HEAPSORT Algoritm de sortare care combină calităţile sortării prin inserţie cu cele ale sortării prin interclasare. A fost inventat de Williams 1964. Prin heapsort se ordonează

More information

Algoritmi genetici: evolutie in genetica si informatica

Algoritmi genetici: evolutie in genetica si informatica Algoritmi genetici: evolutie in genetica si informatica Catre genetica moderna Carl LINNAEUS (Linnaei, 1735) prima clasificare a vieţuitoarelor după clase, ordine, genuri şi specii (şi denumirile acestora

More information

1. Creaţi un nou proiect de tip Windows Forms Application, cu numele MdiExample.

1. Creaţi un nou proiect de tip Windows Forms Application, cu numele MdiExample. Aplicaţia MdiExample Aplicaţia implementează: Deschiderea şi închiderea ferestrelor child. Minimizarea şi maximizarea ferestrelor. Aranjarea ferestrelor. Tratarea mesajului de atenţionare la ieşirea din

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare).

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Formatul instrucţiunilor

More information