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

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

STRUCTURA TIPURILOR DE LECTIE

Procesarea Imaginilor

Versionare - GIT ALIN ZAMFIROIU

Subiecte Clasa a VI-a

Metoda BACKTRACKING. prof. Jiduc Gabriel

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

Metoda de programare BACKTRACKING

Metrici LPR interfatare cu Barix Barionet 50 -

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

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

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

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

Modalitǎţi de clasificare a datelor cantitative

GHID DE TERMENI MEDIA

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

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

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

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

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

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

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

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

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

ISBN-13:

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

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; }

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

Software Process and Life Cycle

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

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

Reţele Neuronale Artificiale în MATLAB

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

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

Managementul Proiectelor Software Metode de dezvoltare

Olimpiad«Estonia, 2003

Propuneri pentru teme de licență

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

Managementul referinţelor cu

Lucrarea de laborator nr. 4

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

Mecanismul de decontare a cererilor de plata

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

Once upon an Erasmus Tale (Traditional Arts and Languages across Europe)

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

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

Proiectarea Sistemelor Software Complexe

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

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

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

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

Fişa disciplinei. 1. Date despre program. 2. Date despre disciplina Titulari. 3. Timp total estimat. 4. Precondiţii.

Update firmware aparat foto

Prelucrarea numerică a semnalelor

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

I. STRATEGII ÎN REZOLVAREA PROBLEMELOR

Drumuri minime în graf Manualul profesorului

Restaurarea frontierelor unei imagini: abordare genetica

X-Fit S Manual de utilizare

Documentaţie Tehnică

Manual Limba Romana Clasa 5 Editura Humanitas File Type

INTEROGĂRI ÎN SQL SERVER

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

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

HEAPSORT I. CONSIDERAŢII TEORETICE

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

SISTEM ONLINE DE ÎNVĂŢĂMÂNT

COMUNICAȚII INFORMATIZARE

ARE THE STATIC POWER CONVERTERS ENERGY EFFICIENT?

ACTA TECHNICA NAPOCENSIS

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

Figura x.1 Ecranul de pornire al mediului de dezvoltare

CERERI SELECT PE O TABELA

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

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

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

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

Fenomene electrostatice şi materiale dielectrice. Modelare experimentală şi numerică şi aplicaţii industriale.

Utilizarea noilor formulare Google 2016 în educație

Vizualizarea documentelor xml

Raport stiintific sintetic

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

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

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

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

Despre Accenture. Copyright 2010 Accenture All Rights Reserved. 2

F I Ş A D I S C I P L I N E I 1)

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

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

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

VIRTUAL INSTRUMENTATION IN THE DRIVE SUBSYSTEM MONITORING OF A MOBIL ROBOT WITH GESTURE COMMANDS

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R

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

Transmiterea datelor prin reteaua electrica

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

METODE FIZICE DE MĂSURĂ ŞI CONTROL NEDISTRUCTIV. Inspecţia vizuală este, de departe, cea mai utilizată MCN, fiind de obicei primul pas într-o

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

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

Lucrarea Nr.1. Sisteme de operare. Generalitati

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

Transcription:

LUȚĂ COSTINA CLAUDIA ALGORITMI GENETICI VOL.II ISBN 978-973-0-16090-1 0 S L A T I N A 2014

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

CERCETARE PEDAGOGICĂ CAPITOLUL III 3.1 Ipoteza de lucru Descentralizarea economiei, trecerea la economia de piaţă, restrângerea numărului locurilor de muncă, noile exigenţe, determină o responsabilitate sporită a liceelor în formarea şi perfecţionarea specialiştilor în informatică. Formarea competenţei profesionale a tinerilor este asigurată prin instruirea lor competentă şi progresivă, în timpul şcolarizării, procesul de învăţământ fiind organizat astfel ca elevii să fie sprijiniţi în dobândirea competenţei corespunzătoare obiectivelor generale ale disciplinelor de informatică pentru care se pregătesc. Consider că cerinţele progresului tehnico-economic şi condiţiile concurenţei pe piaţa muncii, impun desfăşurarea unui proces de învăţământ care să asigure o cultură generală, pe fondul căreia să se dezvolte gândirea informatică, înţelegerea principiilor care au stat la baza descoperirilor si creaţiilor ştiinţei, care să promoveze o reacţie pozitivă faţă de mediul informatic şi să formeze premisele teoretice, tehnice şi practice ale însuşirii în condiţii bune a disciplinelor care asigură o calificare si o specializare înaltă. Din experienţa didactică, am constatat că, prin însuşirea disciplinelor de informatică se asigură, în afara competenţei profesionale şi dobândirea valorilor ştiinţifice, tehnice si psiho-socio-morale, care au ca finalităţi nu numai profesionalizarea ci şi formarea unor personalităţi complete, bazate pe o cultură generală corespunzătoare, dar şi a celor de ordin social. 2

Cred că, formarea elevilor ar fi mai bună dacă i-aş antrena în realizarea de aplicaţii mai eficiente, cu un grad de complexitate mai ridicat. Am urmărit ca metoda folosită să conducă la cercetare şi creaţie, la dorinţa elevilor de a cunoaşte şi a investiga în acest scop, dincolo de limitele programelor de informatică. Doresc ca lecţiile astfel realizate să conducă la : Însuşirea suportului noţional de bază al teoriei algoritmilor genetici, precum şi a deprinderilor esenţiale necesare aplicării acestora în diverse implementări simple sau de complexitate medie ; Formarea gândirii logice, care să permită elevului să aprecieze corect situaţiile concrete specifice, cu scopul de a desprinde soluţii optime; Formarea deprinderilor de aplicare corectă a soluţiilor alese; Formarea deprinderilor de a realiza comparaţii între soluţiile obţinute folosind programarea clasică şi cele obţinute prin aplicarea algoritmilor genetici; 3

3.2 Obiectivele cercetării Stabilind scopurile studierii disciplinelor de informatică, este de dorit să se înceapă procesul de atingere a unor obiective precis stabilite. Obiectivele vizează ce va şti elevul după lecţie, deci nişte finalităţi ale procesului de predareînvăţare. A operaţionaliza un obiectiv pedagogic înseamnă a transpune în termeni de operaţii şi acţiuni sau alte manifestări observabile şi măsurabile, rezultate în urma unei instruiri, a ceea ce trebuie să cunoască şi ce vor fi capabili elevii să facă la încheierea procesului de predare-învăţare. Literatura pedagogică evidenţiază patru timpi ai tehnicii de elaborare ai unui obiectiv, redaţi în figura următoare : Acţiunea Obiectul Condiţiile Criteriile observabilă + (conţinutul + în care + după care prin care se acţiunii) elevul va se vor va putea aprecia exterioriza comportamentul proba formarea comportamentului performanţele Comportamentul dorit să se formeze prin învăţare Precizează modalităţile în care se va proba şi evalua nivelul de formare a comportamentului 4 Obiectivele generale ale predării informaticii în şcoală sunt determinate de următoarele aspecte :

importanţa informaticii şi calculatorului în lumea contemporană şi rolul acestora în dezvoltarea ştiinţifică şi tehnico-economică a societăţii umane ; necesităţile învăţământului privind formarea unei culturi generale şi de specialitate a absolvenţilor, în vederea integrării lor rapide în societate ; necesitatea de a dezvolta capacităţi intelectuale, estetice şi moral umane. Obiectivele cercetării metodice în temă urmăresc: Proiectarea pedagogică, având la bază un demers complex care presupune o conlucrare permanentă a competenţei pedagogice cu competenţa informatică; Implementarea informatică, care se valorizează numai în conexiune cu cerinţele pedagogice în afara cărora produsul final n-ar mai fi eficient Validarea experimentală atât a lucrării cât şi a demersului cercetării pedagogice În legătură cu primul obiectiv, un minim de competenţe informatice asigură preluarea, de la adresele www.edu.ro, www.portal.edu.ro, www.didactic.ro a programei analitice şcolare şi sugestiilor metodologice pentru elaborarea planificărilor anuale şi semestriale. Întocmirea fişelor de lucru pentru elevi, a testelor de evaluare, a temelor pentru atestat profesional în meseria de ajutor analist programator-operator tehnică de calcul, a subiectelor popuse pentru lucrările scrise, lucrări practice şi simularea examenului de bacalaureat constituie de asemenea puncte de reper realizabile. Al doilea obiectiv, oferă posibilitatea de a pune în lucru o metodologie experimentală foarte riguroasă şi constă în rularea programelor ce folosesc în 5

implementare algoritmi genetici, eventual cu întreaga clasă sau cu un grup restrâns de elevi. Validarea experimentală se constituie ca produs final şi oferă o viziune de ansamblu asupra unităţii de instruire. El reprezintă o oportunitate de a constata care sunt aspectele insuficient de bine puse la punct şi care creează dificultăţi celui care învaţă, adică de a obţine o realizare formativă. Evident, că ulterior se poate studia eficienţa lui ca mediu de instruire în raport cu alte procedee folosite de utilizatorul-elev. 6

3.3 Metodologia verificării ipotezei 3.3.1. Tipologia cercetării Direcţiile abordării cercetării s-au ramificat astfel: Direcţia abordării cercetării este longitudinală prelucrând o experienţă pozitivă acumulată în timp longitudinal, pe altă structură a programei, a manualelor, a orelor alocate disciplinelor informatice; Rolul abordării este descriptiv, analitic, explicativ, acţional dar şi operaţional Gradul de organizare este sistematic, planificând etapele ce se desfăşoară în contextul real al unei clase urmărită un timp stabilit, pe parcursul unui an şcolar. Organizarea a permis între anumite limite şi o abordare spontană şi nu a perturbat procesul de învăţământ. Cercetarea s-a extins de la nivelul clasei, deci de la relaţia profesor-elevi până la relaţia profesor-profesor prin conlucrarea la nivelul catedrei de informatică din şcoală Scopul urmărit este ameliorativ, de perfecţionare şi optimizare a unor aspecte ale procesului de învăţământ Esenţa cercetării este de îmbinare a teoriei cu practica pozitivă acumulată prin punerea în practică a unor idei teoretice, pedagogice şi metodice în condiţiile concrete specifice. Metodologia utilizată este experimentală prin faptul că se introduc explicit măsuri ameliorative într-un mod anume organizat. Am îmbinat teoria cu practica pozitivă acumulată şi am aplicat propriu-zis idei teoretice, pedagogice şi metodice în condiţiile concrete specifice, de cunoaştere şi explicare a fenomenelor semnificative din practica proprie, de construire şi verificare a unor modele proprii de 7

optimizare metodică, de formulare a soluţiilor pentru situaţii variate şi reale din practică, de dezvoltare a unor contribuţii anterioare. Tipul de cercetare folosit, în final este de tip combinat ( mixt ). Finalitatea urmărită de cercetare este de tip constatativ, cunoscând situaţiile de reuşită=succes sau eşec=insucces şcolar, cu aspecte ameliorative vizând activitatea de perfecţionare şi optimizare a metodelor centrate pe adaptarea la particularităţile de vârstă şi individuale, de performanţă, respectiv de recuperare 3.3.2 Organizarea cercetării Am optat, după modul de abordare a tematicii, pentru o cercetare experimentală, abordând atât trunchiul comun cât şi curriculum la decizia şcolii, fiind antrenată clasa a XI a de la profilul matematică-informatică cu predare intensiv informatică. Am urmărit efectele măsurilor luate, raportându-mă la evaluarea iniţială şi finală a clasei pe aceleaşi obiective. Ipoteza cercetării a rezultat din acelaşi context al clasei şi este evident că, tot în clasă trebuie să se rezolve, implicându-mă alături de elevi la verificarea ipotezei şi a obiectivelor. Perioada propusă este parcursul anului şcolar 2005-2006, o oră pe săptămână. Etapele parcurse sunt : s-au realizat fişierele document cu conţinutul informativ al sistemului de lecţii s-au realizat fişiere Power Point cu diverse facilităţi de imagine, sunet şi animaţie am aplicat cercetarea pe 2 eşantioane de elevi, cu nivele de pregătire diferită: mediu şi performant; 8

ca măsură experimentală, am utilizat ca variabilă independentă evaluarea iniţială în urma căreia s-au format cele 2 eşantioane de elevi; am antrenat 3 categorii de variabile: variabile independente, de intrare: scopuri, mijloace, condiţii, măsuri care determină stabilirea strategiei de cercetare, clasificate după importanţă, volum, prioritate, frecvenţă, urmate de verificarea ipotezei; variabile dependente, de ieşire, ca răspuns la acţiunea celor independente, care au fost consemnate în "grila de observaţie", cu efecte pozitive şi negative, aşteptate şi neaşteptate, principale sau secundare. Raportându-mă la rezultatele măsurilor introduse în predarea la orele de informatică, am luat în calcul ca variabile dependente cu valoare activă interesul manifestat de elevi pentru o metodă sau alta ; variabile perturbatoare, neprogramate ca elemente de interacţiune între celelalte variabile, care produc efecte diferenţiate în aplicare: experienţe individuale, factori extraşcolari. Factorii perturbatori au mai fost de natură tehnică şi anume variaţii ale tensiunii şi frecvenţei curentului electric, incompatibilităţi soft legate de versiunea pachetelor de aplicaţii, ştergeri accidentale ale fişierelor. Ca limite, am sesizat dificultatea delimitării variabilelor şi a relaţiilor lor, imposibilitatea cuprinderii tuturor variabilelor necesare, irepetabilitatea experimentului datorată unicităţii situaţiilor în structurarea, desfăşurarea şi evoluţia lor. S-a impus, în baza propriei experienţe, utilizarea eficientă a metodelor de comunicare didactică variate cu acţiuni ameliorative pe diverse laturi: strategii, resurse, organizare, rezultând o paletă extinsă de calităţi 9

manageriale ale profesorului de astăzi care trebuie să fie pregătit să identifice, să combată, să prevină diferite situaţii problematice. Rolul de coordonator ce-i revine profesorului în folosirea metodelor active este major. Reuşita lecţiei depinde şi de modul în care profesorul ştie să organizeze activitatea liberă a elevilor. Metodele activ-participative pot fi folosite în orice moment al lecţiei, iar alegerea lor este rezultatul unei pregătiri prealabile riguroase, dar şi al ingeniozităţii provenită din situaţiile concrete şi imprevizibile apărute la clasă. Unii elevi au întâmpinat dificultăţi chiar şi în luarea notiţelor, de aceea, transpunerea teoriei în itemi accesibili elevilor a fost absolut necesară. Mai întâi, am folosit cu tact şi măiestrie, metode cum sunt conversaţia şi explicaţia, exerciţiul şi dialogul euristic şi apoi gradat, trecând la metode ca problematizarea, munca independentă, descoperirea, algoritmizarea etc. Metodele activ-participative se pot folosi atât la orele de curs şi, în special, în orele de laborator, în care elevul, pus în faţa propriului calculator are posibilitatea de a lua decizii referitor la modul de rezolvare a diverselor situaţii problematice create, poate să-şi clarifice unele nelămuriri, pe loc, fără a adânci latura critică a necunoaşterii. Experimentul s-a desfăşurat la Grupul Şcolar Agricol Constantin Dobrescu Curtea de Arges, precum şi toate testele şi statisticile prezentate. 10

3.3.3 Metodele de cercetare utilizate În cercetarea pe care am realizat-o am folosit următoarele metode de investigare: Observaţia La clasa antrenată în cercetare, am recurs la construirea unui plan criterial, pentru acumularea de materiale şi date, concomitent cu desfăşurarea experimentului. În plus am stabilit modul de utilizare a unui sistem de decizii tactice şi operative pornind de la o decizie strategică globală, pentru a indica modul concret de realizare a ei, prin sarcini, situaţii delimitate, înlănţuite într-o anumită succesiune în timpul desfăşurării activităţii. Am îmbinat strategiile didactice clasice cu metodele moderne, activ-participative în diferite lecţii, şi am observat efectul produs asupra unui subiect independent, asupra unui grup restrâns de subiecţi şi, în final asupra întregii clase de elevi. Studiul documentelor şcolare Am folosit programa de informatică, manualele, notiţele elevilor, lucrările de laborator, cataloagele, tezele, produse-program, teste şi fişe de evaluare, portofoliile elevilor. Metoda bibliografică Pentru documentarea ştiinţifică am studiat materialului bibliografic de specialitate şi de pedagogie, iar pentru aceasta am făcut apel la biblioteca proprie, biblioteca şcolii şi, nu în ultimul rând, la Internet. De asemenea pentru culegerea materialului am colaborat şi cu profesorii din catedra de informatică care mi-au pus la dispoziţie diverse planuri de lecţii. Pentru obţinerea datelor referitoare la caracterizarea metodelor în general, a metodelor activ-participative, în special, la o taxonomie a acestora din 11

perspectiva obţinerii de performanţe la clasă, în procesul de predare-învăţareevaluare, metoda bibliografică a reprezentat un instrument de bază al cercetării. Materialul bibliografic studiat a fost organizat şi sistematizat pe capitole şi subcapitole fiind integrat în lucrare. Modul de acumulare a informaţiilor reprezentative pentru verificarea ipotezei pe obiective a fost stocarea acestora pe CD-uri, realizarea de fişe de lucru pentru elevi, organizarea datelor de evaluare: note, calificative în tabele, diagrame, scale de valori. Metoda chestionarelor şi a convorbirilor cu cadrele didactice şi elevii despre tema cercetată, a fost utilizată pentru culegerea de informaţii cu privire la tema respectivă cât şi pentru verificarea ipotezei de lucru. Am folosit această metodă şi pentru a cunoaşte nivelul de pregătire al subiecţilor pe de o parte, şi modul cum şi-ar dori să li se predea o anumită disciplină, de către profesorul ideal, pe de altă parte. Am realizat un dialog firesc, democratic, individual, sau colectiv, care a confirmat adeziunea elevilor la metodele de predare moderne, în comparţie cu cele clasice, pasive, precum şi apetenţa pentru noi achiziţii cognitive, in afara programei şcolare. Metoda experimentului pedagogic s-a concretizat în elaborarea şi experimentarea la clasa de control a unui soft educaţional referitor la un set de lecţii. În acest fel, se încearcă punerea la dispoziţie a unui nou instrument de predare şi evaluare pentru o masă largă de utilizatori, deschizând perspectivele completării atât cu teme de la aceeaşi disciplină cât şi cu subiecte de la alte discipline În mod sigur, această metodă a reprezentat metoda cea mai edificatoare în ceea ce priveşte descoperirea strategiilor care duc la obţinerea de succese, a performanţei, şi a celor care ar putea fi îmbunătăţite. 12

Metoda testelor de cunoştinţe ( eseu, teste grilă ) a fost folosită pentru a constata rezultatele obţinute în urma acestui tip de lecţii, a introducerii noului conţinut informaţional si practic pe lângă conţinutul programei şcolare clasice. Pentru interpretarea parţială sau finală a rezultatelor am utilizat metode de interpretare cantitativă şi calitativă, tehnici statistice, metode deductive. Metoda statistică Mi-a permis să raportez rezultatele obţinute în cazul aplicării rigide a unor metode clasice, la cele obţinute, în cazul utilizării în mod creativ a unor metode. În urma consultării unor materiale de specialitate am avut posibilitatea să cunosc diverse statistici obţinute de alţi cercetători, dar şi să stabilesc eventuale alte rezultate, prin investigaţii proprii. 13

CAPITOLUL IV PREZENTAREA ŞI INTERPRETAREA REZULTATELOR OBŢINUTE În viaţa de zi cu zi întâlnim aplicaţii care se rezolvă prin diverse metode, acest fapt fiind o consecinţă a necesitaţii creării unor prioritaţi pentru obiecte, fenomene sau chiar noţiuni abstracte. Î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 algoritmilor genetici. 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ătii. 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 caţiva operatori genetici. Un astfel de sistem este o clasa a evoluţiei strategice i.e, algoritmi care imită principiile evoluţiei naturale pentru problemele de optimizare de parametru(rechemberg, Schwefel). Evoluţia programării lui Fogel este o tehnică de căutare într-un 14

spaţiu finit, mic de maşini. Tehnologiile de cautare 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. Teoria algoritmilor genetici este relativ nouă şi este aplicabilă cu succes problemelor NP-complete, pentru care nu se cunosc algoritmi de complexitate polinomială dar şi problemelor pentru care, deşi există metode polinomiale de rezolvare, acestea nu sunt cunoscute de către rezolvitor ( de exemplu, cazul problemelor mai dificile de la concursuri ). 4.1 Experiment privind aplicarea algoritmilor genetici La predarea algoritmilor genetici mi-am propus realizarea următoarelor obiective: găsirea unei modalităţi cât mai simple, cât mai acceptabile şi mai uşor de înţeles pentru toţi elevii, de transmitere a cunoştinţelor teoretice de bază privind algoritmii genetici; identificarea problemelor care se rezolvă folosind algoritmi genetici; familiarizarea cu metodele de lucru specifice algoritmilor genetici; formarea unor deprinderi elementare, necesare în analiza unor probleme ce le vom rezolva evolutiv ; dezvoltarea deprinderilor de rezolvare a aplicaţiilor ce folosesc algoritmi genetici; Pentru realizarea acestor obiective în predarea teoriei algoritmilor genetici, am căutat să folosesc acele metode active care să-i ajute pe elevi să descifreze, după posibilităţile lor, condiţiile necesare pentru rezolvarea unei aplicaţii ce foloseşte algoritmi genetici şi să scrie programele în limbajul C. 15

Dintre acestea, o metodă foarte eficace este învăţarea prin descoperire. După cum o să vedem în rândurile următoare, ea prezintă multe avantaje, dacă este folosită cu mult tact, ţinând cont de vârsta şi puţina experienţă a elevilor de clasa a XI-a. Astfel, plecând de la acest considerent, în lecţiile de predare a noţiunilor de bază despre algoritmii genetici şi de rezolvare a aplicaţiilor ce folosesc aceast tip de algoritmi, am început cu o introducere despre teoria algoritmilor genetici în general însoţită de exemple de probleme ce folosesc aceast tip de algoritmi şi în final am propus spre rezolvare aplicaţii de dificultate gradată. Folosind metoda conversaţiei îmbinată cu explicaţia şi punând accent pe luarea notiţelor, elevii au înţeles în ce tip de aplicaţii putem aplica algoritmii genetici precum şi rolul acestor algoritmi. Considerând că elevii au câştigat o cât de mică experienţă în însuşirea cunoştinţelor despre teoria algoritmilor genetici, mi-am propus să folosesc metoda descoperirii urmărind cum se descurcă elevii în rezolvarea problemelor, cum îşi notează în caiete şi mai puţin dacă este mai eficace aceasta, decât explicaţia pe care aş fi făcut-o eu pe parcursul orei. Lecţiile acestea au fost făcute împreună cu elevii care au fost solicitaţi foarte mult, lăsând impresia unei lecţii de consolidare, şi nu de dobândire de cunoştinţe. Pentru a înţelege mecanismul de funcţionare al algoritmilor genetici, am început cu exemple de probleme în care se aplică aceşti algoritmi, după care am continuat cu descrierea schemei de bază a acestora. Am reamintit mai întâi noţiunile teoretice introductive din teoria algoritmilor genetici pentru a avea un limbaj comun şi riguros ştiinţific. Algoritmul genetic propus pentru rezolvare a fost "Maximizarea unei functii 16

Exemplu: Maximizarea unei functii Dorim sa optimizam o functie simpla: f(x)=x*sin(10π*x)+1.0 unde x [-1,2] Este usor sa descoperim maximul folosind prima derivata. Valoare maxima va fi f(1.85) = 2.85 Vom construi in continuare un algoritm genetic care sa maximize functia f. Reprezentare: Vom folosi v un vector binar. 1. Lungimea vectorului depinde de precizie, care in acest exemplu va fi 6 zecimale. 2. Domeniul lui x are lungime 3([-1,2]). (1) + (2) => valoare lui v in baza 10 trebuie sa fie cel putin 3*1000000 => avem nevoie de 22 de biti: 2097152=2 21 <3000000 2 22 =4194304 Vom transforma valoarea lui v=(v21 v0) intr- un numar real x din intervalul [-1,2] in doi pasi: 1. Convertim vectorul binar (v21 v0) din baza 2 in baza 10 si il notam cu v1. 2. x corespunzator este: x=-1.0+v1[3/(2 22-1)] Initializarea populatiei. Este un proces foarte simplu vom crea o populatie de cromozomi unde fiecare cromozom este un vector binar alcatuit din 22 biti. Fiecare cromozom este initializat aleator. Functia de adecvare. In acest caz o vom nota cu eval(v)=f(x). Cel mai bun 17

cromozom va fi acela care are cea mai mare valoare. Selectia 1. Calculam eval(v i ) pentru fiecare cromozom i=(1 pop_size). 2. Calculam F=suma(eval(v i )). 3. Calculam probabilitatea p i =eval(v i )/F. 4. Calculam o probabilitate cumulata: q i =suma(p j ), j=(1,,i) 5. Generam un numar r in intervalul [0,1]. 6. Daca r<q 1 selectam pe q 1 daca nu selectam pe q i astfel incat q i <r<q i Incrucisarea 1. Se alege un pc acesta reprezinta probabilitatea incrucisarii. 2. Pentru fiecare cromozom se genereaza un r din [0,1]. 3. Daca pc> r atunci se selecteaza pentru incrucisare. Mutatia 1. Se alege un pm acesta reprezinta probabilitatea incrucisarii. 2. Pentru fiecare bit din cromozom se genereaza un r din [0,1]. 3. Daca pm> r atunci se aplica mutatia (daca este 0 =>1, daca este 1=>0). După ce le-am lăsat 30 minute pentru a desfăşura activitatea independentă de a scrie programele C, dar urmărindu-i cum rezolvă problema şi cum îşi 18

notează, am trecut la sistematizarea cunoştinţelor, în sensul că elevii au înţeles scrierea programului folosind noţiuni de teoria algoritmilor genetici. După implementarea şi corectarea eventualelor erori de sintaxă am înregistrat rezultatele. La începutul orei următoare, timp de 15 minute am dat o scurtă lucrare de control (să descrie care sunt modalităţile de reprezentare în memorie a cromozomilor, cum se poate face selecţia cromozomilor, care este rolul funcţiei de adecvare), pentru a vedea cum şi-au însuşit cunoştinţele, obţinându-se următoarele rezultate: Note 9, 10 7,8 6, 5 4 Nr.elevi 7 3 2 2 Clasa a XI-a C Deşi notele de 4 au fost multe, acest insucces nu m-a descurajat, căutând cauzele, făcându-mă să înţeleg că trebuie să-mi îndrept atenţia către elevii care înţeleg mai greu. La următoarele aplicaţii, elevii au fost antrenaţi în însuşirea noilor informaţii. Această implicare a elevilor a fost făcută folosind metode ca: conversaţia, observaţia, exerciţiul, descoperirea, problematizarea. Rezolvarea celorlalte aplicaţii şi scrierea programelor pentru problemele care impun folosirea algoritmilor genetici, a fost o învăţare dirijată, elevii îmbinând efortul propriu cu îndrumările primite din partea mea. Am continuat cu aplicaţia Expresia aritmetica parcurgând aceleaşi etape ca şi la problema anterioară. Astfel de învăţare a dinamizat întreaga clasă spre o rezolvare corectă, şi cei mai mulţi elevi, au reuşit prin munca independentă scrierea programului cerut. 19

Următoarea oră a fost destinată scrierii programului pentru Expresia aritmetica. Exemplu: Sa se implementeze algoritmul de creare a arborelui unei expresii aritmetice care contine ca operatori binari pe + si -, iar operanzii sunt litere sau cifre. # include <stdio.h> # include <alloc.h> # include <ctype.h> typedef struct node { 20 char inf; struct node *left, *right; tnode; tnode *root; tnode*e(void); tnode*f(void){ tnode *q; if(isalnum(c) { q=(tnode*) malloc (sizeof(tnode)); q->left=q->right =NULL; q->inf=c; c=getchar(); else if (c== ) ) c=getchar(); else printf( \n Lipseste paranteza dreapta ); else printf( \n Expresie eronata ); return q; tnode *T(void) { tnode *f,*q, *t; t=f();

while (c== * ) { c=getchar(); f=f(); q=(tnode *) malloc (sizeof(tnode)); q->inf= * ; q->left=t; q->right =f; t=q; return t; tnode *E(void) { tnode *t,*q, *e; e=t(); while (c== + ) { c=getchar(); t=t(); q=(tnode *) malloc (sizeof(tnode)); q->inf= + ; q->left=e; q->right =t; e=q; return e; tnode *CREATE (void) { printf ( \n Introduceti expresia\n); c=getchar(); return E(); void LIST(tnode * root, int 1) { 21

int i; if (root!=null) { LIST (root->left, l+1); for (i=0;i<1; i++) printf( ); printf ( %c\n,root ->inf); LIST(root->right, l+1); void main (void) { root=create(); LIST (root, 0); Următoarea lecţie a fost o lecţie de verificare, obţinându-se următoarele rezultate: Note 9,10 7,8 5, 6 4 Nr.ele vi 7 4 2 1 Proce nt 50% 21,5 % 21,5 % 7% Clasa a XI-a C Deşi la această verificare rezultatele au fost mai bune, am observat că încă nu toţi elevii ştiu să folosească instrumentele specifice algoritmilor genetici, că încă nu fac legătura între noţiunile teoretice şi interpretarea problemelor din realitate, nu sistematizează cunoştinţele. De aceea, am pornit de la prezentarea principiului de funcţionare, după care am trecut la aplicarea sa în probleme. 22

Următoarea aplicaţie pe care le-am propus-o foloseşte nu numai noţiuni de bază din teoria algoritmilor genetici ci şi cunoştinţe temeinice de programare în limbajul C. Am recapitulat noţiunile şi principiile necesare şi am făcut diverse interpretări asupra lor. Noţiunile de bază precum şi principiile de funcţionare ale unui algoritm genetic au fost prezentate în capitolul 2. După implementerea de către elevi sub observarea mea a programelor şi înregistrarea progreselor am mai propus spre studiu problema ONEMAX. Exemplu: Să se maximizeze numărul de cifre egale cu 1 dintr-un şir de L cifre binare. Se consideră {0,1 L mulţimea şirurilor binare de lungime L. Pentru un şir s din această mulţime notăm cu s 1 numărul de componente egale cu 1 ale şirului. Fie N un număr natural nenul mai mic decât L, şi f o funcţie care asociază fiecărui şir s o valoare egală cu s 1 dacă s 1 nu este multiplu de N, şi 2s 1 în caz contrar. Să se găsească un şir s* care maximizează f. Se va lua valorile L=10 şi N=3. Exemplu de utilizare : Program ce constă în maximizarea unei funcţii definite f(s)=s 1 Se deschide fişierul ex1.prj din Borland şi se modifică fişierul ex1.c. Fişierul rezultat va avea forma : 23 #include<stdio.h> #include sugar.h int evaluate(suchromosome*chrom,double*fitness); main( int argc,char*arvg[] ) { SuaEvaluationFunction=evaluate; SuRun( ex1.cfg,argc,argv );

int evaluate (SuChromosome*chrom,double*fitness); { int i; int N=3; int count=0; double result=0.0; for( i=0; i<chrom->length;++i ) count+=sugetbit( chrom->string,i ); if(count%n==0)result=2*count; else result =count; *fitness=result return 0; Modificările au fost făcute în funcţia de evaluare. Pentru a seta parametrii algoritmului genetic am schimbat liniile fişierului ex1.cfg după cum urmează : generation 10 population 10 length 10 în generation 100 population 50 length 10 (întâmplător, lungimea şirului binar era predefinită ca 10, în general ea va trebui modificată) Rularea algoritmului se face prin comanda ex1.exe. În urma rulării programul obţine valoarea 1101111111, una dintre cele care maximizează f. 24

Considerând că de-a lungul mai multor lecţii, elevii şi-au format cât de cât deprinderea de cercetare şi interpretare a observaţiilor, am făcut o recapitulare a noţiunilor de bază ale algoritmilor genetici. Am făcut această recapitulare cu o oarecare îndoială crezând că poate n-o să obţin rezultate mulţumitoare, dar totul a fost invers rezultatele obţinute m-au bucurat nu numai prin notele bune obţinute, ci şi prin felul cum elevii au reuşit să analizeze problemele şi să scrie programul respectiv. În urma evaluării am înregistrat următoarele rezultate: Note 9,10 7,8 5, 6 4 Nr.elevi 7 4 3 - Procent 50% 28,5% 21,5% - Clasa a XI- a C Experimentul a continuat cu aplicaţia Hello World!, unde alături de metoda descoperirii am folosit metoda problematizării şi brainstorming-ul. Această schemă a lecţiei se obţine prin multe întrebări, angajând elevii la răspunsuri şi observaţii. Pentru fiecare problemă elevii au trebuit să scrie algoritmul şi după aceea programul. În timpul lucrului independent, observândui cum se descurcă m-am bucurat pentru că n-a fost nevoie să intervin în rezolvarea problemelor. De altfel, notele obţinute reflectă corectitudinea răspunsurilor. Rezultatele au fost: Note 9,10 7,8 5, 6 4 Nr.ele vi 8 4 2 - Proce 57,1 28,5 14,4-25

nt % % % Clasa a XI-a C La clasa experiment, a XI-a C, unde predarea s-a făcut apelând cât mai mult la eforturile proprii ale elevilor şi unde am încercat introducerea unui nou set de cunoştinţe în programare, suplimentar programei şcolare în curs, teoria algoritmilor genetici, rezultatele obţinute au fost satisfăcătoare. Până aici materia parcursă le-a dat posibilitatea de a avea cunoştinţe despre teoria algoritmilor genetici, despre principalele instrumente cu care operează această teorie cât şi despre unele exemple de transpunere în practică a acestora. Predarea acestei metode a fost însoţită de multe exemple de la simplu la complex, elevii înţelegând utilizarea metodelor de lucru ale algoritmilor genetici, în problemele care cer acest lucru. Fişa de lucru a fost în sistem grilă şi rezultatele s-au prezentat astfel: Note 10, 9 8,7 6,5 4 medi a Nr.el evi 6 4 3 1 7.8 Clasa a XI-a C Se observă cu uşurinţă că introducerea unor cunoştinţe suplimentare în predarea informaticii la clasa a XI-a, dublată de aplicarea unor strategii didactice moderne este cât se poate de oportună. 26

Am constatat nu numai că elevii sunt fascinaţi de teoria algoritmilor genetici şi de posibilităţile sale de aplicare, dar ei chiar reuşesc să asimileze noţiunile de bază şi deprinderile de utilizare a acestora în programare. Extrapolând şi privind în ansamblu problema oportunităţii introducerii teoriei algoritmilor genetici în liceu, ca extindere a curriculumului curent, pot afirma că o deosebită eficienţă ar avea predarea acestora la clasele de excelenţă de la nivel judeţean, unde elevii au un nivel ridicat de cunoştinţe de programare şi le-ar fi de un real folos în concursurile şi olimpiadele şcolare. Deducem că nu este de ajuns ca elevii să lucreze singuri pentru asimilarea cunoştinţelor noi şi trebuie ca profesorul să fie bine pregătit, să acorde cât mai mult timp de observaţie şi gândire elevilor, să-i îndrume în special pe cei mai greoi în însuşirea cunoştinţelor, ţinând cont în acelaşi timp şi de elevii capabili de performanţă. Dacă facem o analiză comparativă vis a vis de stilurile de predare ( clasic şi inovator ) aplicate clasei experiment de-a lungul lecţiilor, deducem că rezultatele mult mai bune s-au obţinut aplicând metoda descoperirii, iar dacă privim lucrurile mai profund, putem afirma că rezultatele mai bune s-au obţinut printr-o contribuţie mai mare a elevilor (în cazul experimentului) şi mai mică din partea profesorului, acesta fiind scopul ce se urmăreşte prin noua optică a învăţământului. Rezultatele clasei unde s-a făcut experimentul sunt: Note Aplicaţia 10,9 8,7 6,5 4 Media Maximizarea unei functii 7 3 2 2 7,64 Expresia 7 4 2 1 7,71 27

aritmetica OneMax 8 3 3-7,85 Total 22 10 8 2 7,73 Procent 52,38% 23,8% 19,04% 4,78% Metoda descoperirii nu am folosit-o numai în lecţiile de comunicare şi recapitulare ci m-am gândit s-o folosesc şi în lecţiile de laborator, în aşa fel ca elevii să fie puşi să lucreze singuri după discutarea problemelor şi în acelaşi timp să poată să se autoevalueze. În acest scop am experimentat în continuare o lecţie de laborator cu aplicaţia: Ecuaţii diofantice ; În desfăşurarea acestuia am avut în vedere ca premiza de la care trebuie să pornim să fie delimitarea a ceea ce este util şi oportun să-i dăm elevului de-a gata şi ce putem să-l lăsăm să descopere. Folosind metoda descoperirii, elevii au raportat continuu cunoştinţele teoretice referitoare la algoritmii genetici. Realizând transferul cunoştinţelor rezultatul descoperirii a fost o nouă achiziţie informaţională şi operaţională. În acest fel, ce s-a obţinut prin efort propriu nu a fost simpla întipărire în memorie, ci a fost favorizată dezvoltarea aptitudinilor, deprinderilor de investigare, explorative şi experimentale. Prin realizarea lucrărilor, elevii au fost puşi în situaţia de a acţiona şi gândi independent, rolul profesorului fiind acela de a îndruma activitatea elevilor. În acest sens, profesorul nu mai apare ca transmiţător de cunoştinţe, ci ca organizator, îndrumător al învăţării. 28

Înainte de a prezenta elevilor problemele de care urmează să se ocupe am pus la punct noţiunile utile în rezolvare. Astfel folosind metoda conversaţiei am pus în evidenţă principiul de funcţionare al aplicaţiilor. Am propus elevilor o alta problema care foloseste algoritmul genetic clasic. Problema: Submulţimii de sumă dată Fiind dat un şir de N numere şi o sumă S, să se determine, folosind algoritmi genetici, o submulţime din numerele date a căror sumă este S. Datele de intrare ( N, S, şirul de numere ) se vor citi dintr-un fişier. Rezolvare Determinarea unei submulţimi de sumă dată este o problemă NPcompletă 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 29

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., 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 k (al k-lea element din mulţimea N, 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). 30

Programul C corespunzător aplicaţiei propuse este următorul: #include <stdio.h> #include <stdlib> #include <conio> int a[50],n,s,dif,sol[50],k,temp[50]; void citire() { int i; printf( \n N= );scanf( %d,&n) printf( \n s= );scanf( %d,&s) for(i=0;i<n;i++) printf( \n a[%d]=,i);scanf( %d,&a[i]); void calcul(int k;int t) { if (t==n-1){ if(k+a[n-1]<=s) { k=k+a[n-1]; temp[n-1]=1; if(s-k<dif){ dif=k; for(i=0;i<n;i++)sol[i]=temp[i]; 31

else{ if(k+a[t]<=s){ k=k+a[t]; temp[t]=1 ; for(i=0 ;i<n;i++)calcul(k,i); k=k-a[t] ; void main() { citire(); dif=1000000 ; k=0 ; calcul(k,0); printf( \n submultimea este: ); for(i=0;i<n;i++) if(sol[i]=1) printf( %d,a[i]); printf( \n diferenta minima este:%d,dif); 32

Pentru aplicaţia Submulţime de sumă dată, rezultatele au fost destul de mulţumitoare: Note 10,9 8,7 6,5 medi a Nr.el evi 7 4 3 Clasa a XI-a C 8,57 În continuare, la următoarele ore de laborator am ales o probleme cu un grad de dificultate mai ridicat pentru a testa care sunt elevii capabili de performanţă dar şi pentru a le da posibilitatea celor de nivel mediu să se antreneze în condiţii similare cu cei care dispun de un potenţial de inteligenţă mai ridicat. Este vorba de o problemă celebră, Problema comis-voiajorului pe care ei au putut-o rezolva în clasa a X-a folosind metoda backtracking. Le-am prezentat scripturile scrise în Matlab pentru o mai bună vizualizare a rezultatului execuţiei şi pentru o mai bună discuţie asupra implementării acestei probleme folosind algoritmi genetici. Pe marginea programului prezentat am discutat cu elevii, antrenând întreg colectivul, atât suportul teoretic al problemei, notiunile legate de teoria grafurilor şi algoritmi genetici, dar şi principalele aspecte ce trebuie luate în considerare atunci când se doreşte implementarea folosind algoritmi genetici. Problema comis-voiajorului Problema comis-voiajorului este o binecunoscută problemă NP-completă. Comis-voiajorul trebuie să viziteze n oraşe şi încearcă să găsească drumul cel mai scurt trecând prin fiecare oraş o singură dată şi revenind la punctul de plecare. Problema are echivalentul matematic de găsire într-un graf a unui 33

circuit hamiltonian de cost minim. S-a demonstrat că o soluţie în timp polinomial pentru această problemă sau pentru orice altă problemă NPcompletă, ar conduce la soluţii în timp polinomial pentru toate celelalte probleme NP-complete. Cea mai importantă problemă nerezolvată din teoria complexităţii este problema echivalenţei dintre clasele P şi NP. Opinia unanimă a cercetătorilor este că rezolvarea unei probleme NP-complete în timp polinomial este imposibilă şi în consecinţă P şi NP sunt diferite, dar acest lucru nu a putut fi demonstrat deocamdată. O problemă NP-completă nu poate fi aşadar rezolvată într-un timp rezonabil decât prin folosirea unor algoritmi nedeterminişti. Există şi aici din păcate riscul de a găsi un minim local, apropiat mai mult sau mai puţin ca valoare de minimul global. De multe ori soluţia găsită este considerată acceptabilă şi declarăm problema rezolvată. În alte situaţii însă, incertitudinea asupra soluţiei corecte poate constitui un motiv serios de îngrijorare. Problema a fost rezolvată folosind algoritmi genetici iar soluţiile obţinute depăşesc în cel mai rău caz cu 7% lungimea drumului optim, după unii autori, deşi după alţii eroarea poate ajunge chiar până la 25%. Specificul problemei a dus la crearea unor noi modalităţi de reprezentare a cromozomilor şi a operatorilor de încrucişare. Cele n oraşe se numerotează întro anumită ordine folosind primele n numere naturale. Un cromozom sau o soluţie a problemei reprezintă un drum închis care trece prin toate oraşele date. Dacă n=10 de exemplu, o soluţie posibilă ar putea fi S 1 =(5, 7, 8, 2, 4, 10, 9, 6, 3, 1 ). Există mai mulţi operatori de încrucişare. Unul dintre cei mai cunoscuţi este operatorul PMX (Partially matched crossover ). Se foloseşte de fapt o încrucişare în două puncte, dar în acest caz, spre deosebire de codificarea binară, este interzisă repetarea unui oraş de două ori în structura cromozomului. Ca atare, atunci când apare o astfel de situaţie, oraşul respectiv este înlocuit cu 34

oraşul care se găseşte pe aceeaşi poziţie din cromozomul celuilalt părinte. Dacă acceptăm că oraşele sunt nodurile unui graf, atunci etapele parcurse de acest operator sunt următoarele: Se generează o listă de drumuri, în care se trec toate legăturile existente dintre nodurile cromozomilor părinţi, luate două câte două. Pentru fiecare nod se construieşte câte o sublistă care conţine nodurile adiacente lui. Se alege aleator ca nod de plecare primul nod al unuia din cei doi părinţi. Nodul de plecare este considerat nod actual şi se marchează în toate sublistele construite pentru a evita alegerea lui din nou în etapele următoare. Se stabileşte care din nodurile următoare din sublista nodului actual au mai puţine noduri distincte în sublistele lor şi nodul respectiv se alege ca nod actual. Dacă există mai multe alternative, se alege aleator una dintre ele şi se face marcajul nodului actual în toate sublistele construite. Dacă în sublista nodului actual nu mai există noduri disponibile, atunci se alege aleator din mulţimea nodurilor, unul care nu este marcat. Selecţia celor mai adaptaţi cromozomi din populaţie în vederea încrucişării se face proporţional, cu un algoritm de tip ruletă. Mutaţia este şi aici foarte importantă. Există două metode folosite: o mutaţie mai slabă, prin interschimbarea poziţiei a două oraşe şi o mutaţie mai dură, prin interschimbarea sensului de parcurgere a unui număr de oraşe alese aleator. În continuare este prezentat codul sursă în limbajul C care implementează algoritmul descris mai sus. #include <stdio.h> /* Numarul maxim de orase. */ #define N_MAX 30 /* Constanta care se foloseste ca valoare 35

de initializare la cautarea minimului. */ #define MINIM 10000 /* Numarul de orase. */ int n; /* Matricea distantelor dintre orase. */ int d[n_max][n_max]; /* Drumul comis voiajorului. Contine indicii oraselor in ordinea in care sunt ele parcurse. */ int drum[n_max]; /* Vector care memoreaza care orase au fost vizitate. vizitat[k] va fi 1 daca orasul k a fost vizitat, 0 altfel. */ int vizitat[n_max]; /* Functie care alege urmatorul element care sa fie prelucrat din multimea oraselor. Primeste ca parametru ultimul oras care a fost vizitat, si returneaza urmatorul oras care sa fie vizitat precum si lungimea drumului catre acesta. */ void alege(int ultimul, int *min, int *j_min) { int j; /* Cautam drumul minim de la ultimul oras pana la orasele neparcurse inca. */ *min = MINIM; *j_min = -1; for (j=0; j<n; j++) if (!vizitat[j]) { if (d[ultimul][j] < *min) { *min = d[ultimul][j]; *j_min = j; int main(void) { FILE *fin; int i, j; int count, cost, min, j_min; 36

/* Deschidem fisierul pentru citire in mod text. */ fin = fopen("comis.in", "rt"); if (!fin) { printf("eroare: nu pot deschide fisierul.\n"); return -1; /* Citim datele din fisier. */ fscanf(fin, "%d", &n); for (i=0; i<n; i++) for (j=0; j<n; j++) fscanf(fin, "%d", &(d[i][j])); /* Afisam pe ecran datele preluate din fisier. */ printf("avem %d orase.\n", n); printf("distantele dintre orase sunt:\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++) printf("%d ", d[i][j]); printf("\n"); printf("\n"); /* Initial nici un oras nu este vizitat. */ for (i=0; i<n; i++) vizitat[i] = 0; /* Primul oras vizitat este cel cu numarul "0". Costul total este zero deocamdata. */ drum[0] = 0; vizitat[0] = 1; count = 1; cost = 0; /* Parcurgem restul de n-1 orase. */ for (i=0; i<n-1; i++) { /* Alegem urmatorul oras care sa fie vizitat. */ alege(drum[count-1], &min, &j_min); /* Parcurgem drumul minim gasit si vizitam un nou oras. */ printf("am ales drumul (%d, %d) de cost %d.\n", drum[count-1], j_min, min); drum[count] = j_min; vizitat[j_min] = 1; count++; cost += min; 37

/* Parcurgem drumul de la ultimul oras vizitat catre primul oras si actualizam costul total. */ cost += d[drum[n-1]][0]; /* Afisam drumul parcurs. */ printf("\ndrumul are costul %d si este:\n", cost); for (i=0; i<n; i++) printf("%d ", drum[i]); printf("0\n"); return 0; Figura 1: Reţea de oraşe pentru problema comis-voiajorului Fişierul cu date de intrare pentru reţeaua de oraşe din figura 1 este următorul: 4 0 4 2 7 4 0 2 1 2 2 0 1 7 1 1 0 Pentru această aplicaţie, rezultatele au fost destul de mulţumitoare, ţinând cont de gradul de dificultate mai ridicat al aplicaţiei.: Note 10,9 8,7 6,5 medi a 38

Nr.el evi 6 5 3 Clasa a XI-a C 8,28 Din experimentarea lecţiilor de laborator prin metoda descoperirii, pot să afirm că se obţin rezultate mult mai bune decât printr-o predare clasică şi în acest fel elevii sunt familiarizaţi cu munca independentă, de cercetare şi generalizarea cunoştinţelor. În lecţiile de predare învăţare am folosit multe metode, dar am pus accent în acest experiment pe metoda descoperirii. Alături de aceasta am folosit metoda problematizării, mai ales după ce elevii au prins puţină experienţă. Metoda problematizării a fost acceptată cu uşurinţă de elevi deoarece ea foloseşte experienţa anterioară în rezolvarea problemelor şi situaţiilor problemă, prin aceasta elevii şi-au completat fondul de cunoştinţe, prin efort personal de rezolvare. Instruirea problematizată au desfăşurat-o dirijat şi acest model având următoarele caracteristici împărţind activitatea în două profesor elev: Profesor oferă probleme de rezolvare; oferă elemente de sprijin pentru rezolvare; oferă elemente pentru alcătuirea unui plan de rezolvare; dirijează activitatea de rezolvare; dirijează interpretarea rezultatelor; Elevi consemnează datele problemei; identifică elementele de sprijin oferite; alcătuiesc planul de rezolvare; efectuează investigaţii; interpretează rezultatele; formulează concluziile; formulează noile cunoştinţe obţinute. 39

dirijează formularea concluziilor; stimulează identificarea elementelor noi prezentate în concluzie. Măsuri : Metodele activ-participative, să fie utilizate intens, mai ales la orele de Aplicaţii practice. În afara manualului elevii mai au nevoie şi de cărţi de specialitate, cu aplicaţii practice. Conştientizarea faptului că lucrul cu calculatorul trebuie suplimentat acasă sau în alte împrejurări (colegi, firme, etc.). 40

CAPITOLUL V CONCLUZII. PROPUNERI METODICE Funcţia principală a proiectului de tehnologie didactică este de a orienta desfăşurarea lecţiei astfel încât învăţarea să se realizeze în condiţiile cele mai adecvate iar resursele didactice să fie valorificate corespunzător în funcţie de potenţialul de care dispun elevii. Proiectarea instruirii se poate desfăşura într-un număr mare de variante. În desfăşurarea unei lecţii profesorul se poate întâlni cu diverse evenimente de instruire pentru care trebuie să găseasca soluţii imediate, adaptând schema cadru a proiectului de tehnologie didactică propus la noile condiţii cu care se confruntă. Aceste situaţii pot fi generate de reacţiile elevilor în procesul de instruire, de condiţiile tehnice necesare pentru aplicarea proiectului şi de eventuale modificări ale timpului de desfăşurare. În urma experimentării acestor lecţii de predare-învăţare-evaluare folosind metodele activ-participative: problematizarea, algoritmizarea, descoperirea, brainstorming-ul la disciplina informatică se desprind următoarele concluzii şi propuneri metodice: La aplicaţia Convergenţa către un model, la clasa a XI-a D, deşi la începutul experimentului rezultatele au fost mai puţin îmbucurătoare, pe parcursul experimentului s-a observat o creştere a notelor de 7, 8, 9 şi scăderea celor sub limită şi mediocre, datorită creşterii ponderii predării formative în detrimentul celei clasice La obiectul aplicaţii practice de laborator, rezultatele au fost mai bune, majoritatea notelor fiind între 7 10; 41

Şi mai bune rezultate au fost obţinute în rezolvarea aplicaţiilor Maximizarea unei functii, Expesia aritmetica, ONEMAX, Hello World, Submulţime de sumă dată unde la aproape toate lecţiile experimentale media pe clasă a fost peste 7; Rezultatele bune obţinute, mă îndreptăţesc să afirm că, privind în profunzime avantajele acestei metode, în ceea ce priveşte raportul dintre învăţământ şi predare, majoritatea elevilor participanţi la experiment au devenit participanţi activi în acest proces, au reuşit să realizeze informaţia şi nu s-o imagineze de-a gata, au ajuns să poată observa esenţialul, să facă analize şi sinteze, comparaţii, ridicându-se pe această cale la generalizări şi achiziţionări de noi cunoştinţe prin eforturi proprii; Pentru obţinerea rezultatelor dorite, am dedus că aplicarea acestei metode cere din partea profesorului o bună pregătire atât ştiinţifică cât şi metodică, o urmărire sistematică a rezultatelor obţinute; Alegerea lecţiilor pentru a fi predate prin metode active să nu se facă în mod pripit, ci încă de la începutul semestrului pentru a avea timp de pregătire a lor; Metodele active se pot folosi atât la lecţiile de comunicare, cât şi la lecţiile de fixare şi consolidare, de sistematizare, de evaluare şi nu în ultimul rând la lecţiile de laborator; Metodele active trebuie folosite în mod gradat progresiv: începute de profesor la clasa a IX-a, dar nu chiar de la primele lecţii, ci numai după ce elevul a fost iniţiat asupra modului de lucru, continuate în clasele a X-a, a XI-a, a XII-a, dar pe fiecare treaptă de clasă, pretenţiile care stau în faţa elevilor sunt mai mari, în sensul că observaţiile lor trebuie să ducă la generalizări şi abstractizări; Folosirea acestei metode cere un bogat material didactic pentru a-i da posibilitatea elevului să-l prelucreze şi să afle adevărurile cerute de noi; 42