Author: Mihai Nan
Într-un centru de cercetare pentru sisteme autonome sunt testate mai multe tipuri de roboți. Pentru aceste experimente au fost folosite mai multe tipuri de arene, iar fiecare robot urmează o anumită strategie de explorare. În timpul fiecărui experiment, robotul este echipat cu un set de senzori și sisteme de monitorizare care colectează informații despre activitatea sa. Datele înregistrate descriu diferite aspecte ale comportamentului robotului și ale mediului în care operează.
Acestea pot include valori numerice (de exemplu, viteza medie, distanța parcursă, numărul de coliziuni sau obiecte colectate), dar și informații categoriale sau descriptive (precum tipul arenei sau condițiile de mediu). Prin analiza acestor date se pot observa tipare în modul în care roboții se deplasează, explorează spațiul, colectează obiecte sau reacționează la obstacole.
Analiza acestor date este importantă pentru:
Pentru rezolvarea acestei probleme veți avea la dispoziție două fișiere:
train.csv – conține exemple etichetate, folosite pentru analiză și antrenarea modelelor;test.csv – conține aceleași variabile, fără coloana strategy_label, și este folosit pentru generarea predicțiilor.În experimente sunt utilizate patru tipuri de strategii:

Fiecare linie din fișierele train.csv și test.csv corespunde unui experiment.
Setul de date conține coloane care descriu diferite aspecte ale comportamentului robotului. Exemple de astfel de caracteristici sunt:
| Column | Type | Descriere |
|---|---|---|
| robot_id | string | Identificator unic al experimentului |
| arena_type | string | Tipul arenei în care a avut loc experimentul |
| weather | string | Condițiile de mediu din experiment |
| difficulty | int | Nivelul de dificultate al arenei |
| laps | int | Numărul de ture realizate |
| avg_speed_mps | float | Viteza medie a robotului (m/s) |
| distance_m | float | Distanța totală parcursă |
| battery_used_pct | float | Procentul de baterie consumat |
| collisions | int | Numărul de coliziuni cu obstacole |
| unique_cells | float | Numărul de zone distincte explorate |
| items_collected | int | Numărul de obiecte colectate |
| pause_count | int | Numărul de pauze sau opriri |
| turn_rate | float | Frecvența schimbărilor de direcție |
| scan_accuracy | float | Acuratețea scanărilor efectuate |
| return_time_s | float | Timpul necesar revenirii la punctul de start |
| efficiency_score | float | Scor agregat al eficienței robotului |
| coverage_ratio | float | Proporția din arenă explorată |
| scan_turn_sync | float | Sincronizarea dintre scanări și schimbări de direcție |
| pickup_efficiency | float | Eficiența colectării obiectelor |
| detour_index | float | Indice al deviațiilor de traseu |
| safety_margin | float | Marja de siguranță față de obstacole |
| patrol_consistency | float | Consistența patrulării unei zone |
| speed_burst | float | Intensitatea accelerărilor rapide |
| risk_index | float | Indice de risc al deplasării |
| strategy_label | string | Strategia robotului (doar în train.csv) |
Folosind datele din fișierul train.csv, determinați câte valori distincte apar în coloana arena_type.
Folosind datele din fișierul train.csv, determinați maximul valorilor din coloana avg_speed_mps.
Pe baza datelor din fișierul train.csv, determinați care este tipul de arenă care apare cel mai frecvent în coloana arena_type.
Pe baza datelor din fișierul train.csv, determinați valoarea maximă a coloanei items_collected.
Construiți un model care determină strategia robotului pentru fiecare experiment din test.csv.
Valorile posibile sunt:
explorer
collector
guardian
sprinter
Fișierul de submisie trebuie să fie în format csv și să conțină următoarele coloane:
| Column | Descriere |
|---|---|
| robot_id | Identificatorul robotului din test.csv |
| subtaskID | ID-ul task-ului pentru care se trimite răspunsul |
| answer | Valoarea calculată sau prezisă pentru task-ul respectiv |
Valorile posibile pentru subtaskID sunt:
| subtaskID | Task |
|---|---|
| 1 | Numărul tipurilor de arene |
| 2 | Viteza maximă observată |
| 3 | Arena cea mai frecvent utilizată |
| 4 | Performanța maximă de colectare |
| 5 | Strategia robotului |
Pentru Task 1 – Task 4, rezultatul este o valoare calculată global pe baza datelor din train.csv.
În fișierul de submisie, aceasta trebuie transmisă o singură dată, folosind valoarea specială GLOBAL pentru robot_id.
Pentru Task 5, trebuie raportată strategia prezisă pentru fiecare robot din test.csv.
Valorile posibile sunt:
explorer
collector
guardian
sprinter
submission.csvrobot_id,subtaskID,answer
GLOBAL,1,10
GLOBAL,2,4.31
GLOBAL,3,forest
GLOBAL,4,7
TR_1000,5,explorer
TR_1001,5,guardian
TR_1002,5,collector
Punctajul total este de 100 puncte.
Pentru primele patru task-uri, răspunsurile sunt determinate exclusiv pe baza datelor din train.csv.
Evaluarea se face prin comparare exactă (egalitate) între valoarea transmisă în fișierul de submisie și valoarea corectă calculată din train.csv.
Pentru acest task se evaluează corectitudinea strategiilor prezise pentru roboții din test.csv.
Se utilizează metrica Macro-F1, care calculează scorul F1 pentru fiecare clasă și apoi face media acestor valori.
Pentru o clasă c:

Scorul final Macro-F1 este media scorurilor F1 pentru toate clasele:

unde K este numărul de clase. În această problemă, K = 4.
Punctajul acordat pentru Task 5 este:
score = 50 x MacroF1 (dacă MacroF1 < 0.93)
score = 50 (dacă MacroF1 >= 0.93)