You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an open discussion. Please comment with your thoughts on the matter.
Overview
As @EnricoBorriello has pointed out, the network state encoding we use is somewhat unorthodox: given an array of node states, lower indexed states have a lower bit value, call it the Lowest Index - Lowest Bit encoding (LILB). For example, in a three-dimensional binary state space, states are encoding/decoded using the following map:
Call this the Lowest Index - Highest Bit encoding (LIHB).
The choice of which encoding to use no technical impact on the results, but it could be unintuitive to users. The decision to use LILB encoding stems from our implementation of the StateSpace.__iter__ method. This method allows the user to iterate over the decoded states of the state space. The states are produced in the LILB ordering to so that the follow holds:
The StateSpace.__iter__ algorithm is easier to implement in this ordering, but could be implemented using any alternative ordering. Regardless of which encoding we chose, the StateSpace.__iter__, StateSpace.encode and StateSpace.decode methods should be implemented so to satisfy the above condition.
Possible Encodings
Lowest Index - Lowest Bit (current implementation)
Lowest Index - Highest Bit (@EnricoBorriello's preferred encoding)
This is an open discussion. Please comment with your thoughts on the matter.
Overview
As @EnricoBorriello has pointed out, the network state encoding we use is somewhat unorthodox: given an array of node states, lower indexed states have a lower bit value, call it the Lowest Index - Lowest Bit encoding (LILB). For example, in a three-dimensional binary state space, states are encoding/decoded using the following map:
Some people find this surprising as they would expect the decoded states to be reversed:
Call this the Lowest Index - Highest Bit encoding (LIHB).
The choice of which encoding to use no technical impact on the results, but it could be unintuitive to users. The decision to use LILB encoding stems from our implementation of the
StateSpace.__iter__
method. This method allows the user to iterate over the decoded states of the state space. The states are produced in the LILB ordering to so that the follow holds:The
StateSpace.__iter__
algorithm is easier to implement in this ordering, but could be implemented using any alternative ordering. Regardless of which encoding we chose, theStateSpace.__iter__
,StateSpace.encode
andStateSpace.decode
methods should be implemented so to satisfy the above condition.Possible Encodings
The text was updated successfully, but these errors were encountered: