I study mathematics and want to do my end-of-degree project on heuristic methods for optimization (more concretely, genetic algorithms) and wanted to include a section on computational complexity. Basically to explain what it means for a problem to be NP, NP-complete, etc and why that leads you to use heuristic methods in practical situations.
I have little to no background in this branch of knowledge and the section in the project cannot be very long. Any suggestions for sources that might be helpful? I thought there may exist some optimization book with a chapter dedicated to computational complexity, this could be a perfect source, but I haven't found any.
I would recommend Sipser's Theory of Computation text. It's reasonably close to a Math textbook and has excellent exposition.
NP-completeness is a very standard topic, and you should be able to find references in other standard texts like CLRS, for instance.
I'd recommend avoiding Arora--Barak. They omit too many details, leave too much to the exercises, and have a lot of errors. I did not find Arora--Barak helpful for learning.