Documente Academic
Documente Profesional
Documente Cultură
II
LUȚĂ COSTINA CLAUDIA
ALGORITMI GENETICI
VOL.II
ISBN 978-973-0-16090-1
0
SLATINA
2014
ALGORITMI GENETICI Vol.II
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
ALGORITMI GENETICI Vol.II
CERCETARE PEDAGOGICĂ
CAPITOLUL III
2
ALGORITMI GENETICI Vol.II
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
ALGORITMI GENETICI Vol.II
mentul comporta-
mentului
5
ALGORITMI GENETICI Vol.II
6
ALGORITMI GENETICI Vol.II
7
ALGORITMI GENETICI Vol.II
8
ALGORITMI GENETICI Vol.II
10
ALGORITMI GENETICI Vol.II
Observaţia
Metoda bibliografică
11
ALGORITMI GENETICI Vol.II
12
ALGORITMI GENETICI Vol.II
Metoda statistică
13
ALGORITMI GENETICI Vol.II
CAPITOLUL IV
14
ALGORITMI GENETICI Vol.II
15
ALGORITMI GENETICI Vol.II
16
ALGORITMI GENETICI Vol.II
• (1) + (2) => valoare lui v in baza 10 trebuie sa fie cel putin 3*1000000 =>
avem nevoie de 22 de biti:
2097152=221<3000000≤222=4194304
17
ALGORITMI GENETICI Vol.II
Selectia
1. Calculam eval(vi) pentru fiecare cromozom i=(1…pop_size).
2. Calculam F=suma(eval(vi)).
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).
18
ALGORITMI GENETICI Vol.II
9,
Note 6, 5 4
10 7,8
Nr.elevi 7 3 2 2
Clasa a XI-a C
Exemplu:
20
ALGORITMI GENETICI Vol.II
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
ALGORITMI GENETICI Vol.II
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:
Nr.ele
7 4 2 1
vi
Clasa a XI-a C
22
ALGORITMI GENETICI Vol.II
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 s1 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 s1 dacă s1 nu este multiplu de N, şi 2s1 î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)=s1 Se deschide
fişierul ex1.prj din Borland şi se modifică fişierul ex1.c. Fişierul rezultat va avea
forma :
#include<stdio.h>
#include”sugar.h”
int evaluate(SuChromosome*chrom,double*fitness);
{
int i;
int N=3;
int count=0;
double result=0.0;
if(count%N==0)result=2*count;
*fitness=result
return 0;
}
generation 10
population 10
length 10
în
generation 100
population 50
length 10
trebui modificată)
24
ALGORITMI GENETICI Vol.II
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.
Nr.elevi 7 4 3 -
Clasa a XI- a C
Rezultatele au fost:
Nr.ele
8 4 2 -
vi
25
ALGORITMI GENETICI Vol.II
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.
10, medi
Note 6,5 4
9 8,7 a
Nr.el 7.8
6 4 3 1
evi
Clasa a XI-a C
26
ALGORITMI GENETICI Vol.II
Note
“Maximizarea
7 3 2 2 7,64
unei functii”
“Expresia 7 4 2 1 7,71
27
ALGORITMI GENETICI Vol.II
aritmetica”
„OneMax” 8 3 3 - 7,85
Total 22 10 8 2 7,73
28
ALGORITMI GENETICI Vol.II
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).
29
ALGORITMI GENETICI Vol.II
30
ALGORITMI GENETICI Vol.II
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]);
}
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
ALGORITMI GENETICI Vol.II
medi
Note 10,9 8,7 6,5
a
Nr.el 8,57
7 4 3
evi
Clasa a XI-a C
Problema comis-voiajorului
33
ALGORITMI GENETICI Vol.II
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
ALGORITMI GENETICI Vol.II
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 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.
#include <stdio.h>
35
ALGORITMI GENETICI Vol.II
/* Numarul de orase. */
int n;
int main(void)
{
FILE *fin;
int i, j;
int count, cost, min, j_min;
36
ALGORITMI GENETICI Vol.II
37
ALGORITMI GENETICI Vol.II
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
medi
Note 10,9 8,7 6,5
a
38
ALGORITMI GENETICI Vol.II
Nr.el 8,28
6 5 3
evi
Clasa a XI-a C
Profesor Elevi
39
ALGORITMI GENETICI Vol.II
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
ALGORITMI GENETICI Vol.II
CAPITOLUL V
41
ALGORITMI GENETICI Vol.II
42
ALGORITMI GENETICI Vol.II
Reuşita unei lecţii depinde şi de modul cum este organizată din punct de
vedere metodic. Folosirea la timp a materialului didactic, trecerea de la un
moment la altul al ei după cerinţele desfăşurării logice şi după
posibilităţile de asimilare ale elevilor, respectarea principiilor didactice în
raport cu vârsta elevilor şi cu conţinutul materialului didactic pot asigura
realizarea unei lecţii valoroase. Pentru a obţine rezultate mai bune în
organizarea metodică a lecţiei, este necesar ca fiecărei etape să i se
rezerve o durată potrivită. Chestionarea elevilor, de exemplu, să nu
răpească prea mult timp, încât tema nouă să fie expediată. O lecţie bine
organizată are densitate, pe tot parcursul ei elevii fiind activi. Într-o
asemenea lecţie nimic nu se face la întâmplare. După o astfel de lecţie,
elevii îşi dau seama că au realizat un progres; au dobândit cunoştinţe noi,
şi-au consolidat unele priceperi deprinderi, înţeleg mai corect şi mai
profund fenomenele respective. O lecţie bine organizată din punct de
vedere metodic este o verigă dintr-un lanţ, este deci o continuare a
lecţiilor anterioare şi o pregătire pentru cele care se vor preda ulterior;
Ţinând cont de aceste observaţii (concluzii), menţionate, deduse din
experimentul pe care l-am efectuat, afirm încă o dată că folosirea acestei
metode prin avantajele pe care le pun la dispoziţia elevilor trebuie extinsă
în predarea lecţiilor de informatică, contribuind alături de celelalte metode
la formarea unor oameni care să facă faţă cerinţelor de viitor;
Tot pe baza observaţiilor deduse din experiment, pot afirma că teoria
algoritmilor genetici poate fi inclusă cu succes în predarea informaticii la
clasa a XI-a, ca modalitate de extindere a curriculumului deja existent. O
şi mai mare oportunitate apare atunci când aceasta este oferită, împreună
cu depinderile de lucru necesare, elevilor capabili de performanţă;
44
ALGORITMI GENETICI Vol.II
ANEXE
PROIECT DIDACTIC
Disciplina : Informatică ;
Clasa : a XI-a;
Profesor :
Unitatea de învăţare : Algoritmi genetici;
Tema : Algoritmi genetici. Metode de selecţie
Durata: 3 ore;
Tip de lecţie: comunicare şi însuşire de noi cunoştiinţe;
Locul de desfăşurare : Laborator;
Obiective educaţionale :
Obiective cognitive :
- să dovedească trăinicia noţiunilor dobândite la disciplina respectivă, în
capitolul “Algoritmi genetici” ;
- să utilizeze corect metodele de selecţie a cromozomilor în programele
scrise folosind algoritmi genetici;
- să identifice problemele care se rezolvă cu algoritmi genetici.
Obiective afective :
- să argumenteze corect alegerea unei variante;
- să aprecieze corect soluţiile oferite de ceilalţi membri ai grupei;
- să se autoevalueze în raport cu obiectivele şi cu clasa;
Obiective psihomotorii :
- să utilizeze corect noţiunile teoretice însuşite
- să implementeze algoritmi de selecţie utilizând limbajul C++ în
programe ce utilizează algoritmi genetici.
45
ALGORITMI GENETICI Vol.II
Obiective operaţionale:
O1 : Să-şi însuşească modul de funcţionare al metodelor se selecţie a
cromozomilor în algoritmii genetici şi să simuleze algoritmi pentru diverse
exemple;
O2: Să analizeze corect fiecare problemă şi să aplice corect metoda.
Strategii didactice :
Principii didactice :
principiul participării şi învăţării active ;
principiul asigurării progresului gradat al performanţei ;
principiul conexiunii inverse.
Metode de învăţământ :
metode de comunicare orală : expunere, conversaţie, problematizare
metode de acţiune : exerciţiul, învăţare prin descoperire
Procedee de instruire :
explicaţia în etapa de comunicare
învăţarea prin descoperire, prin rezolvarea de probleme;
problematizarea prin crearea situaţiilor problemă;
conversaţia de consolidare în etapa de fixare a cunoştiinţelor ;
Forme de organizare : frontală şi individuală ;
Forme de dirijare a învăţării : dirijată de profesor sau independentă ;
Resurse materiale :
material bibliografic : Michalewicz, Z. « Genetic Algorithms+Data
Structures =Evolution Programs «. Springer-Verlag, Berlin, 1994
(second edition).
fişe de lucru
planşe
calculator
46
ALGORITMI GENETICI Vol.II
Metode de evaluare :
evaluare iniţială : întrebări orale
set de aplicaţii
Desfăşurarea lecţiei :
Moment organizatoric :
pregătirea lecţei :
întocmirea proiectului didactic
pregătirea setului de întrebări
pregătirea setului de aplicaţii
pregătirea temei
organizarea şi pregătirea clasei :
verificarea frecvenţei
captarea atenţiei clasei :
anunţarea subiectului pentru tema respectivă
anunţarea obiectivelor urmărite
anunţarea modului de desfăşurare a activităţii
Reactualizarea cunoştinţelor :
Se realizează un set de întrebări pentru reactualizarea cunoştinţelor
teoretice, ca mai jos, ţinând cont de faptul că până acum am studiat metode de
codificare şi construcţie a funcţiei de adecvare pe diferite exemple.
Tabel nr. 1
Răspuns aşteptat
Întrebare
47
ALGORITMI GENETICI Vol.II
genetic
Dintre două soluţii Dintre două soluţii admisibile este mai bună
admisibile, care este cea care are adecvarea mai mare
mai bună vis a vis de
funcţia de adecvare?
Exemplul 1:
Folosind un algoritm genetic sa se maximizeze o functie data.
Exemplul 2:
Să se maximizeze numărul de cifre egale cu 1 dintr-un şir de L cifre
binare.
48
ALGORITMI GENETICI Vol.II
Tabel nr. 2
Funcţii exercitate de Activităţi ale lecţiei Metode
evenimentul
instrucţional
Reactualizarea Se face prin chestionarul Conversaţia de fixare
cunoştinţelor cu întrebări conform
tabelului nr. 1
Intensificarea reţinerii Se face cu testul propus Exerciţiul introductiv;
şi asigurării conform tabelului nr. 1 conversaţia de
transferului de consolidare.
informaţii
Obţinerea performanţei Se realizează cu setul de Problematizarea,
exemple introductive, exerciţiul de consolidare.
prin care se urmăreşte
49
ALGORITMI GENETICI Vol.II
iar totţi cei generaţi prin încrucişare şi mutaţie să fie transferaţi în noua
generaţie.
51
ALGORITMI GENETICI Vol.II
Exemplu de utilizare :
Program ce constă în maximizarea unei funcţii definite f(s)=s1 Se deschide
fişierul ex1.prj din Borland şi se modifică fişierul ex1.c. Fişierul rezultat va avea
forma :
#include<stdio.h>
#include”sugar.h”
int evaluate(SuChromosome*chrom,double*fitness);
{
int i;
int N=3;
int count=0;
double result=0.0;
if(count%N==0)result=2*count;
*fitness=result
return 0;
}
52
ALGORITMI GENETICI Vol.II
generation 10
population 10
length 10
în
generation 100
population 50
length 10
modificată).
53
ALGORITMI GENETICI Vol.II
PROIECT DIDACTIC
Disciplina : Informatică ;
Clasa : a XI-a;
Profesor :
Unitatea de învăţare : Algoritmi genetici;
Tema : Aplicaţia Submulţime de sumă dată – impementare folosind algoritmi
genetici
Tip de lecţie: formare şi consolidare a deprinderilor şi priceperilor
Locul de desfăşurare : Laboratorul de informatică;
Strategii didactice :
Principii didactice :
principiul participării şi învăţării active ;
principiul asigurării progresului gradat al performanţei ;
principiul conexiunii inverse.
Metode de învăţământ :
Conversaţia ;
55
ALGORITMI GENETICI Vol.II
Explicaţia ;
Exerciţiul ;
Problematizarea ;
Algoritmizarea ;
Procedee de instruire :
conversaţia de consolidare ;
problematizarea prin crearea situaţiilor problemă;
exerciţii de consolidare ;
Forme de organizare :
frontală ;
individuală ;
pe grupe ;
Forme de dirijare a învăţării : dirijată de profesor sau prin materiale
didactice şi independentă ;
Resurse materiale :
material bibliografic : Davis, L. « Handbook of Genetic Algorithms
« , Van Nostrand Reinhold, 1991
fişe de lucru ;
set de aplicaţii ;
calculator ;
Metode de evaluare :
evaluare sumativă ;
evaluare continuă pe parcursul lecţiei (fişă de lucru şi calculator) ;
evaluare formativă ;
Desfăşurarea lecţiei :
Moment organizatoric :
pregătirea lecţei :
întocmirea proiectului didactic
56
ALGORITMI GENETICI Vol.II
Tabel nr. 1
Întrebare
Răspuns aşteptat
Definiţi noţiunea de Este o mulţime ordonată de elemente, numite gene ale
cromozom căror valori determină caracteristicile unui individ. În
genetică, poziţiile pe care se afla genele în cadrul
cromozomului se numesc loci, iar valorile pe care le
poate lua se numesc alele. În calculul evolutiv
cromozomii sunt vectori ce conţin codificarea unei soluţii
potenţiale şi sunt numiţi indivizi sau configuraţii. Astfel,
genele nu sunt altceva decât elementele acestor vectori.
Definiţi noţiunea de O populaţie este constituită din indivizi care trăiesc intr-
57
ALGORITMI GENETICI Vol.II
58
ALGORITMI GENETICI Vol.II
Tabel nr. 2
Funcţii exercitate de Activităţi ale lecţiei Metode
evenimentul
instrucţional
Reactualizarea Se face prin chestionarul Conversaţia de fixare
cunoştinţelor cu întrebări conform
tabelului nr. 1
Evaluarea performanţei Se propune o aplicaţie Problematizarea,
care se rezolvă prin brainstorming
algoritmi genetici,
urmărindu-se scrierea
corectă a programului
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
59
ALGORITMI GENETICI Vol.II
60
ALGORITMI GENETICI Vol.II
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]);
}
61
ALGORITMI GENETICI Vol.II
}
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);
}
Concluzii:
Se vor face aprecieri individuale şi colective asupra activităţii desfăşurate.
62
ALGORITMI GENETICI Vol.II
BIBLIOGRAFIE:
63
ALGORITMI GENETICI Vol.II
CUPRINS:
CAPITOLUL III
CERCETAREA PEDAGOGICA
CAPITOLUL IV
PREZENTAREA ŞI INTERPRETAREA REZULTATELOR OBŢINUTE
CAPITOLUL V
CONCLUZII. PROPUNERI METODICE
ANEXE
BIBLIOGRAFIE
64