Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split codebase in two: DynamicExpressions.jl and SymbolicRegression.jl #147

Merged
merged 53 commits into from Oct 23, 2022

Conversation

MilesCranmer
Copy link
Owner

@MilesCranmer MilesCranmer commented Oct 21, 2022

This splits the entire codebase in two:

  • SymbolicRegression.jl (this repo) will now focus on the symbolic regression stuff exclusively.
  • DynamicExpressions.jl now exposes the core data structures used in this repository: the Node type, and the evaluation kernels.

This reduces the code complexity quite a bit, and makes it easier to focus on the actual evolutionary algorithm in one codebase, and an efficient expression evaluation scheme in the other codebase. Already by porting DynamicExpressions.jl into its own codebase, I've found it's easier to get tensor-based evaluation up-and-running! See the README example for one where I even define an expression on strings and then evaluate it: https://github.com/SymbolicML/DynamicExpressions.jl.

In the future it would be great if SymbolicRegression.jl was completely generic to type. A good test scenario of this would be: can I optimize a string, using a set of operators on strings, to have a particular loss metric?

This will then make it super easy to get a tensor version of symbolic regression working.

TODO:

  • Override for expression(X).
  • Remove unused modules (e.g., I think LinearAlgebra is no longer imported here)

src/Options.jl Outdated Show resolved Hide resolved
@MilesCranmer
Copy link
Owner Author

Seems like it fails a lot for the state saving test, and might even segfault. I guess there’s some state that’s not being initialized correctly?

@MilesCranmer MilesCranmer merged commit 0bafd58 into master Oct 23, 2022
@MilesCranmer MilesCranmer deleted the split-to-dynamic-expressions branch October 23, 2022 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant