Codice disponibile per soluzioni informatiche con algoritmi corrispondenti?


15

La questione della progettazione della procedura di abbinamento (tra scuole superiori e studenti, tirocinante e ospedali, donatori e ricevitori di rene, ...) è stata ampiamente studiata dagli economisti e ha ampiamente contribuito a far ricevere a Roth e Shapley il premio Nobel per l'economia.

Mi chiedevo se tu sapessi di un codice liberamente disponibile là fuori (idealmente in un linguaggio di livello relativamente alto) in grado di calcolare soluzioni ai principali problemi di corrispondenza dei tipi per alcuni degli algoritmi più famosi proposti in letteratura. Sto pensando di scriverne uno, ma preferirei che non esistesse già.

Sono principalmente interessato a qualche pezzo di codice per calcolare la soluzione dell'algoritmo di accettazione differita in un problema di scelta della scuola , ma qualsiasi altra cosa sarebbe apprezzata.


Hai esaminato i pacchetti R per gli algoritmi corrispondenti? Vedi qui per esempio ( documento JSS ). Questo non risolve esattamente il tuo problema di esempio, ma potrebbe essere un punto di partenza.
CompEcon il

Una lezione pertinente (con alcuni codici) sul sito Web QuantEcon.
cc7768,

Nel nostro ReplicationWiki puoi trovare materiale di replica per molti metodi. Una panoramica degli studi empirici che hanno utilizzato la corrispondenza può essere trovata qui . Puoi anche vedere se le repliche sono già note. Se vuoi solo casi con dati e codice e vuoi vedere quale software è stato utilizzato, puoi usare il modulo di ricerca come qui , c'è un esempio con MATLAB e uno con R / ConG.
Jan Höffler,

1
In ReplicationWiki (su cui lavoro) puoi trovare materiale di replica per molti metodi. Una panoramica degli studi empirici che hanno utilizzato la corrispondenza può essere trovata qui . Puoi anche vedere se le repliche sono già note. Se vuoi solo casi con dati e codice e vuoi vedere quale software è stato utilizzato, puoi usare il modulo di ricerca come qui , c'è un esempio con MATLAB e uno con R / ConG.
Jan Höffler,

Risposte:


11

Mentre rispondevo a un commento, mi sono reso conto di avere una risposta post-valore. R è diventato il "linguaggio predefinito" per molte statistiche di ricerca computazionale (per una serie di motivi; bell'articolo di New York qui ). È di alto livello, gratuito e open source, e ha una rivista strettamente correlata per la pubblicazione di algoritmi statistici. Le citazioni e la revisione tra pari sono fondamentali per il mondo accademico, quindi ricevi un sacco di codice ben descritto pubblicato negli archivi R (CRAN) con descrizioni pubblicate su JStat. Questo si riversa in molti blog e post in codice di dimostrazione rapida.

Vale a dire, c'è un'enorme base di codice creata dall'utente per R. Quando ho bisogno di trovare un algoritmo online, spesso guarderò prima alla massiccia base di codici R. Una rapida ricerca del codice R ha mostrato quanto segue:

Da un blogger R , con codice (vedi il link gist):

The Deferred Acceptance Algorithm (DAA) risale a Gale and Shapley (1962). Introducono un algoritmo piuttosto semplice che trova una corrispondenza stabile, ad esempio per le ammissioni al college o in un mercato matrimoniale. ... Variazioni di questo algoritmo sono utilizzate negli incarichi ospedalieri negli Stati Uniti, in base ai quali i dottori recentemente laureati presentano preferenze sugli ospedali e gli ospedali presentano preferenze sui laureati. ... Qui userò R per fare una piccola simulazione di questo

Da un repository github installabile per i mercati corrispondenti :

Il pacchetto R include matchingMarketsdue stimatori:

  • stabit: Implementa uno stimatore di Bayes che stima le preferenze degli agenti e corregge la selezione del campione nei mercati corrispondenti quando il processo di selezione è un gioco di abbinamento unilaterale (cioè formazione di gruppi).

  • stabit2: Implementa lo stimatore di Bayes per un gioco di abbinamento a due facce (ad es. Ammissioni al college e problemi di matrimonio stabili ).

e tre algoritmi che possono essere utilizzati per simulare i dati corrispondenti:

  • hri: Modello di vincolo per il problema ospedale / residenti. Trova tutti gli abbinamenti stabili nei mercati degli abbinamenti bilaterali. Implementato sia per il problema del matrimonio stabile (corrispondenza uno a uno) che per il problema ospedale / residenti , noto anche come problema di ammissione all'università (corrispondenza molti-a-uno).

  • sri: Modello di vincolo per il problema dei coinquilini stabili. Trova tutti gli abbinamenti stabili nel problema dei coinquilini (mercato degli abbinamenti unilaterale).

  • ttc: Algoritmo dei migliori cicli di trading. Trova corrispondenze stabili nel problema del mercato immobiliare .

Funziona hrie sriconsente elenchi di preferenze incomplete (alcuni agenti ritengono inaccettabili determinati agenti) e istanze sbilanciate (numero disuguale di agenti su entrambi i lati).

Spero che uno di questi possa aiutare. Il secondo in particolare sembra estremamente utile, soprattutto se fornisce uno stimatore empirico.


1

So che questo è un po 'obsoleto, ma c'è un nuovo pacchetto disponibile su CRAN ora chiamato' matchingR 'che credo sia molto più veloce del pacchetto consigliato sopra. Puoi installarlo con

install.packages('matchingR')

Inoltre, ecco un link alla fonte .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.