Not for MT developers! What to replace INIT_PARAMETERS_INCORRECT with ? - page 8

 
Aleksey Vyazmikin:

You have 4 parameters, so you need to organise these 4 parameters to work only with the correct values, then genetics can be useful.

How so?

If each parameter can take 3 correct values, then ifuse_parameter = true you get 81 passes, and if = false, then 80 passes are useless.

So, how to "somehow" arrange this?

 
Сергей Таболин:

How does it work?

If each param_ can take 3 correct values, then ifuse_parameter = true you get 81 passes, and if = false, then 80 passes are useless.

So, how to "somehow" arrange this?

I can not give an answer to this question because at a minimum I do not understand the optimization conditions - either you state poorly or I'm dumb.

You have 4 parameters interdependent or two pairs?

If you have 4 mutually dependent and, as you wrote before, all variants in one file as one setting, then the genetics will randomly (and maybe by another method - question for MQ) fill the field and optimize the selected part. If you have other parameters to optimise, outside of these 4, then the geneticist will be able to search for the optimum setting relative to the selected and other parameters.

 
Сергей Таболин:

In your case, only valid chains can be generated.

You have 1953 valid combinations. take out the int setting from 0 to 1952 and generate the correct combination by the sequence number.

 
Alexey Navoykov:

That is your mistake. There are no "superfluous" passages in genetics. It sorts everything out by itself, sifting out unnecessary things, which saves time and resources. And you are only interfering with it.

In fact, you contradict yourself. First you say that you want everything to work by itself by pushing a magic button, without any additional effort on your part. But at the same time you create shamans in the code, supposedly helping the optimization algorithm.

Anyway, everything is clear now:

You don't have to eliminate anything by INIT_PARAMETERS_INCORRECT. Just calculate 121 in accordance with your program logic, and genetics will do its job and the result will be obtained in less than 1953 passes.

If you optimize using the slow complete search, then of course extra passes are not needed. You can introduce an additional parameter in your EA defining the type of optimization. If it is a full search, the extra passes are rejected, while if it is genetic, they are not. It is a pity that MQL will not provide you with such an option. The developers should ask to add this function.

The thing is, when I faced the problem of dozens of results being identical in optimization results, I created a topic asking how to get rid of it. Unfortunately after the ban all my topics and all my comments have disappeared from my publications, so I can't give you the link.

So that's where I was told to use INIT_PARAMETERS_INCORRECT

And yes, I don't understand why you need to engage in knowingly useless runs:

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • etc.

if it's essentially the same thing?

And from what I know about genetics, it turns out that these repetitive chains will rotate, and the best ones may not be in sight of this algorithm at all... Isn't that right?

 
TheXpert:

It has been said many times before in different words. transforming the input space. in your case you can only generate valid chains.

you have 1953 valid combinations. take out the int setting from 0 to 1952 and generate the correct combination by the sequence number. this is an option.

That's what I ended up doing...

 
Сергей Таболин:

And yes, I don't understand why one would engage in a knowingly useless run:

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • etc.

if it's essentially the same thing?

And from what I know about genetics, it turns out that these repetitive chains will rotate, and the best ones may not be in the field of view of this algorithm at all ... Isn't that right?

So, what is the best strands? It's also some number of repeated copies. And this repetition increases the chances that one of these copies will be caught by the search.

So in essence the chances (probabilities) are the same with or without repetitions. Accordingly the time of genetic search will be the same in both cases.

In general, I still recommend you to understand how the genetic algorithm works. Otherwise it is useless to explain anything to you.

 
Alexey Navoykov:

So what are the best chains? ...

If I knew, I wouldn't need to optimise either.

Perhaps the best one is 326000, 514300 or 346215?

 
Сергей Таболин:

If I knew, there would be no need to optimise either.

Perhaps the best one is 326000, 514300 or 346215?

That was just an introductory question to which I was giving an explanation.

So it's not "best" but "best, given all sorts of copies of this chain.

You do not understand a simple thing, that by sifting out the chain according toINIT_PARAMETERS_INCORRECT you might miss one of these successful chains or close to it. Therefore the search does not get any shorter.

 
Alexey Navoykov:

That was just an introductory question to which I was giving an explanation.

So it's not "best", but "best, given all the different copies of that chain.

You do not understand a simple thing, that by screening out the chain according toINIT_PARAMETERS_INCORRECT, you might miss exactly one of these successful chains, or a chain close to it. So the search does not get any shorter.

I sift out EXCLUSIVELY repetitive ones! In the example they are marked with a red background.

How can a 120000 chain be better than a 010020 chain? It is the same chain! And 100002, and 000012! So why all these repetitions of the same thing?

 
Сергей Таболин:

I sift out EXCLUSIVELY repetitive ones! In the example they are marked with a red background.

How can the 120000 chain be better than the 010020 chain? It is the same chain! And 100002, and 000012! So why all these repetitions of the same thing?

OK, you don't understand, but that's to be expected. For hearing people, I've said all I have to say. I see no point in going on