I am currently reading a paper on a meta-heuristic called 'Grasshopper Optimization Algorithm'.

The main idea of the algorithm is to utilize the social behavior of grasshoppers in a swarm to solve optimization problems. The distance to other grasshoppers in the swarm is used to determine, if a grashopper is repelled (exploration) or attracted (exploitation) from grasshoppers in its proximity.

However I am not sure if I understood the first part of the proposed formula correctly:

$$X_i^d = c\left(\sum\limits_{j=1,j\neq i}^Nc\frac{ub_d-lb_d}{2}s\left(\lvert x_j^d-x_i^d\rvert\right)\frac{x_j-x_i}{d_{ij}}\right) + \widehat{T}_d$$

$X_i^d$ calculates the next position of a search agent (grasshopper) with respect to the postion of the other search agents and the best found solution so far. So the next position of a grasshopper depends on its own position, the positions of all other grasshoppers in the swarm and the best solution found so far.

$\widehat{T}_d$ denotes the best solution found so far.

$c$ is a decreasing coefficient that regulates if the search agents explore or exploit in the search space. With increasing iteration count $c$ decreases and the search agents tend to exploitation.

$s\left(\lvert x_j^d-x_i^d\rvert\right)$

The part in brackets calculates the distance between grashoppers. $s$ is a formula which takes this value and determines if the search agents should explore or exploit.

$\frac{x_j-x_i}{d_{ij}}$ is a unit vector, where $d_{ij}$ denotes the distance between two grasshoppers.

It states that $ub_d$ is the upper bound and $lb_d$ is the lower bound in the $d$-th dimension. It further states that the part $c\frac{ub_d-lb_d}{2}$ linearly decreases the space that grasshoppers (search agents) should explore and exploit.

I dont undertsand what is meant with 'upper and lower bound in the $d$-th dimension'. Upper and lower bound for what exactly?

Can somebody help?

Information extracted from this paper:

Grashopper Optimization Algorithm

  • $\begingroup$ Please give some context to understand the meaning of the formula and notations. $\endgroup$
    – Nathaniel
    May 3, 2021 at 10:26
  • $\begingroup$ @Nathaniel I tried to condense the information, I hope this helps. $\endgroup$
    – gython
    May 3, 2021 at 11:32

1 Answer 1


I suspect they probably mean $$ub_d = \max_i x_i^d$$ where $x_i^d$ is the $d$h coordinate of $x_i$; and similarly for $lb_d$, but using $\min$ instead of $\max$. But I don't know -- I am just speculating based on context.

  • $\begingroup$ Thanks for your answer! Would $max \ x_i^d$ be the max coordinate of the grasshopper (value to be optimised) in the swarm in the current iteration? $\endgroup$
    – gython
    May 3, 2021 at 20:18
  • $\begingroup$ @gython, max value over all grasshopppers in that coordinate $\endgroup$
    – D.W.
    May 3, 2021 at 20:34
  • $\begingroup$ How I understood the algorithm, it states that 2 grasshoppers cant be on the same position, because if they are too close to each other, they repel each other $\endgroup$
    – gython
    May 3, 2021 at 21:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.