SlideShare une entreprise Scribd logo
1  sur  17
CEFET-MG
Engenharia da Computação
AED I
Bruna Fraga
Elisa Daniel
Williane Rosado
 Como foi visto na técnica Divisão e conquista,
um problema poder ser solucionado com mais
facilidade se o mesmo for divido em
subproblemas.
 Utilizando o balanceamento, que consiste em
fazer divisões em partes iguais ou
aproximadamente iguais de um problema,
veremos que há um contraste entre particionar
em subproblemas iguais e desiguais.
 A utilização desta técnica, resulta em algoritmos
mais eficientes.
 Considere o seguinte exemplo de ordenação
(sem balanceamento)
public class Ordenacao {
public static void ordena ( int v[], int n) {
for (int i=0; i< n-1 ; i++){
int min=i;
for ( int j=i +1; j < n; j++){
if( v[j] < v[min])
min=j;
int x=v[min];
v[min]=v[i];
v[i]=x; }
}
}
}
 Analisando a complexidade do algoritmo,
percebe-se que ele possui notação assintótica
O(n²).
 Esse algoritmo pode ser visto como uma
aplicação recursiva de divisão e conquista.
 Não é eficiente para valores grandes de n,
devido à sua ordem quadrática.
 Para se obter um algoritmo de ordenação
assintoticamente eficiente, é necessário realizar
o balanceamento.
Mergesort
 1. Divida recursivamente o vetor a ser ordenado
em dois, até obter n vetores de um único
elemento.
Mergesort
 1. Divida recursivamente o vetor a ser ordenado
em dois, até obter n vetores de um único
elemento.
 2. Aplique a intercalação tendo como entrada
dois vetores de um elemento, formando um
vetor ordenado de dois elementos.
Mergesort
 1. Divida recursivamente o vetor a ser ordenado
em dois, até obter n vetores de um único
elemento.
 2. Aplique a intercalação tendo como entrada
dois vetores de um elemento, formando um
vetor ordenado de dois elementos.
 3. Repita este processo formando vetores
ordenados cada vez maiores até que todo o vetor
esteja ordenado.
 Considere o seguinte exemplo de ordenação
(com balanceamento)
Algoritmo MERGESORT (L, ini, fim)
ENTRADA: um vetor L e as posições ini e fim
SAÍDA: o vetor L em ordem crescente da posição ini
até a posição fim
Inicio
inteiro: meio;
se ini < fim
meio = ( ini + fim) /2;
se ini < meio
MERGESORT(L, ini, meio);
MERGESORT(L, meio + 1, fim);
MERGE(L, ini, meio, fim);
fim {MERGESORT}
 O algoritmo do Mergesort possui notação
assintótica O(n log n).
 Para o problema de ordenação, o balanceamento
levou a um resultado muito superior. O custo
passou de O(n²), para O(n log n).
 Há vários campos na área de computação em
que podemos utilizar este método para obter
maior eficiência.
1. Sistemas multiprocessados:
Nesse sistema múltiplos processadores permitem a
execução simultânea de diversos programas, ou até
mesmo que um programa seja executado por vários
processadores.
Objetivos:
Aumentar a capacidade computacional com um menor custo.
Permitir o balanceamento de modo que as tarefas sejam
uniformemente distribuídas sem que haja sobrecarga dos
componentes.
2. Cluster
Com a internet mais presente a cada dia e o
tráfego cada vez mais intenso, esse método foi
essencial para uma expansão saudável da rede.
Cluster: Conjunto de máquinas, duas ou mais nas quais são
executadas aplicações requeridas por um número muito
grande de pessoas.
Um cluster deve receber os pedidos de serviços de vários
clientes, fazer uma distribuição deles nas maquinas que o
constituem, sem que haja sobrecarregamento.
Cluster para Balanceamento de Carga
• As tarefas são distribuídas o mais uniformemente
possível entre os computadores. O foco é fazer com que
cada computador receba e atenda a uma requisição e
não, necessariamente, que divida uma tarefa com outras
máquinas.
• Nesse tipo de cluster é necessário que o procedimento
seja executado de forma a garantir um “equilíbrio” na
aplicação.
• O balanceamento de cargas pode ser usado em vários
tipos de aplicações, mas o seu uso é bastante comum na
Internet promovendo um aumento da capacidade de
rede, melhorando a performance de sistemas.
BIBLIOGRAFIA
Ziviani, Nivio.Projeto de algoritmos.São Paulo:Thomson,
2007.

Contenu connexe

Similaire à Balanceamento (1)

Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
Programação Dinâmica
Programação DinâmicaProgramação Dinâmica
Programação DinâmicaOrlando Junior
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoLenon Fachiano
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasAlan Carlos
 
Aprendizagem Supervisionada II
Aprendizagem Supervisionada IIAprendizagem Supervisionada II
Aprendizagem Supervisionada IILuís Nunes
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7PeslPinguim
 
Tutorial aed iii 006 - algoritmo de ordenação quicksort
Tutorial aed iii   006 - algoritmo de ordenação quicksortTutorial aed iii   006 - algoritmo de ordenação quicksort
Tutorial aed iii 006 - algoritmo de ordenação quicksortFlávio Freitas
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfBNBN31
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Dalton Valadares
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaLuiz Arthur
 

Similaire à Balanceamento (1) (20)

Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Programação Dinâmica
Programação DinâmicaProgramação Dinâmica
Programação Dinâmica
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de Ordenação
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e Sistemas
 
Lamport
LamportLamport
Lamport
 
Tutorial Java: Interface
Tutorial Java: InterfaceTutorial Java: Interface
Tutorial Java: Interface
 
Aprendizagem Supervisionada II
Aprendizagem Supervisionada IIAprendizagem Supervisionada II
Aprendizagem Supervisionada II
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Aula2
Aula2Aula2
Aula2
 
Tutorial aed iii 006 - algoritmo de ordenação quicksort
Tutorial aed iii   006 - algoritmo de ordenação quicksortTutorial aed iii   006 - algoritmo de ordenação quicksort
Tutorial aed iii 006 - algoritmo de ordenação quicksort
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
poster
posterposter
poster
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
 
Pi raciocinio lógico
Pi   raciocinio lógicoPi   raciocinio lógico
Pi raciocinio lógico
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de Carga
 

Balanceamento (1)

  • 1. CEFET-MG Engenharia da Computação AED I Bruna Fraga Elisa Daniel Williane Rosado
  • 2.  Como foi visto na técnica Divisão e conquista, um problema poder ser solucionado com mais facilidade se o mesmo for divido em subproblemas.  Utilizando o balanceamento, que consiste em fazer divisões em partes iguais ou aproximadamente iguais de um problema, veremos que há um contraste entre particionar em subproblemas iguais e desiguais.  A utilização desta técnica, resulta em algoritmos mais eficientes.
  • 3.  Considere o seguinte exemplo de ordenação (sem balanceamento) public class Ordenacao { public static void ordena ( int v[], int n) { for (int i=0; i< n-1 ; i++){ int min=i; for ( int j=i +1; j < n; j++){ if( v[j] < v[min]) min=j; int x=v[min]; v[min]=v[i]; v[i]=x; } } } }
  • 4.  Analisando a complexidade do algoritmo, percebe-se que ele possui notação assintótica O(n²).  Esse algoritmo pode ser visto como uma aplicação recursiva de divisão e conquista.  Não é eficiente para valores grandes de n, devido à sua ordem quadrática.
  • 5.  Para se obter um algoritmo de ordenação assintoticamente eficiente, é necessário realizar o balanceamento.
  • 6. Mergesort  1. Divida recursivamente o vetor a ser ordenado em dois, até obter n vetores de um único elemento.
  • 7.
  • 8. Mergesort  1. Divida recursivamente o vetor a ser ordenado em dois, até obter n vetores de um único elemento.  2. Aplique a intercalação tendo como entrada dois vetores de um elemento, formando um vetor ordenado de dois elementos.
  • 9.
  • 10. Mergesort  1. Divida recursivamente o vetor a ser ordenado em dois, até obter n vetores de um único elemento.  2. Aplique a intercalação tendo como entrada dois vetores de um elemento, formando um vetor ordenado de dois elementos.  3. Repita este processo formando vetores ordenados cada vez maiores até que todo o vetor esteja ordenado.
  • 11.
  • 12.  Considere o seguinte exemplo de ordenação (com balanceamento) Algoritmo MERGESORT (L, ini, fim) ENTRADA: um vetor L e as posições ini e fim SAÍDA: o vetor L em ordem crescente da posição ini até a posição fim Inicio inteiro: meio; se ini < fim meio = ( ini + fim) /2; se ini < meio MERGESORT(L, ini, meio); MERGESORT(L, meio + 1, fim); MERGE(L, ini, meio, fim); fim {MERGESORT}
  • 13.  O algoritmo do Mergesort possui notação assintótica O(n log n).  Para o problema de ordenação, o balanceamento levou a um resultado muito superior. O custo passou de O(n²), para O(n log n).
  • 14.  Há vários campos na área de computação em que podemos utilizar este método para obter maior eficiência. 1. Sistemas multiprocessados: Nesse sistema múltiplos processadores permitem a execução simultânea de diversos programas, ou até mesmo que um programa seja executado por vários processadores. Objetivos: Aumentar a capacidade computacional com um menor custo. Permitir o balanceamento de modo que as tarefas sejam uniformemente distribuídas sem que haja sobrecarga dos componentes.
  • 15. 2. Cluster Com a internet mais presente a cada dia e o tráfego cada vez mais intenso, esse método foi essencial para uma expansão saudável da rede. Cluster: Conjunto de máquinas, duas ou mais nas quais são executadas aplicações requeridas por um número muito grande de pessoas. Um cluster deve receber os pedidos de serviços de vários clientes, fazer uma distribuição deles nas maquinas que o constituem, sem que haja sobrecarregamento.
  • 16. Cluster para Balanceamento de Carga • As tarefas são distribuídas o mais uniformemente possível entre os computadores. O foco é fazer com que cada computador receba e atenda a uma requisição e não, necessariamente, que divida uma tarefa com outras máquinas. • Nesse tipo de cluster é necessário que o procedimento seja executado de forma a garantir um “equilíbrio” na aplicação. • O balanceamento de cargas pode ser usado em vários tipos de aplicações, mas o seu uso é bastante comum na Internet promovendo um aumento da capacidade de rede, melhorando a performance de sistemas.
  • 17. BIBLIOGRAFIA Ziviani, Nivio.Projeto de algoritmos.São Paulo:Thomson, 2007.