ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° β 1: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
Π¨Π°Π³ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΠ±Ρ ΠΎΠ΄Π° Π³ΡΠ°ΡΠ° (BFS ΠΈΠ»ΠΈ BFS).
- Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΈ Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΠΏΠ°ΠΌΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (ΠΌΠΎΠΆΠ½ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Π΅))
- ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (java, c++), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ ΡΡΡΡΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (ThreadSanitizer && Helgrind Π΄Π»Ρ Π‘++, JCStress ΡΠ΅ΡΡΡ Π΄Π»Ρ Java) ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ, ΡΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΡ ΠΈ Π½Π°ΠΉΡΠΈ.
- ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
ΠΡΠΎΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ, ΠΈΠ·ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΈ ΠΎΠΏΠΈΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ.
- ΠΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
- ΠΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΌΠ° Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ