Challenges tagged optimization should tend to focus on three areas:
- There is exactly one observable parameter ("score") which measures the performance of attempting a puzzle in a particular approach. As examples, this could be a mixed function between code size, objectives reached (e.g. count from 1 to N where score depends on increasing N), constraints met (e.g. penalty on repeating characters), or any arbitrary but well defined set such as playing a game and measuring your score, etc.
- The performance (measured score) involves the loosely computer sciencey definition of "optimization", that is a "better" approach works more efficiently or use fewer resources. (Resources is generally interpreted as code size on this site, but there may be alternatives.)
- The problem does not have an obvious solution, i.e. solutions may compete on out-performing each other rather than solving the problem with the optimal methods. More specifically, in most optimization problems there exists a playing field that arises from having the output be a continuous function (i.e. for two similar approaches, they may be measured to be distinct from each other based on details) or the optimal algorithm is very hard to find / compute. (e.g. unit allocation)
It describes the tag as a winning criterion tag, where the objective is to optimize some custom score of the submissions. But framing it as such has multiple problems:
- code-challenge already covers the definition, and that is the recommended winning criterion tag for that kind of challenges.
- No one these days uses optimization tag for that purpose. Instead, it is used more often where the core task itself is an optimization problem.
- Optimization problem (Wikipedia) is an important class of problems in computer science closely related to decision-problem. Notably, many NP-complete decision problems have a twin optimization problem (e.g. TSP as an optimization problem reads as "minimize the cost of a Hamiltonian cycle", while its decision problem version reads as "does such a cycle under the given cost X exist?".) This definition suits better to the current usage of the tag.
- Under this definition, optimized-output is NOT a synonym of optimization. IMHO, it should be synomymized to code-challenge instead (assuming SE supports this).
Therefore, I propose the following:
- Change the meaning of optimization to that of an optimization problem in the CS sense.
- Re-tag all optimization / optimized-output challenges that follow the previous definition to code-challenge.
- Add a pointer to code-challenge in the wiki excerpt.