Coder Social home page Coder Social logo

samuellucas97 / emparelhamentocompreferencias Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 181 KB

Implementação do algoritmo TTC Chains na resolução do problema de transplante cruzado de rins :family::hospital::raising_hand::heart:

Java 100.00%
top-trading-cycles ttc-chains

emparelhamentocompreferencias's Introduction

Emparelhamento com preferências

Introdução

Neste repositório encontra-se a implementação em Java do algoritmo Top Trade Cycles Chains (TTC Chains) voltado para o problema de troca de rins cruzadas referente ao 3º trabalho da disciplina de Grafos.

Sobre o Top Trading Cycles Chains

Descrição do Algoritmo

Agora estamos prontos para descrever o mecanismo do TTCC em sua forma geral. Considerando a preferências dos agentes, o mecanismo do TTCC encontra o resultado do problema de correspondência através do seguinte procedimento:

  1. Em cada rodada do algoritmo TTCC:

    • (i) com base nas suas preferências declaradas, cada agente a que não tenha recebido um item aponta para o melhor item restante não atribuído em IP ∪ IA,
    • (ii) cada agente remanescente que tenha recebido um item continua apontando para ela atribuição e
    • (iii) cada item restante não atribuído em pontos de IP para seu proprietário
  2. Dado o apontamento no Passo 1, existe um ciclo ou uma cadeia; ou ambos. Nesta etapa (Etapa2), alocações associadas a ciclos são feitas:

    • (i) Prosseguir para o Passo 3 se não houver ciclos. Caso contrário, localize um ciclo e atribua a cada agente no ciclo, o item para o qual ela aponta. A tarefa é final para esses Agentes Remova todos os agentes e itens no ciclo do sistema.
    • (ii) Se todo agente tiver recebido um item, vá para a Etapa 4. Caso contrário, volte para Passo 1.
  3. Cada par item-agente restante inicia uma cadeia. Como várias cadeias podem coexistir:

    • (i) Selecione apenas uma das cadeias com uma regra de seleção de cadeia predefinida. A atribuição é final para os agentes na cadeia selecionada. Além de selecionar uma cadeia, a cadeia regra de seleção também determina se a cadeia selecionada é removida imediatamente ou permanece no procedimento.
    • (ii) Se todo agente tiver recebido um item, vá para a Etapa 4. Caso contrário, volte para a Etapa 1 para iniciar a próxima rodada de alocação.
  4. Remova todas as correntes (se houver alguma). O algoritmo termina

Caso de teste

Entradas do algoritmo:

  • Conjunto de doador-receptor
  • Preferencias de cada doador-receptor que depende:
    Tipos de sangue(A+/-, B+/-, O+/-, AB+/-)
    Grupos de HLA (A, B, DR)

Sequência para definir as preferências:

  1. Compara-se o grupo sangüíneo do doador com o do receptor, que devem ser compatíveis;
  2. Realiza-se a prova-cruzada (cross-match) para avaliar se existem anticorpos no receptor dirigidos contra os antígenos do doador, que possam causar rejeição imediata; 4.Verifica-se a compatibilidade (HLA), semelhança entre o receptor e o doador;

Links de referência

Autores

Name: Github: email:
Samuel Lucas de Moura Ferino https://github.com/Samuellucas97 [email protected]
Candinho Luiz Dalla Brida Junior https://github.com/candinhojr [email protected]

emparelhamentocompreferencias's People

Contributors

candinhojr avatar samuellucas97 avatar

Watchers

 avatar

Forkers

candinhojr

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.