The Stable Matching Problem



Documentos relacionados
Fluxo Máximo a Custo Mínimo

Alocação de casas. para cada i, permutação i de todas as casas. n agentes, cada um com uma única casa. Teoria dos Jogos p. 1

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Respostas dos Exercícios Cap. 2 Russell & Norvig

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Curso de Instalação e Gestão de Redes Informáticas

GARANTIA DA QUALIDADE DE SOFTWARE

Planejando o aplicativo

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

a 1 x a n x n = b,

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Teoria dos Grafos Aula 27

PERGUNTAS MAIS FREQÜENTES SOBRE VALOR PRESENTE LÍQUIDO (VPL)

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Este trabalho visou a caracterização da utilização dos aplicativos APS pelas empresas.

ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL Resumo Executivo PARA BAIXAR A AVALIAÇÃO COMPLETA:

BC-0506: Comunicação e Redes Algoritmos em Grafos

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

TÍTULO: COMPARAÇÃO ENTRE OS MÉTODOS DE BUSCA EM ESPAÇOS DE ESTADOS E O ALGORITMO DE DIJKSTRA

5COP096 TeoriadaComputação

QFD: Quality Function Deployment QFD: CASA DA QUALIDADE - PASSO A PASSO

Manual de regras do Programa de valorização de boas idéias

Manual de Pedido de Matrícula em Disciplinas pelo Q-Acadêmico WEB

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Árvores de Suporte de Custo Mínimo

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Apresentação. Soluções para resolv. Legislação penal. Conclusão

Matéria: Matemática Assunto: Divisores e Múltiplos Prof. Dudan

1. Você escolhe a pessoa errada porque você espera que ela mude após o casamento.

7. Análise e comparação dos programas VMI nas empresas XYZ e DEF

Árvores Binárias e Busca. Jeane Melo

Especificação do 3º Trabalho

Contagem I. Figura 1: Abrindo uma Porta.

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Orientação a Objetos

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Importação de Itens através de Planilha de Dados

Teoria dos Grafos. Edson Prestes

Engenharia de Software I

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

QUESTÃO 1 ALTERNATIVA B

Análise de usabilidade de menus de navegação em portal com grande quantidade de informação e vários níveis hierárquicos

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Computadores de Programação (MAB353)

Escalonamento no Linux e no Windows NT/2000/XP

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

SUMÁRIO. Introdução... 3

Tabela de roteamento

02 - Usando o SiteMaster - Informações importantes

UNESP DESENHO TÉCNICO: Fundamentos Teóricos e Introdução ao CAD. Parte 2/5: Prof. Víctor O. Gamarra Rosado

ESTUDO EXPLORATÓRIO SOBRE A ESCOLARIZAÇÃO DE FILHOS DE PROFESSORES DE ESCOLA PÚBLICA Rosimeire Reis Silva (FEUSP)

Dadas a base e a altura de um triangulo, determinar sua área.

Síntese das discussões do fórum Livro-APF: Julho/2010

Eduardo C. Xavier. 24 de fevereiro de 2011

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Análise e Complexidade de Algoritmos

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa

Como Processos Criam Valor?

REFLEXÕES SOBRE OS CONCEITOS DE RITMO

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

4.5 Kanban. Abertura. Definição. Conceitos. Aplicação. Comentários. Pontos fortes. Pontos fracos. Encerramento

HANDFULT: RELATO DE EXPERIÊNCIA DO PIBID EDUCAÇÃO FÍSICA NA ESCOLA ESTADUAL PROFº JOSINO MACEDO

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Exercícios resolvidos sobre Definição de Probabilidade

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

TRAJECTA NEURO LABS G5

CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO

Introdução a Avaliação de Desempenho

O papel do CRM no sucesso comercial

PROJETO DE REDES

Capítulo 7 Medidas de dispersão

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Algoritmos e Estrutura de Dados III. Árvores

Aula 20. Roteamento em Redes de Dados. Eytan Modiano MIT

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

OCOMON PRIMEIROS PASSOS

OBI2014 Caderno de Tarefas

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Sistemas especialistas

Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador

Projeto de Máquinas de Estado

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Monografia do projeto do Curso de Introdução ao Escalonamento Geração de tabelas de futebol. Rodrigo L. M. Flores #USP

REDES DE COMPUTADORES

iq2 - Análise de uma tabela cruzada simples

Os pressupostos básicos para a teoria de Bertalanffy foram os seguintes:

SISTEMAS DISTRIBUÍDOS

UNIVERSIDADE DE SÃO PAULO E S C O L A D E A R T E S, C I Ê N C I A S E H U M A N I D A D E

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

Autómatos Finitos Determinísticos

Daniel Darlen Corrêa Ribeiro, Eduardo Campos dos Santos. ARL Universidade Federal de Lavras (UFLA) Lavras MG - Brasil

MATERIAL PARA CAPACITAÇÃO INTERNA DO FIPLAN

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado

Estratégia de Manutenção em Oficinas utilizando Caminho Critico

Transcrição:

The Stable Matching Problem Aluno: José Eliton Albuquerque Filho Orientador: Thomas Lewiner Introdução O problema do emparelhamento estável ( Stable Matching Problem ), apresentado por David Gale e L.S.Shapley em janeiro de 1962, consiste em encontrar uma relação estável entre dois conjuntos de elementos dados as preferências de cada elemento. Uma relação é dita estável quando não existe nenhum pareamento (A, B) no qual a relação seria, para ambos, melhor do que a relação com os elementos que eles estão relacionados. Algoritmos para encontrar soluções para o Stable Matching Problem tem aplicações em uma gama de situações reais como encontro de parceiros ideais e distribuição de vagas no vestibular, por exemplo. Metodologia Antes da análise do Stable Matching Problem (SMP), foram implementados os Algoritmos de Dijkstra e de Ford-Fulkerson, que serviram de base teórica para a implementação do SMP. O Algoritmo de Dijkstra, o primeiro estudado, calcula o caminho mínimo entre vértices de um grafo direto cujos pesos são não-negativos. Através do relaxamento de vértices, o algoritmo sucessivamente estima os menores caminhos entre um vértice e seus adjacentes e, com o auxílio de uma fila de baixa prioridade, determina o caminho mínimo. Já o Algoritmo de Ford-Fulkerson interpreta um grafo G como um fluxo de rede onde cada aresta apresenta uma capacidade não-negativa. Esse método sucessivamente aumenta o valor do fluxo em G até que a capacidade de alguma aresta chegue a seu limite, determinando o fluxo máximo em G e a(s) aresta(s) que estão limitando o aumento do fluxo no grafo. O Problema do Emparelhamento Estável, objetivo principal deste trabalho, consiste na determinação de uma relação estável que envolve dois conjuntos finitos de iguais quantidades de elementos. No caso dos casamentos, que é o caso mais comum envolvendo SMP, esses dois conjuntos são reconhecidos como homens e mulheres. Cada homem cria um ranking entre as mulheres, formando sua lista de preferência. O mesmo ocorre para as mulheres. Um casamento C é considerado estável quando não existe um par (H, M) tal que H e M, que não são parceiros em C, prefiram um ao outro do que seus respectivos parceiros em C. Esse casamento sempre existe [1]. O Algoritmo de Galey-Shapley (ou G-S), exibido em 1962, consiste no mais comum e elegante método de solução do SMP. Ele possui a seguinte rotina: 1

Enquanto existir homem solteiro que não se propôs à toda mulher fazer: H se propõe à mulher mais preferida à qual não se propôs ainda Se M é livre então: M e H tornam casal Fim se Se M prefere Hn ao corrente parceiro então: Quebrar o par (H, M) M, Hn tornam casal Fim se Fim enquanto Retornar os casais O Algoritmo G-S pode ser utilizado de duas formas diferentes: uma na qual o homem se propõe à mulher, e outra na qual a mulher se propõe. No caso da proposta feita por homens, cada um deles se propõe para as mulheres de acordo com sua lista de preferências até que se case. Quando uma mulher solteira recebe a proposta, ela casa imediatamente; as casadas, entretanto, comparam o atual marido e o proponente, podendo aceitar ou rejeitar a proposta, de acordo com a lista de preferências dela. Se o casamento é desfeito, o homem se propõe para a próxima da sua lista, até que todos estejam casados. À primeira vista talvez não seja fácil observar, mas o Algoritmo G-S sempre retorna casamentos estáveis [1]. Por ser bastante restritivo, devemos considerar variações do SMP para tornar sua aplicação mais prática. As mais conhecidas são Stable Marriage with Incomplete Lists (SMI), onde as listas de preferências estão incompletas, podendo gerar mais de uma solução, e Stable Marriage With Ties (SMT), onde alguns membros podem ser igualmente ranqueados dentro das listas de preferências. A possibilidade de empates nas listas de preferências nos dão três versões de estabilidade: super, forte e fraca estabilidades. Para explica-las, antes definiremos o que é um par bloqueante. Se, em uma relação M, um homem m casa-se com uma mulher w, usemos a notação M(m) = w e M(w) = m. Um par bloqueante para M requer as seguintes condições: ii) m prefere w à M(m) iii) w prefere m à M(w) Note que M é instável se nele existir um par bloqueante; caso contrário, é estável. Uma relação é super estável quando não existir um par bloqueante com as seguintes características: ii) m prefere w à M(m) ou é indiferente iii) w prefere m à M(w) ou é indiferente 2

De maneira similar, temos para uma relação de forte estabilidade: ii) m prefere w à M(m) iii) w prefere m à M(w) ou é indiferente E, finalmente, de fraca estabilidade: ii) m prefere w à M(m) iii) w prefere m à M(w) Vemos facilmente que os pareamentos de fraca estabilidade sempre existem e pode ser encontrado em tempo polinomial [2]. Forte e super estabilidades, entretanto, nem sempre existem. Resultados O Algoritmo de Dijkstra foi feito na linguagem C. Nele inserimos a quantidade de vértices e as arestas existentes, e obtemos os menores caminhos no grafo dado. Para verificarmos a funcionalidade do código, testamos no seguinte exemplo: Os menores caminhos cuja origem é o vértice 1 são: Figura 2: Resultado do Algoritmo de Dijkstra 3

O Algoritmo de Ford-Fulkerson, também desenvolvido em C, funciona um pouco diferente. Ao invés de receber os dados do grafo na própria interface, ele lê um arquivo.txt que contém, da primeira linha, o número de vértices e de arestas, respectivamente, e nas demais linhas, o vértice de origem, o destino e a capacidade dessa aresta. Figura 3: Dados do Algoritmo de Ford Fulkerson O programa retorna o fluxo máximo na rede: Figura 4: Fluxo máximo da rede 4

Já no Stable Matching Problem, foi implementado um programa em C++ que determina casamentos estáveis. Nesse exemplo utilizamos 11 duplas. Figura 5: Listas de preferências O programa nos dá os passos para determinar os casamentos estáveis, mostrando quando há a quebra de um casamento para a realização de um mais estável. Figura 6: Determinação dos casamentos estáveis 5

Conclusão O Algoritmo G-S é rápido e efetivo mesmo na procura de um grande número de casamentos estáveis. Além disso, o tempo de execução do algoritmo não é muito influenciado pela quantidade de empates no SMT. As variações do Stable Marriage Problem podem ser, na maioria dos casos, resolvidas pelo Algoritmo de Galey-Shapley com as modificações necessárias, tornando possível a aplicação desse problema para casos como distribuição de vagas no Sistema de Seleção Unificada (SISU). Referências 1 - GALE, D.; SHAPLEY, L.S. College Admissions and the Stability of Marriage. The American Mathematical Montly, Vol. 69, 1962. 2 - R. W. Irving. Stable marriage and indifference. Discrete Applied Mathematics, Vol.48, pp. 261 272, 1994. 6