# 2020 Cornell Optimization Open Textbook Feedback

## Duality

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- Double check indexes in the dual problem. LHS of the dual problem constraint should be aji.
- Equations in the “constructing the dual” subsection should be aligned properly.
- Please add more details to the KKT Conditions section.
- Remove colon in the subsection title

- At least one numerical example
- A section to discuss and/or illustrate the applications
- A conclusion section
- References
- Lecture notes may not be a credible reference. Please find the original source.

## Simplex algorithm

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- The symbol i in the second expression in dictionary functions, ranges from 1 to m.

- At least one numerical example
- A section to discuss and/or illustrate the applications
- A conclusion section
- References 1. Please be consistent with referencing style.

## Computational complexity

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- Please introduce the Big-oh notation in this section.

- At least one numerical example
- Examples of combinatorial optimization is suggested.

- A section to discuss and/or illustrate the applications
- The applications mentioned need to be discussed further.

- A conclusion section
- References.

## Network flow problem

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions.
- At least one numerical example
- There is NO need to include code. Simply mention how the problem was coded along with details on the LP solver used.
- The subsection title style should be consistent.

- A section to discuss and/or illustrate the application
- A conclusion section
- References

## Interior-point method for LP

- An introduction of the topic
- No citations are present in this section.
- Definition of Lagrangian function is valid for maximization of f(x). Please fix the error.
- Check and fix parenthesis for each equation.
- The inline notations should also be typed using LaTex
- Fix typos “where A ε R”, “Linear programming problems seeks to optimize”, ..
- Avoid using the pronoun “you” (e.g., in “Assume you have an unconstrained minimiazation…”).

- Theory, methodology, and/or algorithmic discussions
- Whitespace between primal and dual problem definitions can be removed by properly adjusting text and image in the Wiki. Please look into it and fix this.
- Equation 2 is not properly formatted.
- Also explain why it is valid to use log functions in the definition of Lagrangian compared to the definition presented in the theory section.
- There is no need to number the equations unless absolutely necessary. Please refer to the example pages for equations.
- Please reduce the whitespace between this section and the numerical example section.

- At least one numerical example
- The numerical example does not use any Newton’s method iterations that are presented in the above section. Please consider using a complicated example that actually uses Newton’s iterations.
- Please type the maximization problem and barrier form in LaTex form.

- A section to discuss and/or illustrate the applications
- Please double check typos and periods at the end of sentences.
- Citations are added after the period. Use the below reference for citations.
- Please consider linking the references by using this as Wiki template, https://optimization.cbe.cornell.edu/index.php?title=Quantum_computing_for_optimization

- A conclusion section
- References
- Some references are missing numbers. Please consider using the reference template used in the above example.

## Optimization with absolute values

- Author list
- There is a missing NetID.

- An introduction of the topic
- Add few sentences on how absolute values convert optimization problem into a nonlinear optimization problem.
- Use “one” instead of “you”
- Fix typos “difficult to to determine”

- Theory, methodology, and/or algorithmic discussions
- Several topics are not discussed in this section. Begin by discussing the techniques used for reformulation when the sign constraints in the objective function are not satisfied.
- The current content was already discussed in the lectures. Please discuss the scope of absolute values in nonlinear optimization. (very important!)

- At least one numerical example
- Please verify whether this example is used in the lecture slides or homework already. If so, please choose another example and solve the same.
- Please align the constraints properly in the optimization problem.

- A section to discuss and/or illustrate the applications
- There are numerous applications of optimization with absolute terms especially with nonlinear optimization. The opposite is claimed, please conduct an exhaustive literature review before making unreferenced claims.
- Inline equations describing expected returns are not formatted properly. Please fix the notation for expected return throughout the section.
- Two applications are mentioned in bold at the end of this section without any content. Please discuss them briefly or consider using better practical applications.
- The inline notations should also be typed using LaTex.
- Please avoid using contractions (e.g., Let’s).
- Fix typos and avoid use of “we” “in most case we should be able to use GAMS/Pyomo/JuliaOPT to solve the problem”

- A conclusion section
- References
- Very few references are used. Several claims are present in the Wiki without any references. Please try to provide a reference for sentences that are not common knowledge.
- Please consider linking the references by using this as Wiki template, https://optimization.cbe.cornell.edu/index.php?title=Quantum_computing_for_optimization

## Matrix game (LP for game theory)

- An introduction of the topic
- References at the end of the sentence should be placed after the period.
- There are minor typos (e.g., an extra space in front of the “In a Matrix Game, two players are involved in a competitive situation...”).

- Theory, methodology, and/or algorithmic discussions
- Please explain each element of the payoff matrix P.
- In the current definition, i and j indicate the action that player one and two take and NOT a set. Please correct the notation.
- Matrix A and its elements Aij are not defined in this section.
- Reformulated LP for the maxmin problem is missing constraints.

- At least one numerical example
- Interesting example, very well explained.

- A section to discuss and/or illustrate the applications
- Referencing style used here is different from the previous sections. Please be consistent with the style throughout the Wiki.

- A conclusion section
- References
- Please consider linking the references by using this as Wiki template, https://optimization.cbe.cornell.edu/index.php?title=Quantum_computing_for_optimization

## Quasi-Newton methods

- An introduction of the topic
- Please fix the extra blank between the last two paragraphs.

- Theory, methodology, and/or algorithmic discussions
- Equation 1.1 should contain proper notation like f(p)
- Please ensure that few spaces are kept between the equations and equation numbers.
- Few typos present in this section should be fixed.
- Consider using a different symbol to denote the inverse of B in the Sherman-Morrison formula since H is already used to denote the Hessian, to avoid confusion.
- Step 6 of the BFGS algorithm does not match equation 1.12. Please verify and fix the equations.

- At least one numerical example
- A section to discuss and/or illustrate the applications
- Discuss some selected applications briefly in sections. Please refer to the example Wiki pages for reference on this section.

- A conclusion section
- References
- Reference 10 is broken.
- Please fix the references to websites. References to the website must include name of the webpage, links, and date of publication.

## Markov decision process

- An introduction of the topic
- Please add 1-2 sentences on sequential decision making that provides context for environment, agent, and rewards before directly jumping into MDP.
- No citations are present in this section.
- There is also continuous-time MDP so the sentence “MDP works in discrete time” needs to be revised.
- MDP is not a control scheme, but is a way of problem formulation for sequential decision making. Please fix accordingly.
- The sentence “Machine learning can be divided into three main categories...” could be removed.

- Theory, methodology, and/or algorithmic discussions
- If abbreviations are defined like MDP, use the abbreviations throughout the Wiki.
- Please add more details to “The Algorithm” section. Specifically, briefly describe policy iteration or value iteration algorithms for MDP.
- In the Bellman equation for the value function, v(s) is not defined.

- At least one numerical example
- The current numerical example is exactly the same as the one in the second reference. Please come up with an original example or at least modify the current one.
- Please show the calculation step of the value function for each state.

- A section to discuss and/or illustrate the applications
- Discuss some selected applications briefly. Please refer to the example Wiki pages for reference on this section.
- Please also cite the applications discussed.

- A conclusion section
- References
- Years of many references are missing.
- Lecture notes may not be a credible reference. Please find the original source.

## Eight step procedures

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- The current steps are presented for the Knapsack problem. Please document the eight steps for any general dynamic programming problem.

- At least one numerical example
- In this section too, the Knapsack problem is solved without mentioning the same. Please specify the Knapsack problem and how a dynamic problem is formulated using the eight steps. The solution for this problem can follow later.
- Please be consistent in the formatting of mathematical notations and equations.

- A section to discuss and/or illustrate the applications
- Please provide additional problem(s) not covered in the lecture.

- A conclusion section
- References
- Lecture notes may not be a credible reference. Please find the original source.

## Facility location problem

- An introduction of the topic
- No references present in this section.

- Theory, methodology, and/or algorithmic discussions
- Consider adding a subsection on available algorithms to solve facility location problems, both exact and approximate algorithms.

- At least one numerical example
- Mention how the formulated problem is coded and solved.
- Comparison of solutions with exact and approximate solution techniques can also be performed.
- Please add space between value and unit.

- A section to discuss and/or illustrate the applications
- Discuss some selected applications briefly. Please refer to the example Wiki pages for reference on this section.

- A conclusion section
- References
- Lecture notes may not be a credible reference. Please find the original source.

## Set covering problem

- An introduction of the topic
- Please refrain from using mathematical definitions/set notations in the introduction section.

- Theory, methodology, and/or algorithmic discussions
- The subset si of set S does not belong to the set U, but is a subset of the set U. Please use correct math symbols for “belongs to” and “subset”.
- Please ensure that all math notations like sets, indexes are in italics.
- Use proper math notations for “greater than equal to”.
- Minimum set covering is a classic integer programming problem. It would be better if along with approximate algorithms, exact algorithms are discussed for this problem based on LP. Add at least one section on exact methods using LP that improve the solving performance using techniques like constraint tightening, rounding, etc.
- If abbreviations are defined like ILP, use the abbreviations throughout the Wiki.

- At least one numerical example
- Label the tables containing set information.
- Consider using a horizontal alignment for all tables to get rid of the substantial whitespace present.
- Label the rows and columns of Table 3.
- Since Table 3 provides information on aij required to formulate the constraints, Table 2 serves no purpose and should be removed from the Wiki. Table 3 can be directly generated from Table 1.
- The numerical example is solved manually without using greedy method nor LP solution method. Please solve this example both by the presented greedy algorithm and the newly added LP-based method and finally compare solutions.
- Please label the constraints in parentheses and at the end of each constraint.

- A section to discuss and/or illustrate the applications
- In the route selection problem subsection, Ri is the collection of routes. A collection cannot be added, please double check the formulation.
- Also consider adding real-world constraints for these applications that are variations of set-covering problem.

- A conclusion section
- References
- Some reference like #9 have different styles than others. Please use a consistent style throughout the Wiki.

## Quadratic assignment problem

- An introduction of the topic
- Uppercase characters are used randomly for problem types. Please follow correct language conventions for sentence structure.
- No references present in this section.

- Theory, methodology, and/or algorithmic discussions
- Abbreviations should be used throughout the Wiki if they are defined previously. Ex. QAP.
- Please fix the notation for Sn, currently it has no meaning whatsoever.
- There is no need to use a in the optimization problem definition.
- Discuss dynamic programming and cutting plane solution techniques along with branch and bound briefly.
- Please check grammar in the Linearizations section.

- At least one numerical example
- Numerical example uses different notations for flow and distances as compared to the problem definition in the previous section. Please be consistent with notations throughout the Wiki.
- Definition of permutation {321} is inconsistent with the permutation matrix X and its explanation. Please fix the same.
- References in this section use different citation styles than the previous section. Please use a consistent format throughout the Wiki.
- The set S3 contains the following permutations : {123}, {132}, {213}, {231}, {312}, {321}. Currently presented permutations and their corresponding costs are incorrect. Please calculate the correct costs and verify the solution by solving with an optimization solver like Gurobi / CPLEX.
- The subsection QAP with 3 facilities requires considerable rewrite by fixing the calculations and verification of solution by solving with an optimization solver.
- The optimal solution might change and consequently the optimal locations for the attached figure.

- A section to discuss and/or illustrate the applications
- Please format the equation for definition of yij in the hospital layout subsection.
- Fix some typos and issues: “in the location of the each”, “determining placement”, “QAP solution optimize”, “Building a new hospitals”, “create a optimization formula” etc ..

- A conclusion section
- Conclusion section is missing. Please add one accordingly.

- References
- Referencing styles vary in different sections. Please use a consistent style.

## Newsvendor problem

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- A math programming formulation of the optimization problem with objective function and constraints is expected for the formulation. Please add any variant of the newsvendor problem along with some operational constraints.
- A mathematical presentation of the solution technique is expected. Please consider any distribution for R and present a solution technique for that specific problem.

- At least one numerical example
- Numerical example section should follow the theory/method section.

- A section to discuss and/or illustrate the applications
- Add few more sentences to briefly discuss each application.

- A conclusion section
- References
- Lecture notes and Youtube videos may not be a credible reference. Please find the original source.

## Mixed-integer cuts

- An introduction of the topic
- No references present in this section.

- Theory, methodology, and/or algorithmic discussions
- The current version of the Wiki discusses only two cuts of the many types of cuts. This discussion is trivial in terms of both length of the article and quality of content. Please discuss a few other types of cuts in detail. Some of them are listed here, http://www-eio.upc.es/lceio/manuals/cplex-11/html/usrcplex/solveMIP14.html
- Please reduce blanks between paragraphs.
- Missing article “1. Begin with LP in standard form for application of simplex method.”
- Add a hyphen to mixed-integer

- At least one numerical example
- Examples of cuts provided in the previous section do not count as a numerical example. Please actually solve a MILP problem using the generated specific cuts and the associated technique of pruning infeasible solutions of the MILP.

- A section to discuss and/or illustrate the applications
- MILP and their solution techniques involving cuts are extremely versatile. Yet, only two sentences are added to describe their applications. Please discuss their applications, preferably real-world applications, in brief. Example Wikis provided on the website could be used as a reference to do so.

- A conclusion section
- References
- Add more references while making the above mentioned changes by citing appropriate sources.
- Lecture notes may not be a credible reference. Please find the original source.

## Column generation algorithms

- An introduction of the topic
- Use Times New Roman font for all headings and text throughout the Wiki.
- No references present in this section.
- Please avoid using “your”

- Theory, methodology, and/or algorithmic discussions
- Please cite statements that are not common knowledge. Currently, zero references are present.
- Significant whitespace present in the methodology subsection. Please consider reformatting to minimize this whitespace.
- Several equations and notations are NOT correctly formatted. Please ensure that they are corrected accordingly.
- Similar formatting mistakes are observed in the column generation steps.
- Column generation algorithms are applicable for general optimization problems and not only cutting stock problems. It is highly recommended that the methodology section and steps involved are rewritten
- Some minor typos/article agreement issues exist “is not partical in real-world”, “provide infeasible integer”..

- At least one numerical example
- The numerical example contains equations that appear as latex code. Please reformat them correctly.
- Please be consistent in the formatting of mathematical notations and equations.

- A section to discuss and/or illustrate the applications
- Discuss each application briefly. Example Wikis provided on the website could be used as a reference to do so.

- A conclusion section
- References
- Lecture notes may not be a credible reference. Please find the original source.

## Heuristic algorithms

- An introduction of the topic
- Space between the period at the end of the sentence and the reference should be deleted throughout the Wiki.

- Theory, methodology, and/or algorithmic discussions
- Algorithm for the scheduling problem needs reformatting. The current version contains latex code, please consider using pseudo code instead of the current version.
- Greedy method to solve minimum spanning tree seems to be missing.
- Please provide references regarding Local Search methods.
- Missing period in “The term Genetic Algorithm…”.

- At least one numerical example
- For the examples presented for some heuristic algorithms, please add a numerical example rather than discussing a general example and demonstrate the algorithm by actually solving the same.

- A section to discuss and/or illustrate the applications
- A separate section for applications could be added instead of demonstrating algorithm in the methodology section.

- A conclusion section
- Conclusions are missing from the Wiki. Please refer to the Wiki examples provided to use as a reference for this section.
- Minor typos and missing articles exist “decrease temperature according to certain cooling scheme”, “as final (‘optimal’) solution”, “such condition”
- Please consider using the American forms of “travelling, neighbourhood”

- References
- Some resources are not quite reliable, please consider using original ones: Brilliant Math & Science Wiki, Freecodecamp.Org, HackerEarth..

## Branch and cut

- An introduction of the topic
- Please use proper technical terminology, for example, linear programs that are integer based are called mixed-integer linear programs.
- Please describe the terms used or their relevance at the very least, like lower bounds and nodes.
- Fix word choice to number: “minimize the amount of nodes”
- No references present in this section.

- Theory, methodology, and/or algorithmic discussions
- Equation in most infeasible branching section is not properly formatted, please fix the same.
- Ensure that abbreviations like B&B and LP are not used without defining them first.
- All the steps in the algorithm section are defined as subsection headings which can be identified by the presence of edit option at all steps. The clutter can be removed by simply highlighting the steps in bold rather than defining them as sub-headings.
- Step 2 appears abruptly in the algorithm and does not explain much. Please add more information regarding the same.
- The algorithm would be much more comprehensible if all steps are discussed in terms of a general MILP optimization problem with generic objective function and constraints that uses symbols rather than numerical values for coefficients.
- Step 5 contains latex code terms that are not properly formatted. Please fix the same.
- Step 6 mentions external reference that seems to be missing.
- Fix typos: repeated “for the current”, “For each variable we choose variable “, “Branch and Cut for is a variation”, “Bender’s Decomposition is a great use in Stochastic Programming”, “Salesmen Problem can viewed as partially” ..

- At least one numerical example
- Numerical example is poorly formatted. Please format the equations appropriately either by using latex code or the visual editor. The provided Wiki examples could be used as a reference for formatting equations and symbols.
- First, provide the problem that is to be solved. Then move on to the next step by converting it to LP and performing branch and cut.
- The final step that includes the Gomory cut in the LP does not look accurate. Please consider the correct cut and resolve the LP.
- The same non-integer solution is obtained for the final step and a previous step. Please resolve the problem using the correct branch and cut procedure and verify the solution by solving the original MILP problem with an integer solver like CPEX or Gurobi.

- A section to discuss and/or illustrate the applications
- Please add a few references to the applications presented.

- A conclusion section
- References
- The references listed here are not used in any of the text in the Wiki. Please link them appropriately.
- Wiki pages may not be a credible reference. Please find the original source.

## Mixed-integer linear fractional programming (MILFP)

- An introduction of the topic
- The abbreviation MINFP is not previously defined. Please fix the same.

- Theory, methodology, and/or algorithmic discussions
- The symbol Q used for objective is often used to denote the set of real numbers. Please simple use a standard Q notation rather than a special form of Q. Same goes for objective function R.

- At least one numerical example
- Please provide comparison between solutions obtained with presented solution technique and MINLP solver for the numerical example for verification of global minimum.
- Please check the index notation in Mass Balance Constraints.
- Please check the typo “obje” in Maximizing Unit NPV.
- Please check other typos as “continous”, “each fractional objective functions, which are shown as below”,”typical algorithm that aim”

- A section to discuss and/or illustrate the applications
- A conclusion section
- References
- Please consider linking the citations to references in the reference list by using this as Wiki template, rather than using website links. https://optimization.cbe.cornell.edu/index.php?title=Quantum_computing_for_optimization

## Convex generalized disjunctive programming (GDP)

- An introduction of the topic
- Please refrain from using abbreviations without defining them first.
- References missing for solvers.

- Theory, methodology, and/or algorithmic discussions
- Please format yP in the text correctly.
- Verify all sentences in the NLP subproblem for a fixed yP subsection, some words seem to be missing.
- Mention few more sentences on the hull reformulation and present the reformulated MINLP problem if possible.
- Fix typos: “So with said”, “dijunctive”, “solve this both”, ..

- At least one numerical example
- Source of the figures can be cited by mentioning the name of the paper or using the same referencing style like the previous sections rather than link to the actual paper.

- A section to discuss and/or illustrate the applications
- Please relabel the figure by order of appearance.

- A conclusion section
- References
- Reference # 6 has all uppercase letters. Please use a consistent style for all references.

## Fuzzy programming

- An introduction of the topic”
- Please fix the typo: “also know as”

- Theory, methodology, and/or algorithmic discussions
- Very well written.
- Discussion on converting piecewise linear membership functions into MILP constraints could be added for further understanding.
- Some minor typos exist: “ a cold set and an hot set”, “"more hot"”,

- At least one numerical example
- Significant whitespace present between problem formulations and text. Try to reduce this whitespace.
- Please fix minor typos: “real word”, “Each firm has their own”

- A section to discuss and/or illustrate the applications
- Applications of fuzzy programming are quite versatile. Please discuss few of the mentioned applications briefly. The provided example Wikis can be used as a reference to write this section.

- A conclusion section
- Add few more sentences to the conclusion section to better summarize the presented theory, methods and examples.

- References
- Links to the cited content is not the right way to cite. Please refer to the example Wikis to use a better (accurate) referencing style.

## Adaptive robust optimization

- An introduction of the topic
- References at the end of the sentence should be placed after the period.

- Theory, methodology, and/or algorithmic discussions
- Try to better explain the first stage and second stage decisions in terms of here and now and wait and see decisions.
- It is claimed that x2(u) is independent of u. Please verify and fix if necessary.
- The text contains “[ref various papers]”. Please add the appropriate references here.
- The abbreviation KKT is not previously defined.

- At least one numerical example
- A section to discuss and/or illustrate the applications
- A conclusion section
- References
- Overall, very well written.

## Stochastic gradient descent

- An introduction of the topic
- Fix this sentence. “Gradient descent picks any random weight …”. The user initializes the weights and not SGD.

- Theory, methodology, and/or algorithmic discussions
- Use j to denote jth data point in step 4 of the SGD algorithm and in Mini-batch gradient descent subsection.
- Citations required for the claims in the “learning rate” subsection.
- Please fix the repeated typo “a local minima is reached”

- At least one numerical example
- Bias in linear regression is a completely separate topic and is relevant for estimators. Please use correct terminology for the unknown parameters of linear regression.
- Fix language used in the dataset subsection of the numerical example.
- Amount of whitespace can be reduced by changing orientation of example dataset by converting it into a table containing 3 rows and 6 columns.
- Backpropagation is a technique used to update weights of a neural network. For the linear regression example, simply gradients w.r.t unknown parameters are computed. Please update the subsection title accordingly.
- Ensure that the readers clearly understand that first the algorithm iterates through each data point and then repeats itself all over again with the updated parameters. This can be done by demonstrating iteration 2 using the next datapoint.
- Add reference for the overfitting comment.

- A section to discuss and/or illustrate the applications
- Mention how SGD is relevant for logistic regression.
- The application section starts with discussing relevance of SGD for deep learning, but no discussion on deep learning/ neural networks is present. Subsection on deep learning and the variants of SGD used for deep learning can be mentioned.
- The abbreviation is SGD, please fix it throughout.

- A conclusion section
- No mention of global minima is present in the entire Wiki. Either add citation for the global minimum statement or remove this claim.
- Fix abbreviations for SGD here as well.

- References
- Fix duplicate reference numbers.
- Some references are not linked to the text in Wiki, please update accordingly.
- Reference # 2 has all uppercase letters. Please use a consistent style for all references.

## RMSProp

- An introduction of the topic
- Few sentences in this section are incoherent. Please use grammatically correct sentences.

- Theory, methodology, and/or algorithmic discussions
- The equation presented in the Artificial neural network subsection is valid for the perceptron and not neural net. Please fix either the title or the equation.
- In the Rprop subsection, the momentum parameter is discussed but not used in any of the corresponding equations.
- Fix typos like PMSprop, Aritifical, in the RMSprop subsection.
- The default value of parameters in the RMSprop subsection is mentioned but their relevance or their calculation is not explained.
- Please check grammar in this section.
- Please avoid using contractions (e.g. doesn’t).
- The use of “Obviously” is advised against

- At least one numerical example
- Please demonstrate the working of RMSprop by actually solving any unconstrained optimization problem. Providing links to other resources for numerical examples renders the purpose of Wiki useless.

- A section to discuss and/or illustrate the applications
- The applications section does not contain any discussion on applications. Please mention a few applications of the widely used RMSprop and discuss them briefly.
- Misspelling for applications.
- Please check grammar in this section.

- A conclusion section
- Formulation of ANN is incorrect terminology. ANNs are trained by RMSprop.
- It is claimed that RMSprop achieves global optimization without any reference. Please provide a reference for the same or update the said claim.

- References
- For reference #1 please find the original source of the images and cite that source, rather than citing an image hosting service.
- Please refer to the example Wikis provided to use proper citation style.

## Adam

- An introduction of the topic
- Theory, methodology, and/or algorithmic discussions
- Key challenges mentioned in the mini-batch SGD are more relevant to the batch SGD. Consider moving these to the corresponding section.

- At least one numerical example
- A section to discuss and/or illustrate the applications
- A conclusion section
- Some minor formatting issues between symbols and text should be fixed.

- References
- Overall, very well written.