Code for optimizing a conference schedule based on similarity of abstracts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Charles Pence db09ae9d25
Fix 01-scripts, including an off-by-one-bug.
29 minutes ago
ISH2019 Add working printout for optimized schedule. First version now done! 2 weeks ago
ISH2021 Fix 01-scripts, including an off-by-one-bug. 29 minutes ago
src Okay, working on a WordVec solution for similarity, after seeing some bugs, but can't keep testing today. 6 hours ago
.gitignore Move the venv to where VSCode will find it, install Black. 4 weeks ago
LICENSE.txt Add an initial version of the code and a data dump from ISH19. 1 month ago Prettier for original file abstract. 3 weeks ago Update README. 18 hours ago
requirements.txt Okay, working on a WordVec solution for similarity, after seeing some bugs, but can't keep testing today. 6 hours ago

ISH Conference Scheduler

Do you want to run a conference? Do you need to bundle together individual submissions into sessions that both make coherent sense with one another and are different enough from what's happening at the same time to prevent people from bouncing back and forth between rooms as much as possible? Does that sound like something a computer should help you with? This is the software for you.

This code was cobbled together by Charles Pence on the basis of some existing code by Prashanti Manda and an article describing that code's use, available at The goal was to use this system to evaluate sessions for the 2021 meeting of the International Society for the History, Philosophy, and Social Studies of Biology (ISHPSSB).

How to Use

This code is set up to work with python and virtualenv. You can use these by executing (from this directory):

virtualenv .venv
source .venv/bin/activate

pip install -r requirements.txt

To regenerate the included testing data, go to the ISH2019 or ISH2021 folder and run the numbered scripts in order, inspecting the output at each stage. The scripts that you'll find there will give you an idea of how you could extend this method to group together talks for a new conference.

Two Kinds of Conference

There are two sorts of scripts here, and hence two kinds of conference these scripts can be used to generate. The ISH2019 folder is an example of only bundling together individually submitted papers into sessions. The ISH2021 folder, on the contrary, permits two kinds of submission: either individually submitted papers, which need to be grouped together into sessions, or pre-arranged sessions submitted as a whole, which only need to be scheduled (minimizing for overlap of subject in the same time-slot) and don't need to be grouped together.

In short, if you just have a bunch of individual people submitting talks and you want to schedule them, check ISH2019. If you have people submitting either (1) individual talks or (2) sessions consisting of multiple talks, and you want to schedule both of those things together, check ISH2021.

License and History

This code is released under the GNU GPL v3. See LICENSE.txt.

This code is based upon the Automated Conference Scheduler code by Prashanti Manda, copyright 2014 and released under the GNU GPL. For information about that original project, see