WassimTenachi/PhySO

Can I add a custom fomula as a start up?

AIforDeviceModeling opened this issue · 5 comments

For example, can I use y = exp(x) as the search start, and every sequential trial formula is based on this specific formula?

Hi @AIforDeviceModeling,

You can apply it on you input variable x yourself before handing it over to physo using :
x = np.exp(x)
This way physo will use exp(x) instead of x.

Wassim

Hi @WassimTenachi,
Thanks for your reply.

This process can work in the simple scene.
But for some complex scene, for example,
Given the true formula is: y = e^(a+b) + ln(a+b)
If I let: c = e^(a+b), the search is very hard.
So it may dont work in the complex scene.

I am sorry I don't really get it.
If a,b are your input variables and the true formula is:
y = e^(a+b) + ln(a+b)
Then using a,b,c with c = e^(a+b) as input variables should make the problem simpler as physo just has to guess:
y = c + ln(a+b) right?

You don't mean complex as in complex number right ?

@WassimTenachi
Thanks for your explaination.
I have a question in another sence. I want the known formula as the start up, but not assure the formula is specificed.
For example, The true fromula is :
Z = e^(3X + 4Y) + ln(5X + 6Y)
and I just know a part of the result formula:
e^(aX+bY).
The a and b is not konwn.
So, can I pass the information to the PhySO?

This is a great idea but unfortunately, this is not possible with physo at the moment.

PS:

Starting from known formulas:

In principle it is possible to start the search from known formulas with the RL approach we employ in physo by making the neural network learn on these formulas in addition and/or before other formulas it finds using something akin to a priority queue system but this is not an available feature (for now at least).

Custom operator depending on free constants:

e^(aX+bY).
The a and b is not konwn.

If a and b are just free constants and not more complicated subtrees in principle it is doable by introducing a custom operator $f_1$ such that $f_1(X,Y,a,b) = e^{aX + bY}$ but it would require significant code re-write with the current physo code as a and b would have to be optimisable by the free constant optimiser.