.. _`sec:projects`: Projects ======== Create a 40 mn teaching session, present your topic as if you are supposed to show some colleagues the importance and applications of a given technique / technology. If applicable, organize your presentation in two parts: first, why is it useful? how does it work theoretically?; second, hands-on application. The group activity may take various form: building or extending an algorithm, unfold an algorithm by hand, coding, analyzing results... ~ 20 mn presentation + ~ 20 mn group activity The half group sessions are dedicated to the preparation of your presentation. Two students per projects. The documents are written in english, but the presentation is in french. Grading criteria: 1. Documents (readability, correctness, ...) 2. Presentation (right speed, liveliness, answering questions...) 3. Group activity Every group will be asked to grade all the other groups. Obviously, the following projects can be solved directly by any LLM. However, the goal of such projects is for you to have the time to scratch you head and understand something by yourself. It is also quite a challenge to teach something to the other students without fully and deeply understanding it... .. admonition:: 1. negative_weight_in_state_search In the state search section of the AI course, the uniform cost search algorithm was used. However, this algorithm only works with positive weights. This means that one can not use it for a mix of cost and rewards. A more general algorithm is described in :cite:`Hetland2014`, explain it to the group. Use a modified version of the course examples (magic tram, island, ...) for the group activity. .. admonition:: 2. immediate_past_or_irreversibility_in_MDP In the Markov Decision Process section of the AI course, it is said that the next state is only function of the current state and the action. However, you may be able to consider the case where the next state depends on the current state and the previous state. Or, an action may trigger an irreversible event, meaning that the 'environment' is definitively modified after an action. Use a modified version of the course examples (magic tram, island, ...) for the group activity. .. admonition:: 3. closest_points_in_divide_and_conquer The divide and conquer section of the algorithmic course may be illustrated by searching the two closest points. Try to make the audience find collaboratively an efficient solution for more and more complex cases. If possible, try to demonstrate the performance of your solution. .. admonition:: 4. knwowing_where_you_going_in_state_search In the state search section of the algorithmic and AI courses, the uniform cost search is a very useful tool, however it sometimes can be improved using a heuristic. An algorithm for that is detailed in :cite:`Hetland2014`, explain it to the group. Use a modified version of the course examples (magic tram, island, ...) for the group activity. .. admonition:: 5. elastic_search In the section about dynamic programming, the edit distance between two strings can be defined similarly to the longest common sequence. The edit distance is the number of operations (delete letter, add letter) in order to transform a string A into a string B. It can be used to perform an "elastic" search in a document: find and rank by proximity every occurrence of a word. When typing, a typical error is the permutation of two letters ("wrod" instead of "word"). The goal is to collaboratively extend the algorithm to count independantly insertions, deletions and permutations but consider the sum of the three for the edit distance. .. edit distance -> elastic search knapsack