- #1
Wolfman29
- 20
- 0
Hi everyone. I hope this is in the proper place - not sure where to put it.
Anyway, I am working on an optimization problem in the research I am doing and my partner and I have found that in order to quickly converge on a solution using a specific PSO (the firefly algorithm - it's awesome, look it up), we need a good distribution of initial fireflies that are "evenly" spaced. To that end, we found that it would be useful to use a low-discrepancy sequence instead of a pseudorandom number generator to prevent clumping.
Typically, this is not a hard problem. However, the optimization problem we are considering has 29 dimensions, and we are looking to use as few as 60 initial fireflies, which presents a problem for most low-discrepancy sequences, like the Halton sequence and the Faure sequence. One technique, however, seems to be good: the Poisson Disk Sampling method.
The first step in the Poisson Disk Sampling method is to generate a grid so that each grid cell contains at most one point in your space. This is easy enough when you're simply working with numbers, but that is not the case for us: rather, we are working with physical quantities with different dimensions. For example - one of our axes ranges from 0-20 Tesla while another axis ranges from 0.02m to 1m. According to the documents we have perused, the size of these grid cells should be
[itex]\frac{r}{\sqrt{n}},[/itex]
where r is the minimum distance between desired distance between two points and n is the number of dimensions. However, r is not so easily defined when you are working with axes that have different units! For example, one cannot calculate the distance between the two points
[itex]1.0 \hat{T} + 0.2 \hat{m}[/itex]
and
[itex]1.5 \hat{T} - 0.4 \hat{m},[/itex]
because to do so would require adding two physical quantities with different dimensions, which breaks dimensional consistency.
So how would one even consider defining this grid? I've thought about it a lot, but I cannot think of an adequate way to define the grid used in the Poisson Disk Sampling method. The method that I have already implemented doesn't use a grid, which means it can still be consistent, but it's significantly slower because instead of checking whether or not a grid has multiple points in it, it needs to calculate values for each other point, meaning it decreases significantly as the number of dimensions increases.
Thanks for reading!
Anyway, I am working on an optimization problem in the research I am doing and my partner and I have found that in order to quickly converge on a solution using a specific PSO (the firefly algorithm - it's awesome, look it up), we need a good distribution of initial fireflies that are "evenly" spaced. To that end, we found that it would be useful to use a low-discrepancy sequence instead of a pseudorandom number generator to prevent clumping.
Typically, this is not a hard problem. However, the optimization problem we are considering has 29 dimensions, and we are looking to use as few as 60 initial fireflies, which presents a problem for most low-discrepancy sequences, like the Halton sequence and the Faure sequence. One technique, however, seems to be good: the Poisson Disk Sampling method.
The first step in the Poisson Disk Sampling method is to generate a grid so that each grid cell contains at most one point in your space. This is easy enough when you're simply working with numbers, but that is not the case for us: rather, we are working with physical quantities with different dimensions. For example - one of our axes ranges from 0-20 Tesla while another axis ranges from 0.02m to 1m. According to the documents we have perused, the size of these grid cells should be
[itex]\frac{r}{\sqrt{n}},[/itex]
where r is the minimum distance between desired distance between two points and n is the number of dimensions. However, r is not so easily defined when you are working with axes that have different units! For example, one cannot calculate the distance between the two points
[itex]1.0 \hat{T} + 0.2 \hat{m}[/itex]
and
[itex]1.5 \hat{T} - 0.4 \hat{m},[/itex]
because to do so would require adding two physical quantities with different dimensions, which breaks dimensional consistency.
So how would one even consider defining this grid? I've thought about it a lot, but I cannot think of an adequate way to define the grid used in the Poisson Disk Sampling method. The method that I have already implemented doesn't use a grid, which means it can still be consistent, but it's significantly slower because instead of checking whether or not a grid has multiple points in it, it needs to calculate values for each other point, meaning it decreases significantly as the number of dimensions increases.
Thanks for reading!