Instruction Set and Language for Symbolic Regression
Organizations: Department of Computer Languages and Computer Science University of Málaga Bulevar Louis Pasteur, 35 29071 Málaga, Spain · ITIS Software. Universidad de Málaga. C/ Arquitecto Francisco Peñalosa 18, 29010, Málaga, Spain
Abstract
A fundamental but largely unaddressed obstacle in Symbolic regression (SR) is structural redundancy: every expression DAG with admits many distinct node-numbering schemes that all encode the same expression, each occupying a separate point in the search space and consuming fitness evaluations without adding diversity. We present IsalSR (Instruction Set and Language for Symbolic Regression), a representation framework that encodes expression DAGs as strings over a compact two-tier alphabet and computes a pruned canonical string -- a complete labeled-DAG isomorphism invariant -- that collapses all the equivalent representations into a single canonical form.
Figures & tables
| Label | Type | Arity | Evaluation |
|---|---|---|---|
| + | Add | variadic ( ) | (commutative) |
| Mul | variadic ( ) | (commutative) | |
| g | Neg | unary (1) | |
| i | Inv | unary (1) | |
| s | Sin | unary (1) | |
| c | Cos | unary (1) |
| Algorithm S2D |
| Input: instruction string ; number of variables |
| Output: labeled DAG |
| // Initialization |
| Create Var nodes with IDs ; set ; for all |
| Insert into CDLL in variable-index order |
| ; |
| Algorithm D2S |
| Input: labeled DAG ; number of variables |
| Output: IsalSR instruction string |
| ; Create empty output DAG ; ; |
| Map all Var nodes from to in variable-index order; insert into CDLL |
| ; |
| ; |
| Algorithm PrunedCanonical |
| Input: labeled DAG ; number of variables |
| Output: pruned canonical string |
| // redirect all Const creation edges to |
| Precompute for all // |
| Initialize , , , , , as in D2S |
| return |
| Name | Expression or | Input range | |
|---|---|---|---|
| Nguyen-1 | 1 | ||
| Nguyen-2 | 1 | ||
| Nguyen-3 | 1 | ||
| Nguyen-4 | 1 | ||
| Nguyen-5 | 1 | ||
| Nguyen-6 | 1 |
| ID | Expression | Variable ranges | |
|---|---|---|---|
| I.6.20a | 1 | ||
| I.12.1 | 2 | ||
| I.25.13 | 2 | ||
| I.34.27 | 2 | ||
| I.39.10 | 2 | ||
| II.3.24 | 2 |
| Experiment | Timeout | Total | ||||
| P1–P4 | Property validation | — | – | 5,000/ | 2 s | 15,000 |
| P5 | Search space | – | – | /config | 5 s | 961 |
| Scalability | – | – | 200/config | 120 s | 9,000 | |
| Shortest path | — | – | 5 pairs | — | 5 | |
| Neighbourhood | — | 357 neighbours | 5 s | 357 |
| Expression | Depth | P1 | P2 | P3 | P4 | ||||
|---|---|---|---|---|---|---|---|---|---|
| Nguyen-1 | 1 | 6 | 9 | 3 | ✓ | ✓ | ✓ | ✓ | 19 |
| Nguyen-5 | 1 | 8 | 10 | 5 | ✓ | ✓ | ✓ | ✓ | 26 |
| Nguyen-7 | 1 | 9 | 12 | 5 | ✓ | ✓ | ✓ | ✓ | 32 |
| Nguyen-8 | 1 | 3 | 3 | 2 | ✓ | ✓ | ✓ | ✓ | 7 |
| Nguyen-9 | 2 | 7 | 7 | 4 | ✓ | ✓ | ✓ | ✓ | 19 |
| Nguyen-10 | 2 | 6 | 6 | 2 | ✓ | ✓ | ✓ | ✓ | 16 |
| Evaluated | Pass | Rate | CI | |
|---|---|---|---|---|
| 1 | 3,004 | 3,004 | 100% | |
| 2 | 3,062 | 3,061 | 99.97% | |
| 3 | 3,062 | 3,060 | 99.93% | |
| All | 9,128 | 9,125 | 99.97% |
| Pair | Expression 1 | Expression 2 | Relationship | |
|---|---|---|---|---|
| A | Different structure | 10 | ||
| B | Same operands, different combinator | 1 | ||
| C | Containment | 12 | ||
| D | Same topology, different unary op | 1 | ||
| E | Mixed two-variable | 12 |
| Operation | Redundancy | |||
|---|---|---|---|---|
| Deletion | 10 | 5 | 3 | 40.0% |
| Substitution | 160 | 60 | 35 | 41.7% |
| Insertion | 187 | 67 | 18 | 73.1% |
| All | 357 | 132 | 38 | 71.2% |