Proiectarea Algoritmilor

Similar documents
Pentru clasa a X-a Ştiinţele naturii-sem II

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II)

Sisteme cu logica fuzzy

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor

Inteligenta Artificiala

O V E R V I E W. This study suggests grouping of numbers that do not divide the number

ȘIRURI (TABLOURI UNIDIMENSIONALE)

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava)

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1

Soluţii juniori., unde 1, 2

1.3. OPERAŢII CU NUMERE NEZECIMALE

Divizibilitate în mulțimea numerelor naturale/întregi

Metode clasice. Camelia Chira.

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations

CS325: Analysis of Algorithms, Fall Midterm

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII

GENERATOARE DE SEMNAL DIGITALE

Barem de notare clasa a V-a

Modelling the Steady State Characteristic of ph Neutralization Process: a Neuro-Fuzzy Approach

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015

2D AND 3D PROCESSING OF THE INTERDEPENDENCE BETWEEN THE COMFORT MAIN INDICATORS

Subiecte geometrie licenta matematica-informatica 4 ani

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea

DECAN, Prof. univ. dr. Nicolae PĂUN

DEZVOLTAREA REGIONALĂ PRIN TURISM

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015

Divide and Conquer. Arash Rafiey. 27 October, 2016

OPENPH - NUMERICAL PHYSICS LIBRARY

Find an Element x in an Unsorted Array

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal

Sorting DS 2017/2018

Divide-and-conquer: Order Statistics. Curs: Fall 2017

Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor

Gradul de comutativitate al grupurilor finite 1

CALCULUS OF SHAFT LINE FROM SHIPS USING FEM METHOD

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π

A design paradigm. Divide and conquer: (When) does decomposing a problem into smaller parts help? 09/09/ EECS 3101

Solving recurrences. Frequently showing up when analysing divide&conquer algorithms or, more generally, recursive algorithms.

Sisteme cu logica fuzzy cu mai multe intrari (MISO)

MATEMATICĂ 3 PROBLEME DE REFLECŢIE

Divide and Conquer. Andreas Klappenecker

TWO BOUNDARY ELEMENT APPROACHES FOR THE COMPRESSIBLE FLUID FLOW AROUND A NON-LIFTING BODY

AN APPROACH TO THE NONLINEAR LOCAL PROBLEMS IN MECHANICAL STRUCTURES

Mergesort and Recurrences (CLRS 2.3, 4.4)

Divide and Conquer Strategy

Divide-and-conquer. Curs 2015

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

PROTECTII PRIN RELEE. (2) _ Principii si particularitati ale principalelor protectii

THE METROLOGY OF OPTICAL FIBRE LOSSES

STRUCTURAL INTENSITY METHOD APPLIED TO STUDY OF VIBRATIONS DAMPING / METODA INTENSIMETRIEI STUCTURALE APLICATĂ LA STUDIUL AMORTIZĂRII VIBRAŢIILOR

Data Structures in Java

Algorithms: COMP3121/3821/9101/9801

Manual Limba Germana

Analysis of Algorithms - Using Asymptotic Bounds -

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii

Algorithm Design and Analysis

7 ECUAŢII ALGEBRICE ŞI TRANSCENDENTE

Metode şi Algoritmi de Planificare (MAP) Curs 2 Introducere în problematica planificării

CS173 Running Time and Big-O. Tandy Warnow

4/68. Mini-comutatoare cu came. Prezentare generalã a sistemului. Întreruptoare Pornit-Oprit TM. Comutatoare de comandã TM.

ATTENUATION OF THE ACOUSTIC SCREENS IN CLOSED SPACES

STRUCTURAL PARASITIC CAPACITANCE REDUCTION TECHNIQUES IN PLANAR MAGNETIC INTEGRATED STRUCTURES

Liste. Stive. Cozi SD 2017/2018

ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA. Sef lucrari ing. Alin-Iulian DOLAN

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur

OPTIMAL OBSERVABILITY OF PMU'S USING ANALYTIC HIERARCHY PROCESS (AHP) METHOD

Laborator 3. Backtracking iterativ

ANOVA IN THE EDUCATIONAL PROCESS

Divide and Conquer. Andreas Klappenecker. [based on slides by Prof. Welch]

The maximum-subarray problem. Given an array of integers, find a contiguous subarray with the maximum sum. Very naïve algorithm:

A PHENOMENOLOGICAL UNIVERSALITIES APPROACH TO THE ANALYSIS OF PERINATAL GROWTH DATA

Chapter 5. Divide and Conquer. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

5. DIVIDE AND CONQUER I

Latent Semantic Analysis. Hongning Wang

Cercet¼ari operaţionale

Section 5.3 Divide and Conquer Relations. 0,a m. - Division into thirds gives m = 3. Apply the telescoping technique described in Section 5.2.

Equations P $UnitSystem K kpa. F luid$ = Air (1) Input data for fluid. $If Fluid$= Air. C P = [kj/kg K] ; k = 1.

IDENTIFICATION AND OPTIMAL CONTROL OF BLOWING SYSTEM

C.A.D. OF LINEAR TRANSVERSE FLUX MOTORS

UTILIZAREA UNUI GIS ÎN VEDEREA REZOLVĂRII PROBLEMELOR DE CADASTRU GENERAL ŞI DE SPECIALITATE PENTRU DEZVOLTAREA DURABILĂ A LOCALITĂŢILOR

Autor: Instituţia: Coordonator

Calcul Numeric. Cursul Anca Ignat

Structuri de conducere ierarhizată a sistemelor electroenergetice Sl.dr.ing. Iulia STAMATESCU

5. DIVIDE AND CONQUER I

Modelare fuzzy. Problematica modelarii Sisteme fuzzy in modelare Procedura de modelare ANFIS Generarea sistemului fuzzy initial Utilizare ANFIS

LOSS FUNCTIONS USED IN THE QUALITY THEORY

Dynamic Response of Beams on Elastic Foundation with Axial Load

ON THE ANALYSIS OF RECURRENCE CHARACTERISTICS OF VARIABLE ACTIONS

CS 231: Algorithmic Problem Solving

PLANIFICAREA TEMELOR LA GRUPELE DE EXCELENȚĂ DISCIPLINA MATEMATICĂ AN ȘCOLAR

Agricultural Engineering

COMPARATIVE STUDY OF STRUCTURAL ANALYSIS APPLIED TO AGRICULTURAL MACHINES BODIES AND ACCOMPLISHED WITH SOLID WORKS AND AUTODESK INVENTOR PROGRAMS

POLAR CHARACTERISTIC OF ENERGETIC INTENSITY EMITTED BY AN ANISOTROPIC THERMAL SOURCE IRREGULARLY SHAPED

DM507 - Algoritmer og Datastrukturer Project 1

SOI prin smart-cut. Caracterizarea TEM-HRTEM a defectelor structuale induse in Si prin hidrogenare in plasma.

Transcription:

Proiectarea Algoritmilor Ștefan Trăușan-Matu stefan.trausan@cs.pub.ro

Obiectivele cursului Discutarea relaţiei dintre caracteristicile problemelor, modul de rezolvare şi calitatea soluţiilor.

Obiectivele cursului Discutarea relaţiei dintre caracteristicile problemelor, modul de rezolvare şi calitatea soluţiilor. Calitatea soluţiilor = cost minim (complexitate minimă) corectitudine aproximare bună

Obiectivele cursului Utilizarea teoriei predate la curs pentru proiectarea algoritmilor de rezolvare pentru probleme tipice și dificile întâlnite în practica dezvoltării sistemelor de programe.

Obiectivele cursului Cunoasterea unui set important de algoritmi si metode de rezolvare a problemelor de algoritmica

Obiectivele cursului Compararea variantelor unor algoritmi pentru rezolvarea problemelor dificile.

Exemple de probleme

Probleme Uzuale: Alocare de resurse Drumuri minime Conectivitate Optimalitatea rețelelor Analiza erorilor

Rețele sociale

Analiza limbajului natural Polyphonic analysis (Trausan-Matu & Stahl, 2007, http://gerrystahl.net/vmtwiki/stefan.pdf) 22 Novembe 2011

Tagged LSA Corpus of chats focused on collaborative technologies POS Tagging Stemming Segmentation Participants Fixed Window Cosine similarity Term-Doc Matrix + Tf Idf

Vector space visualization Radial Model - Clustering - Physical Model - Relevance -

Social Network Analysis Degree Centrality Closeness Graph Eigen Value User Ranking Google Page Ranking

Obiectivele cursului Prezentarea principalelor tehnici de rezolvare aproximativă a problemelor dificile.

Obiectivele cursului Dezvoltarea abilitatilor de adaptare a unui algoritm la o problema din viata reala

Obiectivele cursului Dezvoltarea CREATIVITĂȚII în proiectarea algoritmilor

Gândirea laterală http://www.edwdebono.com/lateral.htm 1. "You cannot dig a hole in a different place by digging the same hole deeper" This means that trying harder in the same direction may not be as useful as changing direction. Effort in the same direction (approach) will not necessarily succeed. 2. "Lateral Thinking is for changing concepts and perceptions" With logic you start out with certain ingredients just as in playing chess you start out with given pieces. But what are those pieces? In most real life situations the pieces are not given, we just assume they are there. We assume certain perceptions, certain concepts and certain boundaries. Lateral thinking is concerned not with playing with the existing pieces but with seeking to change those very pieces. Lateral thinking is concerned with the perception part of thinking. This is where we organise the external world into the pieces we can then 'process'. 3. "The brain as a self-organising information system forms asymmetric patterns. In such systems there is a mathematical need for moving across patterns. The tools and processes of lateral thinking are designed to achieve such 'lateral' movement. The tools are based on an understanding of selforganising information systems." This is a technical definition which depends on an understanding of self-organising information systems. 4. "In any self-organising system there is a need to escape from a local optimum in order to move towards a more global optimum. The techniques of lateral thinking, such as provocation, are designed to help that change.

Gândirea paralelă http://www.edwdebono.com/lateral.htm Parallel thinking is best understood in contrast to traditional argument or adversarial thinking. With 'parallel thinking' both sides (or all parties0 are thinking in parallel in the same direction. There is co-operative and co-ordinated thinking. The direction itself can be changed in order to give a full scan of the situation. But at every moment each thinker is thinking in parallel with all the other thinkers. There does not have to be agreement. Statements or thoughts which are indeed contradictory are not argued out but laid down in parallel.in the final stage the way forward is 'designed' from the parallel thought that have been laid out. A simple and practical way of carrying out 'parallel thinking' is the Six Hats TM method which is now being used widely around the world both because it speeds up thinking and also because it is so much more constructive then traditional argument thinking.

Obiectivele cursului Dezvoltarea abilitatilor de lucru in echipa

Planul cursului (1) Scheme de algoritmi divide&impera rezolvare lacomă (Greedy) - arbori Hufmann programare dinamică AOC backtracking cu optimizări propagarea restricţiilor.

Planul cursului (2) Algoritmi pentru grafuri parcurgeri, sortare topologică, componente tare conexe, puncte de articulaţie, punţi, arbori minimi de acoperire, drumuri de cost minim, fluxuri.

Planul cursului (3) Rezolvarea problemelor prin căutare euristică A* AO* - Completitudine şi optimalitate, caracteristici ale euristicilor. Algoritmi aleatorii Las Vegas Monte Carlo aproximare probabilistică

Evaluare Examen 4 p Laborator 6 p 50% condiție de absolvire atât a laboratorului cât și a examenului

Bibliografie Cristian Giumale, Introducere in Analiza Algoritmilor, Ed. Polirom 2004 Thomas H. Cormen, Charles E. Leiserson, Ronald R. Rivest. Introducere in Algoritmi, Ed. Agora, http://www.cs.ucsb.edu/~suri/cs235/closestpair.pdf http://www.cs.umass.edu/~barring/cs611/lecture/4.pdf http://thor.info.uaic.ro/~dlucanu/cursuri/tpaa/resurse/curs6. pps http://www.math.fau.edu/locke/greedy.htm http://en.wikipedia.org/wiki/greedoid

ATENTIE! Prezentarile ( slide -urile) de la curs sunt doar o parte din continutul cursului, nu sunt suficiente pentru pregatirea teoriei pentru examen la curs se mai spun si lucruri in plus

CURS 1

Curs 1 - cuprins Scheme de algoritmi Divide et impera Exemplificare folosind sortare prin interclasare ( merge sort ) Greedy Exemplificare folosind arbori Huffman

Scheme de algoritmi

Divide & Impera

Scheme de algoritmi Prin scheme de algoritmi intelegem tipare comune pe care le putem aplica in rezolvarea unor probleme similare O gama larga de probleme se poate rezolva folosind un numar relativ mic de scheme => Cunoasterea schemelor determina o rezolvare mai rapida si mai eficienta a problemelor

Divide et impera (1) Schemă generală de rezolvare de probleme (chiar și în viața cotidiană) Ideea (divide si cucereste) este atribuita lui Filip al II-lea, regele Macedoniei (382-336 i.e.n.), tatal lui Alexandru cel Mare si se refera la politica acestuia fata de statele grecesti

Divide et impera (2) Schema Divide et impera consta in 3 pasi la fiecare nivel al recurentei: Divide problema data intr-un numar de subprobleme Impera (cucereste) subproblemele sunt rezolvate recursiv. Daca subproblemele sunt suficient de mici ca date de intrare se rezolva direct (iesirea din recurenta) Recombina solutiile subproblemelor sunt combinate pentru a obtine solutia problemei initiale

Divide et impera Avantaje si Dezavantaje Avantaje Produce algoritmi eficienti Descompunerea problemei in subprobleme faciliteaza paralelizarea algoritmului in vederea executiei sale pe mai multe procesoare Dezavantaje Se adauga un overhead datorat recursivitatii (retinerea pe stiva a apelurilor functiilor)

Exemplu - Merge sort (1) Algoritmul Merge Sort este un exemplu clasic de rezolvare cu ajutorul divide et impera Divide: Împarte secvența celor n elemente ce trebuie sortate in 2 secvente de lungime n/2 Impera: Sorteaza secventele recursiv folosind merge sort Recombina: Secventele sortate sunt ansamblate pentru a obtine vectorul sortat Recurenta se opreste cand secventa ce trebuie sortata are lungimea 1 (un vector cu un singur element este intotdeauna sortat ) Operatia cheie este ansamblarea solutiilor partiale folosind interclasarea

Merge Sort (2) Algoritm (adaptat din Cormen) M-SORT(A, p, r) if p < r then q [(p + r)/2] //divide M-SORT(A, p, q) //impera M-SORT(A, q + 1, r) MERGE(A, p, q, r) //recombina

Merge Sort () Algoritmul de interclasare Algoritm [Cormen] MERGE(A, p, q, r) 1 n1 q - p + 1 2 n2 r - q 3 create arrays L[1 -> n1 + 1] and R[1 -> n2 + 1] 4 for i 1 to n1 5 do L[i] A[p + i - 1] 6 for j 1 to n2 7 do R[j] A[q + j] 8 L[n1 + 1] 9 R[n2 + 1] 10 i 1 11 j 1 12 for k p to r 13 do if L[i] R[j] 14 then A[k] L[i] 15 i i + 1 16 else A[k] R[j] 17 j j + 1

Exemplu functionare Merge Sort Exemplu functionare [Wikipedia]

MergeSort - Complexitate T(n)=2T(n/2)+Θ(n) complexitatea interclasarii numar de subprobleme dimensiunea subproblemelor => (din T. Master) T(n)=Θ(n logn)

Divide et impera alte exemple (I) Calculul puterii unui numar x n Algoritm naiv pentru i=1->n rez=rez*x; return rez complexitate Θ(n) Discuție

Divide et impera alte exemple (I) Calculul puterii unui numar x n Algoritm naiv pentru i=1->n rez=rez*x; return rez complexitate Θ(n) Algoritm divide et impera daca n este par return x n/2 x n/2 daca n este impar return xx (n-1)/2 x (n-1)/2 complexitate: T(n)=T(n/2)+Θ(1)=>T(n)=Θ(logn)

Divide et impera alte exemple (II) Identificarea celei mai scurte distante intre 2 puncte din plan algoritmul naiv Θ(n 2 ) Discuție

Divide et impera alte exemple (II) identificarea celei mai scurte distante intre 2 puncte din plan algoritmul naiv Θ(n 2 )

Divide et impera alte exemple (III) sorteaza punctele in ordinea crescatoare a coordonatei x (O(nlog n)) impartim setul de puncte in 2 seturi de dimensiune egala si calculam recursiv distanta minima in fiecare set (l= linia ce imparte cele 2 seturi, d = distanta minima calculata in cele 2 seturi) elimina punctele care sunt plasate la distanta de l >d sorteaza punctele ramase dupa coordonata y calculeaza distantele de la fiecare punct ramas la cei 5 vecini (nu pot fi mai multi) daca gaseste o distanta <d actualizeaza d

Discuție: Când merge prost Divide&Impera?