Laboratorul 2 Problema tăieturii minime Considerăm un graf (neorientat) G = (V, E) (V e mulţimea vârfurilor, E e mulţimea muchiilor) care este conex (

Documente similare
Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

2.1.Tipul tablou unidimensional

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

E_d_Informatica_sp_MI_2015_bar_02_LRO

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

A.E.F. - suport laborator nr.5 sem.ii Analiza suprafețelor prin utilizarea elementelor 2D În acest laborator sunt atinse următoarele aspecte: realizar

A.E.F. - suport laborator nr.7 sem.ii Utilizarea rețelelor de tip 1D & 2D În acest laborator sunt atinse următoarele aspecte: conectarea unui element

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Analiză statică Analiza fluxului de date 23 octombrie 2014

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Structuri de date pentru partiţii de mulţimi O partiţie finită a unei mulţimi nevide S este o mulţime finită de submulţimi ale lui S: {S 1, S 2,..., S

Introducere

Slide 1

Paradigme de programare

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Microsoft Word - _arbori.docx

Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

Analiză de flux de date 29 octombrie 2012

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

PowerPoint Presentation

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Programarea şi utilizarea calculatoarelor

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

A.E.F. - suport laborator nr.10 sem.ii Analiza stării de contact între elemente 3D În acest laborator sunt atinse următoarele aspecte: analiza contact

Slide 1

Slide 1

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

G.I.S. Curs 3

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Retele Petri si Aplicatii

Modelarea si Simularea Sistemelor de Calcul

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Microsoft Word - 2 Filtre neliniare.doc

E_d_Informatica_sp_SN_2014_bar_10_LRO

1

Şcoala ………

ALGORITHMICS

Microsoft Word - Lucrarea_10_t.doc

Emoji Planet Video Slot™

PROIECT DIDACTIC Clasa a VII-a Informatică și TIC

FILTRE DE REALIZARE CU CIRCUITE DE INTEGRARE

Calcul Numeric

Microsoft Word - Algoritmi genetici.docx

A.E.F. - suport laborator nr.3 sem.ii Aplicațe privind utilizarea rețelelor 1D În acest laborator sunt atinse următoarele aspecte: realizarea schițelo

Laborator 11 Lect. dr. Daniel N.Pop Departamentul de Calculatoare-Inginerie electrică 7.ian

Electricitate II

Laborator 7- Distributii de probabilitate clasice Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 15.nov

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

I. Partea introductivă Proiectul unității de învățare CONCEPTUL DE MATRICE ŞCOALA: Colegiul Național Petru Rareș Suceava CLASA: a XI a- matematică / a

ExamView Pro - Untitled.tst

客厅电脑 酷影Q1000

tehnologii web

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Cursul 13 Mulţimi Julia Fie f : C C o funcţie complexă şi fie f n = f f f iterata de ordin n a lui f. Peste tot în continuare vom presupune că f este

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Cuantizare Vectoriala.doc

COMISIA EUROPEANĂ Bruxelles, COM(2018) 274 final ANNEX 1 ANEXĂ la Propunerea de DIRECTIVĂ A PARLAMENTULUI EUROPEAN ȘI A CONSILIULUI de modif

MergedFile

Laborator 9- Estimarea parametrilor Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 29.nov

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

PowerPoint Presentation

Laborator 3 - Simulare. Metode de tip Monte Carlo. I. Estimarea ariilor şi a volumelor RStudio. Nu uitaţi să va setaţi directorul de lucru: Session Se

客厅电脑 酷影Q1000

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

BOLLYWOOD STORY TOUCH Tipul de joc: Touch Game Câștigul jucătorului: 96.1% Bollywood Story Touch este un slot video plin de culoare cu 5 role, 3 rându

Subiectul 1

Învățare automată Laborator 9 Rețele neuronale în TensorFlow TensorFlow (abreviat TF) este o bibliotecă open source ce permite efectuarea de calcule ș

Cursul 14 Mulţimea lui Mandelbrot Mulţimile şi funcţiile cu caracter excepţional (mulţimea lui Cantor, insula lui Koch, funcţiile lui Weierstrass şi T

PowerPoint Presentation

Proiectarea Algoritmilor

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina:

Proiectarea Sistemelor Software Complexe

Laborator 3

SSC-Impartire

Matematici aplicate științelor biologie Lab06 MV

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Diapositive 1

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Settlement participant system

Elemente de aritmetica

Microsoft Word - tcad_l6.doc

Concursul de Matematică Upper.School ediția 2019 Etapa III - Clasa a 7-a Lista de probleme PROBLEMA 1 / 4 punctaj: 7 Aflați numerele prime p, q, r car

Capitole Speciale de Informatica - Curs 5: Extragerea informatiilor prin feedback de relevanta. Metode probabiliste de extragere a informatiilor

Microsoft Word - Curs_09.doc

Microsoft Word - TIC5

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

Ghid de referinţă rapidă pentru Seria ZT400™

ALGORITHMICS

ROMÂNIA MINISTERUL EDUCAŢIEI NAŢIONALE UNIVERSITATEA OVIDIUS DIN CONSTANŢA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ PLAN DE ÎNVĂŢĂMÂNT (conţine 11 pagi

Transcriere:

Laboratorul 2 Problema tăieturii minime Considerăm un graf (neorientat) G = (V, E) (V e mulţimea vârfurilor, E e mulţimea muchiilor) care este conex (adică, între oricare două vârfuri există cel puţin un drum). Spunem că C E este o mulţime de tăietură pentru G, dacă graful G C = (V, E \ C) nu este conex. Problema tăieturii minime: să se determine o mulţime de tăietură C pentru G astfel încât C (i.e. cardinalul lui C) este minim. O astfel de mulţime de tăietură spunem că este minimă. Ideea de bază a algoritmului aleator Random Min-Cut este de a contracta, la fiecare iteraţie, câte o muchie aleasă aleator, până când mai rămân doar 2 vârfuri. O contracţie a unei muchii e = (u, v), care leagă vârfurile u şi v, presupune: eliminarea muchiilor care conectează pe u cu v, înlocuirea nodurilor u şi v cu un nou nod w şi păstrarea tuturor celorlalte muchii, inclusiv a celor care erau conectate cu u sau v, acestea fiind conectate acum cu w. Pseudocodul algoritmului: RndMinCut(G) begin repeat randomly pick an edge and contract it until V =2 return the set of remaining edges Fie V = n (n N, n > 2). Din Seminarul 2 avem: Probabilitatea ca RndMinCut(G) să genereze o mulţime de tăietură minimă pentru graful G = 2 (V, E) este cel puţin. n(n 1) Dacă rulăm RndMinCut(G) de Cn 2 [ln n] ori şi returnăm dintre toate mulţimile de tăietură generate una cu cardinal minim, atunci probabilitatea ca mulţimea de tăietură returnată să nu fie minimă este este cel mult 1. n a) Implementaţi în Matlab RndMinCut(G) şi testaţi-l pe graful următor. 1 4 5 8 2 3 6 7 Pentru a rezolva cerinţa dată la a), puteţi completa spaţiile punctate din codul următor, care foloseşte funcţia graph pentru a genera o clasă asociată unui graf (puteţi apela help graph pentru a afla mai informaţii depre obiectele, metodele şi proprietăţile corespunzătoare clasei generate de graph).

%Cod pentru Matlab 2018a sau 2018b. %Exemplu de generare a unui graf si de apel pentru RndMinCut: %>>E=[1 2;1 3;1 4;2 3;2 4;3 4;3 5;4 6;5 6;5 7;5 8;6 7;6 8;7 8]; %>>G=graph(E(:,1),E(:,2)); %>>H=RndMinCut(G); %>>H.Nodes %>>H.Edges function G=RndMinCut(G) n=numnodes(g); G.Nodes.Name(:,1)=cellstr(string(1:n)); subplot(1,n-1,1); plot(g,'-k'); for i=2:n-1 e=randi(numedges(...)); u=findnode(g,g.edges.endnodes(...,1)); v=findnode(g,g.edges.endnodes(...,2)); G=rmedge(G,...,...); G = addnode(g,strcat(g.nodes.name(...,1),',',g.nodes.name(...,1))); G_old=G; G=rmnode(G,G.Nodes.Name([...,...],1)); for j=1:numedges(...) if ismember(g_old.edges.endnodes(...,1),g_old.nodes.name([...,...],1)) G=addedge(G,G_old.Edges.EndNodes(...,2),G_old.Nodes.Name(numnodes(...),1)); elseif ismember(g_old.edges.endnodes(...,2),g_old.nodes.name([...,...],1)) G=addedge(G,G_old.Edges.EndNodes(...,1),G_old.Nodes.Name(numnodes(...),1)); subplot(1,n-1,i); plot(g,'-k'); %Cod pentru versiuni de Matlab intre 2015b si 2017b. %Exemplu de generare a unui graf si de apel pentru RndMinCut: %>>E=[1 2;1 3;1 4;2 3;2 4;3 4;3 5;4 6;5 6;5 7;5 8;6 7;6 8;7 8]; %>>G=graph(E(:,1),E(:,2),ones(size(E,1),1)); %>>H=RndMinCut(G); %>>H.Nodes %>>H.Edges.Weight function G=RndMinCut(G) n=numnodes(g); G.Nodes.Name(:,1)=cellstr(string(1:n)); subplot(1,n-1,1); plot(g,'-k');

for i=2:n-1 e=randsample(1:numedges(...),1,true,g.edges.weight/sum(g.edges.weight)); u=findnode(g,g.edges.endnodes(...,1)); v=findnode(g,g.edges.endnodes(...,2)); G=rmedge(G,...,...); G = addnode(g,strcat(g.nodes.name(...,1),',',g.nodes.name(...,1))); G_old=G; for j=1:numedges(...) nodes_edge_j=findnode(g,g_old.edges.endnodes(...,:)); if ismember(nodes_edge_j(1),[...,...]) ide=findedge(g,nodes_edge_j(2),numnodes(g)); if ide==0 G=addedge(G,nodes_edge_j(...),numnodes(...),G_old.Edges.Weight(...)); else G.Edges.Weight(ide)=G.Edges.Weight(ide)+G_old.Edges.Weight(j); elseif ismember(nodes_edge_j(2),[...,...]) ide=findedge(g,nodes_edge_j(1),numnodes(g)); if ide==0 G=addedge(G,nodes_edge_j(...),numnodes(G),G_old.Edges.Weight(...)); else G.Edges.Weight(ide)=G.Edges.Weight(ide)+G_old.Edges.Weight(j); G=rmnode(G,G.Nodes.Name([...,...],1)); subplot(1,n-1,i); plot(g,'-k','linewidth', G.Edges.Weight); b) Rulaţi, fără reprezentări grafice, RndMinCut(G) de Cn 2 [ln n] ori pentru graful următor şi afişaţi cardinalul cel mai mic dintre cardinalele mulţimilor de tăietură generate. Este cardinalul afişat al unei mulţimi de tăietură minimă? 3 4 6 1 2 5

Problema podurilor Un călător trebuie să ajungă de pe malul sudic pe malul nordic ale unei mări, traversând o reţea de poduri şi insule, reprezentate în figura de mai jos. Insulele sunt distribuite pe n linii şi n + 1 coloane (n N ). Cu o zi înaintea sosirii călătorului, a avut loc o furtună, în urma căreia fiecare pod, indepent de celelalte, a fost distrus cu probabilitate 50%. În figura următoare avem reprezentată o reţea de insule şi poduri după furtună, pentru n = 1, care îi permite călătorului să treacă de pe un mal pe altul. În figura următoare avem reprezentată o reţea de insule şi poduri după furtună, pentru n = 2, care nu îi permite călătorului să treacă de pe un mal pe altul.

a) Simulaţi grafic, pentru n dat, configuraţia podurilor după furtună şi afişaţi dacă este posibilă sau nu trecerea de pe malul sudic pe malul nordic pentru călător. Pentru a rezolva cerinţa dată la a), puteţi să completaţi spaţiile punctate din codul următor. function storm(n) clf; axis equal; axis off;hold on; axis([-2 n+3-2 n+3]); plot(repmat(1:n,n+1,1),'ok','markerfacecolor','k','markersize',8); line([0 n+2],[0 0],'Color','k','LineWidth',3); text(2,-1,''); line([0 n+2],[n+1 n+1],'color','k','linewidth',3); text(2,n+2,''); G=graph; G=addnode(G,(n+2)*(n+1)); for i=1:n+1 for j=1:n+1 if binornd(1,0.5) line([j j],[i-1 i],'color','k','linewidth',1.5); G=addedge(G,...,...); for i=1:n for j=1:n if binornd(1,0.5) line([j j+1],[i i],'color','k','linewidth',1.5); G=addedge(G,...,...); if any(any(distances(g,...,...)~=inf)) disp('se poate trece de pe un mal pe altul.'); else disp('nu se poate trece de pe un mal pe altul.'); b) Simulaţi, pentru un n fixat, fără reprezentări grafice, de N {100, 1000} ori configuraţia podurilor după furtună şi afişaţi procentul configuraţiilor în care este posibilă trecerea de pe malul sudic pe malul nordic pentru călător. c) Determinaţi probabilitatea evenimentului A: călătorul poate să treacă de pe malul sudic pe malul nordic.

Rezolvare: c) Considerăm evenimentul B: călătorul poate să treacă pe mare cu o barcă din partea stângă în partea dreaptă ale reţelei de insule, presupunând că un pod care nu este distrus blochează trecerea bărcii, iar un pod distrus permite trecerea bărcii. Se observă că evenimentul B este echivalent cu evenimentul Ā, identificând fiecare zonă de apă, delimitată de poduri, cu un nod, la fel ca în figura de mai jos, deoarece reţeaua de noduri pe apă are aceeaşi structură ca reţeaua de insule (n linii şi n + 1 coloane, din punctul de vedere al călătorului atât pe uscat, cât şi pe apă) şi orice pod distrus, respectiv intact, între două insule, reprezintă legătura, respectiv lipsa ei, între două noduri corespunzătoare pe apă. Deoarece fiecare pod este distrus, indepent de celelalte, cu probabilitatea 0,5, deducem că P (A) = P (Ā). Deci P (A) = 0,5.