Skip to content

Files

43 lines (29 loc) · 1.49 KB

README.md

File metadata and controls

43 lines (29 loc) · 1.49 KB

Table Assignment using Simulated Annealing

This code is for BNL EIC Networking Kickoff Event.

Goal: given N participants and M tables for a networking events, folks are evenly distributed among tables such that tablemates have diverse backgrond but similar interests.

Setup Environment

conda create -f environment.yml
conda activate apoc

Usage

python assign_table.py -m <num-of-tables> <input.xlsx>

An output xlsx file will be produced to map individuals to a table along with the primary topic of the table.

To run this code through multiple table options:

for m in $(seq 18 27);do python assign_table.py -m $m <input.xlsx> >m$m.txt; done
python print_table_tag.py <input>

This script will generate a table tag for each table. The table tag is designed to be foldable with one side displaying the table ID in a large font and the other the participants' names. The input here is either the xlsx or txt output from assing_table.py containing a field called "Table ID". To combine all pdf tags into one for printing, one can use external tools like pdftk:

pdftk table_*.pdf cat output combined_table_tags.pdf

Some Details.

  • Since each participants can choose multiple topics of interests, they are one-hot encoded and the topic score is calculated by maximum overlapping.
  • Diversity score is calculated as b k where b is a base parameter and k is the number of uniqueness.
  • Diffenrent scores are linearly combined.