GaleShapley

No algorithm description given

Gale Shapley algorithm for stable matching. Input: Object of class Map<String,List<String>> , in which each key is a node name, and its value is an ordered list of names denoting preferences (the first element being the highest preference). The input contains 2n elements, n of which are “male” and include each of the n “female” nodes in their preference list, and vice versa. The order of the elements in the input map does not matter, and "male" vs. "female" elements will be determined based on the composition of the preference lists (a "male" element will have only "female" elements in their preference list while a "female" element will have only "male" elements in their preference list"). Output: Object of class Map<String,String> where each key is paired with its value. Suitor Bias : The Gale-Shapley algorithm is biased for 'suitor optimality'. The suitor in this implementation will be the "gender" (group) opposite that of the first element. For more information on the Gale-Shapley algorithm see: http://en.wikipedia.org/wiki/Stable_marriage_problem . Sample: In the Sample Input and Sample Output below, "Andre" and "Ritesh" are male while "Shikha" and "Joanne" are female. The 'suitor' in this case will be the females, as the first element "Andre" is male.

Tags
(no tags)

Cost Breakdown

0 cr
royalty per call
1 cr
usage per second
avg duration

Cost Calculator

API call duration (sec)
×
API calls
=
Estimated cost
per calls
for large volume discounts
For additional details on how pricing works, see Algorithmia pricing.

Internet access

This algorithm has Internet access. This is necessary for algorithms that rely on external services, however it also implies that this algorithm is able to send your input data outside of the Algorithmia platform.


To understand more about how algorithm permissions work, see the permissions documentation.

1. Type your input

2. See the result

Running algorithm...

3. Use this algorithm

curl -X POST -d '{{input | formatInput:"curl"}}' -H 'Content-Type: application/json' -H 'Authorization: Simple YOUR_API_KEY' https://api.algorithmia.com/v1/algo/joannetang/GaleShapley/0.1.0
View cURL Docs
algo auth
# Enter API Key: YOUR_API_KEY
algo run algo://joannetang/GaleShapley/0.1.0 -d '{{input | formatInput:"cli"}}'
View CLI Docs
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{{input | formatInput:"java"}}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://joannetang/GaleShapley/0.1.0");
AlgoResponse result = algo.pipeJson(input);
System.out.println(result.asJsonString());
View Java Docs
import com.algorithmia._
import com.algorithmia.algo._

val input = {{input | formatInput:"scala"}}
val client = Algorithmia.client("YOUR_API_KEY")
val algo = client.algo("algo://joannetang/GaleShapley/0.1.0")
val result = algo.pipeJson(input)
System.out.println(result.asJsonString)
View Scala Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://joannetang/GaleShapley/0.1.0")
           .pipe(input)
           .then(function(output) {
             console.log(output);
           });
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://joannetang/GaleShapley/0.1.0")
           .pipe(input)
           .then(function(response) {
             console.log(response.get());
           });
View NodeJS Docs
import Algorithmia

input = {{input | formatInput:"python"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('joannetang/GaleShapley/0.1.0')
print algo.pipe(input)
View Python Docs
library(algorithmia)

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("joannetang/GaleShapley/0.1.0")
result <- algo$pipe(input)$result
print(result)
View R Docs
require 'algorithmia'

input = {{input | formatInput:"ruby"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('joannetang/GaleShapley/0.1.0')
puts algo.pipe(input).result
View Ruby Docs
use algorithmia::*;

let input = {{input | formatInput:"rust"}};
let client = Algorithmia::client("YOUR_API_KEY");
let algo = client.algo('joannetang/GaleShapley/0.1.0');
let response = algo.pipe(input);
View Rust Docs
Discussion
  • {{comment.username}}