====== Žebříček ATP ======
* Data: {{:courses:a0m33eoa:semestralni_ulohy:atp:atp_data.zip|Aktualizovaná data}}
* Orientační výsledky Kubalíkova algoritmu pro 30 běhů na každých datech: {{:courses:a0m33eoa:semestralni_ulohy:atp:vysledky.zip|}}
Kdybychom měli k úloze přistupovat jako k černé skříňce, neměli byste informace o vzájemných zápasech využívat nikde jinde než v ohodnocovací funkci. V této úloze ale **je povoleno využívat či analyzovat vzájemné zápasy** i jinde, např. v rekombinačních operátorech.
===== Popis problému =====
Máme bilanci výsledků vzájemných zápasů tenistů na okruhu ATP. Data jsou uložena v matici B, kde hodnota na pozici [i, j] vyjadřuje vzájemnou bilanci mezi hráči i a j, a to:
- absolutně:
* b_{ij} = n: hráč i v sezoně n-krát zvítězil nad hráčem j
- relativně:
* b_{ij} = 1: hráč i má pozitivní bilanci s hráčem j
* b_{ij} = 0: hráč i má negativní bilanci s hráčem j
Cílem je sestavit žebříček (pořadí hráčů) tak, aby co nejlépe odpovídal vzájemným bilancím hráčů.
===== Možné reprezentace =====
* Lineární sekvence (permutace) hráčů
* ...
===== Jednotná ohodnocovací funkce =====
Kvalita daného žebříčku hráčů (permutace hráčů, \pi) se počítá pomocí následující funkce:
f(\pi) = \sum_{i=1}^{N-1} \sum_{j=i+1}^N B_{\pi(i)\pi(j)}
Tato funkce má být maximalizována.