Skip to content
View Tewf's full-sized avatar

Highlights

  • Pro

Block or report Tewf

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Tewf/README.md

Hi, I'm Mohamed 👋

🇫🇷 Version française

I'm an M1 student in Artificial Intelligence at Université Grenoble Alpes (UFR IM²AG and Ensimag), holder of the EFELIA-MIAI excellence scholarship and of the French student-entrepreneur status (SNEE).

Everything below, at more length and with the figures: tewf.github.io

Research

bilinear-tensor-optimization · browse it ↗ · LJK, Université Grenoble Alpes · supervised by Jean-Guillaume Dumas · May to July 2024

The rank of a bilinear map is the number of multiplications it needs; Strassen's seven-instead-of-eight is the known case. A heuristic search over alternative bases takes 5×5 polynomial multiplication over GF(2) from 25 multiplications to 14, and four benchmark maps down by 37% to 44%. It does not prove those decompositions optimal.

tensor-rank-toolkit · browse it ↗ · the same question, continued independently in C++20 on Givaro · v0.4.1

Where the internship searched heuristically, this decides. It runs from a cheap descent up to a SAT encoding whose refutations are checkable as DRAT. On the same 5×5 map over GF(2) that the internship took to 14 products, an exhaustive search settles the rank at exactly 13, refuting 12 over 146 million nodes. Nothing here is ever a float, so a reported rank is a fact about the map and not an artefact of rounding.

Multiplications are half the cost; the additions are set by how many nonzero entries the operators carry. On the operators of a published rank-23 ⟨3,3,3⟩ scheme it takes 221 nonzeros to 128, and 128 is the least any change of basis can leave rather than the best found. main holds what won; rejected-experiments holds what lost, with evidence.

IA-Economie-Strategique · browse it ↗ · the article ↗ · GAEL, UGA and INRAE · supervised by Alexis Garapin and Olivier Bonroy · January to April 2025

Do pricing algorithms sustain tacit collusion or break it? The internship proposed two mechanisms without running either, and I have since run both. The imitation agent finishes eighth of eight, behind a coin flip. Five local language models then played 220 matches: handed a mutually defecting opening, three of the four readable ones never leave it, and a non-binding message frees exactly one. Escaping an imposed regime is a property of the model rather than of the channel.

Projects and studies

after-hours · browse it ↗

A CNN learning Flappy Bird from raw pixels, where the largest gain came from the observation rather than a hyperparameter: taking the blue channel instead of a luminance greyscale moved the agent from 0.4 pipes to 12.65 at the same 250k steps. Alongside it, a 3-SAT solver over GF(2) and the French income tax modelled with the Lambert W function.

University-Coursework · browse it ↗

The Licence MIASHS and the M1 AI at UGA, end to end: hedonic pricing where the log-linear specification is what makes the model work, five classifiers evaluated over 24 000 fragrances and the four retained compared on ROC, and a Battleship bot winning 74.3% of 300 round-robin games.


Languages C++ · Python · Java · R · Julia · SQL · Prolog
Libraries PyTorch · scikit-learn · tidyverse · Quarto
Spoken Arabic · French · English

LinkedIn Email

Pinned Loading

  1. tensor-rank-toolkit tensor-rank-toolkit Public

    Exact tensor and bilinear rank over finite fields: lower bounds, exhaustive search, SAT with DRAT-checkable refutations, symmetry reduction, and operator sparsification proved minimal against PLinO…

    C++

  2. bilinear-tensor-optimization bilinear-tensor-optimization Public

    Alternative bases for matrix multiplication via sparse tensor decomposition: research internship at LJK, Université Grenoble Alpes

    Python

  3. IA-Economie-Strategique IA-Economie-Strategique Public

    Does AI sustain tacit collusion? A Hebbian imitation agent and five local language models play the iterated Prisoner's Dilemma on shared opponents, plus one-shot Dictator and Ultimatum games and a …

    Python

  4. University-Coursework University-Coursework Public

    Licence MIASHS and M1 AI at Université Grenoble Alpes, end to end. Hedonic pricing on open DVF data, five classifiers evaluated over 24,000 fragrances with four compared on ROC, a Battleship bot wi…

    Jupyter Notebook

  5. after-hours after-hours Public

    What I build when I am bored: a CNN that learns Flappy Bird from raw pixels to 12 pipes an episode, a 3-SAT solver over GF(2), matrix algorithms from first principles

    Python

  6. frankwolfe-active-set-lookup frankwolfe-active-set-lookup Public

    The LMO's vertex is absent from the active set whenever <g,v> < <g,s>: one comparison replaces find_atom's scan in FrankWolfe.jl (issue 244), measured on real runs

    Julia