However you said Software Engineer, which means you've certainly been educated and exposed to them as the requirements for even getting to that designation (unless it's self-designated).
A software engineer is someone who engineers/designs software - any software. It's just a fancy title for "programmer".
A software engineer, furthermore, should not be confused with computer science either.
Off course GA's and neural networks are touched upon during classes. Every programmer who had a college or university education in ICT most likely was exposed to it in one way or the other.
But that doesn't mean that it was done in detail. It's quite a specialised branch, which is not covered in detail in a general ICT education, especially not when the focus is on enterprise-level development.
The life of a software engineer / programmer is a lifetime of study. A lot of college and university tracks will just give you a foundation on which you'll have to build yourself, depending on the job or industry you end up working in.
Typically, when it comes to for example such heavy math based optimisation methods, it won't even be the programmers that will design the required algorithms. They'll just implement it in code. They'll have to roughly understand what is going on in the algorithm. But understanding the algorithm and being able to design it from scratch are two very different things in that world.
I've worked on plenty of projects where none of us actually really understood what all the values/variables/formula's
really represented. A functional analyst would write it all out, step by step, and we'ld just implement it like code monkeys. And when you'ld ask a programmer of that team "what are you working on?", he'ld just answer with "use case X". And when asked "what is X about?", the answer would be "i don't have a clue".
Building software can be funny that way.
This is to be expected. If we would have to learn and understand the actual business behind every project we'ld work on, we'ld have to start studying months for every new project. In a consultancy firm, where you work on another project every 5 months, this is simply not possible and a waste of resources.
Not that long ago, we did a project that was all about risk management. Huge amounts of data were fed into mathematical models that would analyse it and spew out results. We created a framework in wich that analysis took place but we didn't design that math model. None of us was strong enough in math to do so. Instead, 2 mathematicians were part of the business team and they were the ones that told us how to implement what. They designed the model. We merely translated it into code.