When we talk about an optimisation problem, there are actually different variants that we’re not usually explicit about: decision, optimisation, and construction. We don’t usually care that much about this distinction - it’s just that algorithms usually solve the construction version and complexity theory is usually about the decision version, where we don’t mind because typically it’s all polynomially related. But we can still be smart about it...