I'm working on a nifty little feature for our next release, i.e., to print the number of possible integer combinations left during branch and bound.

This is really handy for the user because they can monitor improvement even if the optimality gap is not improving for a while.

Calculating the combinations is trivial, however I'm wondering what is intuitive for people to read, especially because the numbers are way too big to just print on the terminal (e.g. $2^{10,000}$).

I have 2 options in mind, but I don't think the information is conveyed very well, so I thought it would be an interesting question to ask:

  1. Scientific notation, e.g., $3.\operatorname e5,138,121$. This is not very good because the exponent can actually be too large to even represent on the screen, and the only way to keep it short would be to chain the exponents (e.g., $3.\operatorname e5\operatorname e6$).
  2. Symbolic sequence, e.g., $2^{9,998}+2^{9,996}+...$ This is more readable, but of course I can only represent the first couple of terms as part of an iterative process, and even then that's a bit too much screen space.

How would you communicate numbers this large in an intuitive yet informative way?

  • 1
    $\begingroup$ I'd use a combination of numbers and letters (K/M/B). So, I go with $2^{9.9K}$. Of course, if possible and you don't lose a lot of the precision you liked to convey to the user. $\endgroup$ – EhsanK Mar 18 '20 at 12:33
  • $\begingroup$ @EhsanK That's a great idea, I'll try it out! $\endgroup$ – Nikos Kazazakis Mar 18 '20 at 13:07
  • 2
    $\begingroup$ I start with small numbers, 2^10, 2^20, 2^30 which easily fit on the screen, then talk about the number of atoms in the universe (something like 2^270) which can still be printed and then I just say that 2^10000 is beyond anything imaginable (read: infinite, for all practical purposes). $\endgroup$ – Marco Lübbecke Mar 18 '20 at 14:11
  • 1
    $\begingroup$ @MarcoLübbecke Yeah that's cool (I remember your ted talk!) - I want to show the number of possibilities decrease in real time as we solve, so it would start at, say, 2^50000 and iteratively go all the way down to 2^0. $\endgroup$ – Nikos Kazazakis Mar 18 '20 at 14:54
  • $\begingroup$ WOA, that is COOL, I would like to see that!! $\endgroup$ – Marco Lübbecke Mar 18 '20 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.