Project

Part of the grade (30%) in this course is based on a group-project to be handed in during the course. The project will be published some time in February with a deadline at the end of the semester. It will consist of both theoretical and numerical problems, and a large part will be concerned with the implementation of different optimisation algorithms, which should be implemented in python.

There will be an opportunity (non-mandatory) of submitting a preliminary version of your project before the Easter break, so that you can get some feedback before the final submission.

Question sessions

There will be question sessions at the following times:

Also feel free to ask questions in the forum or to take contact with Tobias.

You may also come to my office hours on Tuesdays, 14:00-15:00, (room 1052, 10th floor, SB2).

Project description

  • Project description (corrected version from February 16).
    • Please inform me as soon as possible, if you find more errors or the description is not sufficiently clear.
    • Corrections from the original version:
      • February 16: The function \(f\) is now assumed to be continuously differentiable.
  • Additionally, you may have a look at the following note:
    • A short note on mathematical writing.

What to hand in and how

Your work should contain:

  1. A written report submitted electronically as a PDF file.
    • In the report, you should address all the theoretical problems (discuss existence, possibly uniqueness; smoothness properties; optimality conditions;…) and also describe your numerical approaches (what optimisation algorithms you are using and why; parameter settings; initialisations;…) as well as some numerical results.
    • You may write either in English or in Norwegian.
    • The report should not be longer than ten pages including all figures, tables, and possible references. I appreciate it, though, if your report is shorter than that. (Note that you can use the jupyter notebook to show additional numerical experiments.)
    • Preferably use LaTeX, but you may use any other typesetting program you like if this causes issues.
    • Make sure that you include enough details in your report that it is possible to understand how you have produced your numerical results. This also includes parameter choices for your algorithms (of course, you have to state which algorithms you are actually using) and the choice of initialisations.
    • Your report should be written as an actual scientific/mathematical report, not simply as a list of answers to the different questions posed in the project description. Roughly 25% of the grade for the project will be based on the presentation.
  2. A zip file containing all your relevant code.
    • The code should be written in python.
    • Use a jupyter notebook for presenting numerical results, but move the bulk of your functions to separate .py files and import them to the notebook.
    • Add enough documentation in the code so that others (us) have a chance of understanding what you are doing.
    • Remember to include all the necessary files in your submission.
    • Make sure that the code actually runs, and is correct. Make sure that your implementation coincides with what you describe in your report.
    • It is not necessary to spend a lot of time with optimising the code. All the algorithms should terminate within reasonable time, though.
    • Include more documentation!
  • Submit your final report in ovsys. The deadline is Sunday, April 14, 23:59. (Submission will only open after Easter.)

Preliminary version

  • If you want, you can submit a preliminary version of your written report in order to receive some feedback and possibly suggestions for improvement.
    • The deadline for this preliminary version will be Sunday, March 17, 23:59.
    • You can submit your preliminary report in ovsys as well.
    • The preliminary submission is not mandatory and will not count towards the grade in any way.
    • We do not expect you to be finished with all the tasks by this time.
    • It helps if you let us know if you want feedback to specific parts of the preliminary report.

Generative AI and the project

I would prefer you not to use generative AI for the writing of the project report. If you insist on using it, the following rules apply:

  • If you have used generative AI (like ChatGPT, Github copilot,…) at some point during the project, state this clearly in a separate section of your project report.
  • State which tools you have used and for which purpose, and be as specific as possible.
    • This also applies, if you have used generative AI for coding or for generating figures.
    • If you have used generative AI to write whole sentences/paragraphs, mark these parts clearly in your report.
  • If you have used generative AI for coding, state this as a comment in your jupyter notebook / python files.
    • Mark in your code, which parts have been generated by the AI.
  • Use AI at your own risk! It is your responsibility to ensure the correctness of everything you hand in.
2024-04-09, Markus Grasmair