stable marriage problem with D3 force layout

skzy

License: MIT License

Fork
1
Fav
3
View
3064
  • Play

Fullscreen

Smart Phone

Fork tree

  • Readme
  • JavaScript 174 lines
  • HTML 11 lines
  • CSS 15 lines
安定結婚問題のアルゴリズムをD3.jsのforce layoutで表現しました。

Size nに数字を入れて(default 8) initialize ボタンを押すと、
n人x2の男女を表現するノードが作成されます。

左側のノードが女子、右側で集まっているのが男子で、
男子には、好みの女子の順序列が右側に、(ランダムで決まります)
女子には、好みの男子の順序列が左側に表示されています。(左側ほど優位のリスト)

iterate ボタンを押すと、ゲール-シャプレイ(GS)アルゴリズム の開始です。

ランダムに独身の男子が選び出されて、好きな女子にアタックします。
相手が、すでに、自分より好まれている男子とカップルになっている場合は、拒否られて、
独身組(右側の集まり)に逆戻りです。
一度カップルになっても、別の男子に横取りされたら、同じく独身組に戻ります。

againボタンは各人の好みの順序を変えずに最初の全員独身状態に戻ります。


アルゴリズムの再現としては、若干問題なところがあって、時々女子が二股するかもしれません。
そのときは、男子二人のどちらかをドラッグしてやると観念して直ります。
  • stable marriage problem with D3 force layout
  • stable marriage problem with D3 force layout

play

Complete!

Description What kind of game?

Control Device

jsdo.it websocket controller

Mouse

keyboard

smartphone

Fullscreen

Default Panel

Size

  • Width: px
  • Height: px

code

QR Code

Discussion

Questions on this code?

Tags

Favorite by

aki-saki-s:

D3.jsalgorithm安定結婚問題のアルゴリズムをD3.jsのforce layout

Forked

sort by