(Potential massive search-space) Is this an exponential problem?

  • Context: Undergrad 
  • Thread starter Thread starter htyj6g9jv1ev6
  • Start date Start date
  • Tags Tags
    Exponential
Click For Summary
SUMMARY

The problem of computing all possible journeys consisting of 256 steps, where each step can either be a "walk" or a "hop," results in an exponential search space of 2^256 combinations. This conclusion is supported by smaller examples, such as 2^1 yielding 2 combinations and 2^3 yielding 8 combinations. To implement a brute force algorithm, one can iterate from 0 to 2^256-1, generating a 256-digit binary representation for each number, where '0' represents a walk and '1' represents a hop. However, due to the vast number of combinations, efficient storage and processing techniques are necessary.

PREREQUISITES
  • Understanding of binary representation and its application in algorithms
  • Familiarity with exponential growth in computational problems
  • Knowledge of nested loops for generating combinations
  • Experience with handling large integers or bit manipulation
NEXT STEPS
  • Explore algorithms for generating combinations in Python using nested loops
  • Research data structures for storing large binary numbers, such as arrays or custom classes
  • Learn about optimization techniques for handling exponential search spaces
  • Investigate the use of libraries for arbitrary-precision arithmetic, such as Python's `decimal` or `gmpy2`
USEFUL FOR

Software developers, algorithm designers, and mathematicians interested in combinatorial problems and exponential complexity in computational tasks.

htyj6g9jv1ev6
Messages
6
Reaction score
0
I'm writing a piece of software, however, my math skills are VERY rusty at the moment.

The problem is as follows:

  1. There is a journey consisting of 256 steps
  2. The person, can either i) walk, or ii) hop
  3. The person can choose what to do at each step
  4. I want to compute a list of all possible journey

I'm wondering if my attempt is futile... As the search-space may be too huge if this problem is indeed exponential.

My specific question is, how many ways are there through this journey? How many combinations of "walk" and "hop"?

I'm hoping that I'm wrong and the answer is not 2^256 (or around that area...). Otherwise I will have to abandon my simplistic brute force algorithm :D

Thank you!
 
Physics news on Phys.org
htyj6g9jv1ev6 said:
I'm writing a piece of software, however, my math skills are VERY rusty at the moment.

The problem is as follows:

  1. There is a journey consisting of 256 steps
  2. The person, can either i) walk, or ii) hop
  3. The person can choose what to do at each step
  4. I want to compute a list of all possible journey

I'm wondering if my attempt is futile... As the search-space may be too huge if this problem is indeed exponential.

My specific question is, how many ways are there through this journey? How many combinations of "walk" and "hop"?

I'm hoping that I'm wrong and the answer is not 2^256 (or around that area...). Otherwise I will have to abandon my simplistic brute force algorithm :D

Thank you!

The answer is simply 2^256.

Test it out for smaller steps sizes.

2^1 = 2: 0,1
2^2 = 4: 00,01,10,11
2^3 = 8: 000,001,010,011,100,101,110,111

0 corresponding to walk
1 corresponding to hop

If you want to write your algorithm, it's incredibly easy. Just count from 0 to 2^256-1 writing out the number in 256 digit binary at each iteration. You'll need storage for 256 bits of precision, so you're not going to be able to rely on the built-in types, but you can handle this easily with nested loops. For 32-bit precision, you'll need 8 nested loops, then just write out the counters in 32-bit binary, in order.

The cool thing about this is that the order that the paths come out in, means that the early ones are valid for smaller step sizes too, so you can see where your computer stops making progress.

Was there a particular reason why you needed 256 steps?
Also is there a particular reason that you need a list of them?
 
Last edited:

Similar threads

  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
2
Views
3K
Replies
4
Views
6K
Replies
3
Views
7K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 8 ·
Replies
8
Views
4K