Choose smaller than a value in Octopus

Is there a way to store wanted value when Octopus is running?

For example, by running Octopus, I will have results between 0 and 100, but I’m looking for a way to store the value smaller than 80. I’ve tried with gate, it’s not working very well.

What do you mean by “store”?

  • If you just want to record your “View Obstructed” Value somewhere as soon as it’s below 80 you could probably use the DataRecorder Component after your gate.
  • If you only want to pass the value to Octopus if it’s below 80, I would suggest replacing/passing another value (not Null) to Octopus in other cases. For example with an Expression Component and an expression similar to if(x<=80, x, y) where y is the value that x gets replaced with if it’s not smaller than 80.
  • If 80 is your target, thus the optimal value for you, I’d suggest a proper fitness function like
    abs(x-80)/(100-0) where x is the current “View Obstructed” value between a range from 0 to 100 with an optimum of 80

Maybe these tips help. Unfortunately I’m at a computer without gh right now so I can’t give visual examples. If you can further define what you mean by “storing” the value I’ll try again to come up with something :slight_smile:


Thanks for you advises Max. Now I’m minimizing 3 objectives. 80 is the acceptable value, all the view value > 80 is considered unwanted. So my goal is running Octopus, when Octopus has a view value = 91, pass this derivative and keep running.

The propose to use “null” is to tell Octopus don’t “store” this derivative because if I don’t design a gate here, my pareto front are full of unwanted results.

Yesterday I run Octopus with the first gate, it stopped when receives an empty value. However, I tried again today, it’s works very well. All the pareto front are good result. Don’t know why, it just worked.

By the way, I have another puzzle about the result from Octopus. As we know, the result exported from Octopus is like 40.910947133595932. How do we understand this kind of result? We just consider this as 40.9?


It seems to me that you are trying to set up a sort of step-by-step optimization, I don’t know if Octopus is the right tool there or if it’s even possible to set this up in a stable manner. But then again I also haven’t seen your whole setup so I’m just guessing here.

If I remember correctly, you can pass a hard-constraint to Octopus as a boolean value. Octopus will then consider every solution where the value is False as invalid and only True solutions are considered feasible. This may be better for Octopus than the <null>, however it may also be yesterdays news since it’s a long time since I have used Octopus.

About the exported result from Octopus I don’t know, sorry.