Carleton University, School of Computer Science, Ottawa, ON, K1A 5B6, Canada;Carleton University, School of Computer Science, Ottawa, ON, K1A 5B6, Canada;Département d'Informatique, Université du Québec à Hull, Hull, Québec J8X 3X7, Canada;Department of Applied Mathematics and Computer Science, The Weizmann Institute of Science, Rehovot 76100, Israel