ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π² Excel
ΠΠ°Π»ΠΎΠ³ΠΈ Π»ΡΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ. Π Π΄Π»Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠΈΡΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ°ΡΠΈΠΊΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ³Π½ΠΎΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΉ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΡΠΎΡΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ.
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π² Excel?
Π‘Π°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π² Excel β ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ:
- ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ΅Π΅ΠΊ A1:C4 Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅:
- ΠΡΠ΄Π΅Π»ΠΈΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ A1:C4 ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΡΡΠ°Π²ΠΊΠ°Β»-Β«ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Β»-Β«ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΎΠΉΒ».
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊΡ ΡΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Β«Π Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈΒ». Π’Π°ΠΌ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡΠΈ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²: Β«ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΒ», Β«ΠΠ°ΠΊΠ΅ΡΒ», Β«Π€ΠΎΡΠΌΠ°ΡΒ».
- Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΎΡΠΈ Π² Π³ΡΠ°ΡΠΈΠΊΠ΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ Β«ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΒ», Π° Π½Π° Π½Π΅ΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Β«Π‘ΡΡΠΎΠΊΠ°/ΡΡΠΎΠ»Π±Π΅ΡΒ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΠΊΠ΅: ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΡΠΎΠ»Π±ΡΡ.
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ ΡΡΠΎΠ±Ρ ΡΠ½ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π΅Π·Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ο»ΏΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ Π² Excel?
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠΈΠΌ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ Excel, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ:
- ΠΡΠ΄Π΅Π»ΠΈΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ A1:B4.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΡΠ°Π²ΠΊΠ°Β»-Β«ΠΡΡΠ³ΠΎΠ²Π°ΡΒ». ΠΠ· Π³ΡΡΠΏΠΏΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π Π°Π·ΡΠ΅Π·Π½Π°Ρ ΠΊΡΡΠ³ΠΎΠ²Π°ΡΒ».
- ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²Π°ΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΅Π»ΡΠΎΠΊ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΊΠΈ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅:
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅, ΡΡΠΎΠ±Ρ Π΄Π΅Π·Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ.
ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² Excel
ΠΠ°ΠΊ Π½Π΅ ΠΎΡΠΎΡΠΌΠ»ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, Π΅Π΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Ρ, ΡΠ΅ΠΌ ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ ΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°Ρ . ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΎΠΊ:
ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΡΡΠ°Π·Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΡ ΠΎΠ΄Ρ ΡΠΈΡΠΌΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠ΅, Π° Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠ΅. ΠΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Β«Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°Β», Π½ΠΎ ΡΠΎΠ³Π΄Π° ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ΅Π·ΠΎΠ½Π½ΠΎΡΡΠΈ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠΌΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΡΠΎΠΉ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ΄Π΅ΡΡ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠΎΠ·ΠΎΠ»ΠΈΡΡ Π³Π»Π°Π·Π°, ΡΡΠΎΠ±Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΌΠ΅ΡΡΡΡ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π΄ΠΎΡ ΠΎΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΡΠΌΡ. Π ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ΅Π·ΠΎΠ½Π½ΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΄Π°ΠΆ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΎΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ Π³ΠΎΠ΄Π°. ΠΠ°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΌ ΡΠ²ΠΎΠΈ Π±Π΅ΡΡΠΏΠΎΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
- ΡΠ»ΡΡΡΠ°ΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ;
- ΡΠΏΡΠΎΡΠ°ΡΡ ΠΎΠ±ΡΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌ Π΄Π°Π½Π½ΡΡ ;
- ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ΅ΡΠΎΠ².
1Π‘:ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ > ΠΡΠ°ΡΠΈΠΊΠΈΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π²ΡΠ±ΡΠ°ΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π±ΡΠ» ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ Π³ΡΠ°ΡΠΈΠΊΡ, ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π³ΡΠ°ΡΠΈΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° (ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y: 1. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. | ||
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y: 2. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π²ΠΈΠ½ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ) Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ x: 1. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. | ||
Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ x: 2. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π‘Π΄Π²ΠΈΠ³ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π²ΠΈΠ½ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ) Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y: 1. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. | ||
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y: 2. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΡΠ½ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ) Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ x: 1. | ||
Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ x: 2. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΡΠ½ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ) Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = -f(x)
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = -f(x) | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ -f(x): ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = -f(x)
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈ Π°Π±ΡΡΠΈΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = f(-x)
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = f(-x) | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ f(-x): ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = f(-x) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = |f(x)|
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = |f(x)| | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ |f(x)|: ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = |f(x)| ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = f(|x|)
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = f(|x|) | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ f(|x|): ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = f(|x|) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = sqrt(f(x))
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = sqrt(f(x)) | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ sqrt(f(x)): ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = 1/f(x)
ΠΠΊΠΎΠ½ΠΊΠ° | ΠΡΠ·ΠΎΠ² ΠΈΠ· ΠΌΠ΅Π½Ρ | |
ΠΡΠ°ΡΠΈΠΊΠΈ > ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² > ΠΡΠ°ΡΠΈΠΊ g(x) = 1/f(x) | ||
ΠΡΡΡΠΎΡΡ | Π¨Π°Π³ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ | |
ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ 1/f(x): ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. |
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ g(x) = 1/f(x) ΡΡΡΠΎΠΈΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² Microsoft Word 2003, 2007, 2010, 2013, 2016
ΠΠ΅ΡΡΠΌΠ° Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ . Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΈ ΠΈΠ·ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΎΠΆΠΈΠ²Π»ΡΡΡ Β«ΡΡΡ ΡΡΒ» ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π΅Π»Π°Ρ Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, ΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Word Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠΉ.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² Word 2003, 2007, 2010, 2013
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΡΠ°ΡΡΠΈ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΠ»ΠΈΠ΄Π½ΡΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΡΡΠΈΡ Π±ΠΈΠ»Π΄ΠΎΠ², Π² Π½ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² WordβΠ΅, ΠΈ, Π΄Π°Π±Ρ Π½Π΅ Π±ΡΡΡ Π³ΠΎΠ»ΠΎΡΠ»ΠΎΠ²Π½ΡΠΌ, ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ?
- ΠΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΌΡΡΠΊΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Π²Π΅ΡΡ Π½Π΅ΠΌΡ ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°: ΡΠ°Π·Π΄Π΅Π» Β«ΠΡΡΠ°Π²ΠΊΠ°Β», ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Β«Π ΠΈΡΡΠ½ΠΎΠΊΒ», ΠΏΡΠ½ΠΊΡ Β«ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Β» (Π² Word 2003).
ΠΠΎΡΡΡΠΎΠΈΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π² WordβΠ΅ 2007-Π³ΠΎ, 2010-Π³ΠΎ ΠΈ 2013-Π³ΠΎ Π³ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΡΠΎΠΉ Π»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠ½ΠΊΡ Β«ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Β» ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«ΠΡΡΠ°Π²ΠΊΠ°Β» Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΌΠ΅Π½Ρ Π²ΡΠ½Π΅ΡΠ΅Π½ ΠΏΡΡΠΌΠΎ Π½Π° ΡΠΎΠΏ-ΠΏΠ°Π½Π΅Π»Ρ, ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π»Π°Π·ΠΈΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠΊΠ°ΠΌ Ρ ΡΠ΅Π»ΡΡ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΡ Π²Π°ΠΌ ΠΎΠΏΡΠΈΡ.
- ΠΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ ΡΡΡ ΠΆΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Π°Ρ Excel-ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· WordβΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠΊΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π»ΠΈΡΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π²ΠΏΡΠ°Π²Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π²ΠΈΠ΄ Π³ΡΠ°ΡΠΈΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π²ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΠΎΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ»ΠΎΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π»Π΅Π³Π΅Π½Π΄Ρ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π²Π°ΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- ΠΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΠΏ Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊ Π½Π° Π»ΠΈΡΡΠ΅, Π·Π°ΠΉΠ΄Π΅ΠΌ Π² Π²Π΅ΡΡ Π½Π΅Π΅ ΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠ½ΠΊΡΡ Β«Π’ΠΈΠΏ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡΒ» Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Β».
ΠΠ΄Π΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²ΠΊΡΡ ΠΈ ΡΠ²Π΅Ρ: ΠΎΡ Π»ΠΈΠ½Π΅ΠΉΡΠ°ΡΡΡ ΠΈ ΠΊΡΡΠ³ΠΎΠ²ΡΡ Π΄ΠΎ ΡΠΎΡΠ΅ΡΠ½ΡΡ ΠΈ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ±ΡΠ°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΠΌ ΡΠΈΠΏ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
- Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΉΠ΄Π΅ΠΌ Π² Π²Π΅ΡΡ Π½Π΅Π΅ ΠΌΠ΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π» Β«ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Β», ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Β«ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡΒ», ΠΈ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΉΡΡ ΡΠΎΡΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈΒ». ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Π² ΠΏΠΎΠ»ΡΡ Β«ΠΡΡ X (ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ)Β», Β«ΠΡΡ Y (ΡΡΠ΄ΠΎΠ² Π΄Π°Π½Π½ΡΡ )Β» ΠΈ Β«ΠΡΡ Z (Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ)Β» Π²Π²Π΅Π΄Π΅ΠΌ Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΠ·Π°Π³Π»Π°Π²ΠΈΡΡ ΠΎΡΠΈ. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΠΎΠ»Π΅ Β«ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡΒ» Π²Π²Π΅Π΄Π΅ΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΎ Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ»ΠΎΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΈΠ½ΠΈΠΈ ΡΠ΅ΡΠΊΠΈΒ» ΡΠΎΡΠΌΡ Β«ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡΒ» ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π³Π°Π»ΠΎΡΠΊΡ Β«ΠΠ»ΠΎΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΒ». ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Ρ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΠΎΠ΅, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
- ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π³ΡΠ°ΡΠΈΠΊΠ° β ΡΡΠΎ Π»Π΅Π³Π΅Π½Π΄Π°. ΠΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠ΅Π³Π΅Π½Π΄Π°Β» ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΠΎΡΠΌΡ.
Π ΠΌΠ΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠΎ Π²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ WordβΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡ ΠΎΠΆ, ΠΈ Π²Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΠ½ΠΎΡΠΎΠ²ΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅.
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π² Word 2016?
Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Word ΡΡΠ΅Π΄ΡΡΠ²Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π±ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Ρ ΠΈ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ. ΠΠ° ΡΠΌΠ΅Π½Ρ ΡΠ³Π»ΠΎΠ²Π°ΡΡΠΌ ΠΈ ΡΠ»Π΅Π³ΠΊΠ° Π½Π΅Π²Π·ΡΠ°ΡΠ½ΡΠΌ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ ΠΈ Π²Π΅ΡΠ½ΠΈΠΉ ΠΌΠΎΠ΄Ρ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡΠ»ΠΈ Π±ΡΠΎΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠ»Π°Π²Π½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΎΡΠ΅ΠΉ ΠΈ ΡΡΠ΅Π½Π΄ΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΡΡΠ½ΠΎ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡΠ΅, ΠΈ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ.
- Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ Β«ΠΡΡΠ°Π²ΠΊΠ°Β» Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Β«ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Β».
- Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΡΠΎ Π²ΡΠ±ΠΎΡ ΡΠΈΠΏΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠ° Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π΄ΠΎΠ±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΡΡΠ΅ΠΊΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ. ΠΡΠ΅, ΡΡΠΎ ΠΎΡ Π²Π°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ β ΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅.
Π§ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΡΡΡΠΎΡΡΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π²ΠΈΠΆΠΎΠΊ WordβΠ° Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΡ ΠΏΠΎ Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠΎΠ»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎ Π°ΠΊΠΊΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅ΡΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ΅ΠΉ, Π»Π΅Π³Π΅Π½Π΄Ρ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΡ ΠΎΠΆ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Π΄Π²ΠΈΠΆΠΊΠ°. ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ»Π΅Π³ΠΊΠ° Π΄ΠΎΠ½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π²ΠΈΠ΄.
ΠΠ°ΠΊ Π²Ρ Π²ΡΠΊΠΎΡΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, Π² ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΊΡΡΡΠ°ΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ. Π ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ 15 Π»Π΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π² WordβΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π²ΡΠΈΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, Π²Ρ Π±Π΅Π· ΡΡΡΠ΄Π° ΠΎΠ²Π»Π°Π΄Π΅Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΎΠΉ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΠΈΠ΄Π΅ΠΎΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΡΠ²Π΅ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ΅ΠΌΠ΅ «ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ »
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ° β 2. B2Β Β ) ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π΅Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΡΠ΄Π΅Π»ΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ΅Π΅ΠΊ Π3:L4, Π²ΡΠ±Π΅ΡΠ΅ΠΌΒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΡΡΠ°Π²ΠΊΠ°-ΠΡΠ°ΡΠΈΠΊ. ΠΠΎΠ»ΡΡΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊΠΈ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ)
ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΅ΠΉ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
-
ΠΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ (Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΊΠ½Π΅ΠΌ ΠΌΡΡΡΡ), Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ β ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ β ΠΡΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅. - Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΡΠ±ΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΠΎΠ΄ΠΏΠΈΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈ β ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π²Π²Π΅ΡΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ΅Π΅ΠΊ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ B2:L2).
-
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈ Π΄ΠΎ Π½Π°ΡΠ°Π»Π°Β ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: Π Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ β ΠΠ°ΠΊΠ΅Ρ β ΠΡΠΈ β ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΡ — ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π Π°Π·Π΄Π΅Π» ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅Ρ: Π ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 6 (ΠΠΎΡΠ΅ΠΌΡ?). ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈ: ΠΏΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ.
- ΠΡΡΠ°Π²ΡΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ:
Β
Β
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ:
- ΠΠ° Π»ΠΈΡΡΠ΅ 2 ΠΏΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ y = SIN (x),Β y = SIN(x+2),Β y= SIN(x) -5Β Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [-8; 8].
- ΠΠ° Π»ΠΈΡΡΠ΅ 3 ΠΏΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ y = 2COS(x),Β Β Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [-8; 8].
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ° «ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ»
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ°: Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΒ»
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ: ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π² MS Excel
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Β«ΠΠ±ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Β«ΠΠ²ΡΠΎΠΠΠΒ» Π·Π° I ΠΏΠΎΠ»ΡΠ³ΠΎΠ΄ΠΈΠ΅Β» Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ B2:J10.
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ½ΠΊΡ 1: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΡΠΈΡΡ Times New Roman, 12; Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π‘3:Π‘9 β ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ β ΠΏΠΎ ΡΠ΅Π½ΡΡΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΎΠ³ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π‘Π£ΠΠ ΠΈΠ»ΠΈ ΠΠ²ΡΠΎΡΡΠΌΠΌΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ ΠΠΌΠΎΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΠΎΠ΄Π²Π΅ΡΠΊΠΈ Π² I ΠΊΠ²Π°ΡΡΠ°Π»Π΅:
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΡΡΠ΅Π΅ΠΊ (D2:F3): Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ (ΡΠΈΡΠ»Π°), Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ (ΡΠ½Π²Π°ΡΡ, ΡΠ΅Π²ΡΠ°Π»Ρ, ΠΌΠ°ΡΡ).
ΠΠΠΠΠΠΠΠ!Β ΠΡΠ΄Π΅Π»ΡΠΉΡΠ΅ ΡΠ»Π΅Π²Π° — Π½Π°ΠΏΡΠ°Π²ΠΎ.Β ΠΡΠΎΠ³ΠΎ 6 ΡΡΠ΅Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠ²Π΅ΡΡ (ΡΠ΅ΡΡΠ΅).
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ°ΠΏΡΠ½ΠΎΠ²Β Π² I ΠΊΠ²Π°ΡΡΠ°Π»Π΅:
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΡΠ΅Π΅ΠΊ (C2:F2; C5:F6): Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ (ΡΠΈΡΠ»Π°), Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ (ΡΠ½Π²Π°ΡΡ, ΡΠ΅Π²ΡΠ°Π»Ρ, ΠΌΠ°ΡΡ) ΠΈ Π΄Π»Ρ Π»Π΅Π³Π΅Π½Π΄Ρ (ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΠ΅Π»Ρ, ΡΠ°ΠΏΡΠ½).
ΠΠΠΠΠΠΠΠ!Β ΠΠ»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ [CTRL]
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΡΡΠ³ΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ Π²ΡΠ΅Ρ ΡΠΎΠ²Π°ΡΠΎΠ² Π² Π°ΠΏΡΠ΅Π»Π΅:
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΡΠ΅Π΅ΠΊ (Π‘3:Π‘9;Β G2:G9): Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ (ΡΠΈΡΠ»Π°) ΠΈ Π΄Π»Ρ Π»Π΅Π³Π΅Π½Π΄Ρ (Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ²).
Π²ΡΡΠ°Π²ΡΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π³Π°Π»ΠΎΡΠΊΡ Β«ΠΠΎΠ΄ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ Β», ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΠ½ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ Β».
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π»ΠΈΠ½Π΅ΠΉΡΠ°ΡΡΡ Π½ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Ρ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ ΡΠΎΠ²Π°ΡΠΎΠ² Π² I ΠΏΠΎΠ»ΡΠ³ΠΎΠ΄ΠΈΠΈ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠ² ΡΠΈΠ»ΠΈΠ½Π΄ΡΠΎΠ² Π·Π°ΠΌΠΊΠΎΠ² Π·Π° I ΠΏΠΎΠ»ΡΠ³ΠΎΠ΄ΠΈΠ΅:
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π° Β«ΠΡΠ°ΡΠΈΠΊ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠ² ΡΠΈΠ»ΠΈΠ½Π΄ΡΠΎΠ² Π·Π°ΠΌΠΊΠΎΠ² Π·Π° Π²Π΅ΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΡΡΒ», Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅Π³Π΅Π½Π΄Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠ½ΠΈΠ·Ρ.
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΡΒ ΠΡΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ Π²ΡΠ΅Ρ ΡΠΎΠ²Π°ΡΠΎΠ² Π·Π° Π·ΠΈΠΌΠ½ΠΈΠ΅ ΠΌΠ΅ΡΡΡΡ I ΠΏΠΎΠ»ΡΠ³ΠΎΠ΄ΠΈΡ
ΠΡΠ·ΡΡΡΠΊΠΎΠ²Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° | ΠΠ°Π½Π½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠΎΠ»Π±ΡΠ°Ρ , ΠΏΡΠΈΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ x — Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅, Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ y ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΡΠ·ΡΡΡΠΊΠΎΠ² — Π² ΡΠΌΠ΅ΠΆΠ½ΡΡ ΡΡΠΎΠ»Π±ΡΠ°Ρ , ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ :
| ||||||||||||
ΠΡΡΠ³ΠΎΠ²Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° | ΠΠ΄ΠΈΠ½ ΡΡΠΎΠ»Π±Π΅Ρ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ»Π±Π΅Ρ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΌΠ΅ΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ : |
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
MS Excel
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ MS Excel, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π»ΠΈΡΡΠ° Microsoft Excel. ΠΡΠ²ΠΎΠΈΡΡ ΠΏΡΠΈΡΠΌΡ Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, Π²Π²ΠΎΠ΄Π° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΡΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² (Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ).
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ
ΠΠ±ΡΠ΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ y1 = sinx ΠΈ y2 = cosx Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΠΎΡ 0Β Π΄ΠΎ 2ο°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠ°ΠΏΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π’Π°Π±Π»ΠΈΡΡ ExcelΒ». ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Microsoft Excel.
ΠΡΠΊΡΡΠ²ΡΠΈΠΉΡΡ ΡΠ°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΏΡΡΡΡΡ Π»ΠΈΡΡΠ°. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΡΠΈ Π»ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΈΡΡ 1 β sinxcosx
ΠΠΈΡΡ 2 β Π€ΡΠ½ΠΊΡΠΈΡ β < ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°>
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«Π’Π°Π±Π»ΠΈΡΡ ExcelΒ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΡΠ°ΡΠΈΠΊΠΈ.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π»ΠΈΡΡ sinx cos x. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ y1 = sinx ΠΈ y2 = cosx
Π ΡΡΠ΅ΠΉΠΊΠ°Ρ Π5, Π6, Π7 ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ : x, y1, y2.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Ρ , Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠ΅ΠΉΠΊΠΈ Π5: Ρ = 0; 0,6; β¦ ; 6,6.
Π ΡΡΠ΅ΠΉΠΊΡ Π6 Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΎΡΠΌΡΠ»Ρ: =SIN(Π5)
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΡ ΡΠΎΡΠΌΡΠ»Ρ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ ΡΡΡΠΎΠΊΠΈ 6 β Π΄ΠΎ Π6.
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΡΡΠ°Π²ΠΊΠ° Π² Π³ΡΡΠΏΠΏΠ΅ ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΏ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ β Π’ΠΎΡΠ΅ΡΠ½Π°Ρ Ρ Π³Π»Π°Π΄ΠΊΠΈΠΌΠΈ ΠΊΡΠΈΠ²ΡΠΌΠΈ.
MS Excel ΠΏΠΎΡΡΡΠΎΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ (ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΠ°ΠΊΠ΅Ρ ΠΈ Π€ΠΎΡΠΌΠ°Ρ). ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΠ°Π½Π½ΡΠ΅ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΡΠ±ΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π»Π΅Π³Π΅Π½Π΄Ρ (ΡΡΠ΄Ρ) ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΡ ΡΡΠ΄1 Π½Π° ΡΠΈΠ½ΡΡΠΎΠΈΠ΄Π°.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΠ°ΠΊΠ΅Ρ ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π»ΠΈΠ½ΠΈΠΈ ΡΠ΅ΡΠΊΠΈ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π³ΡΠ°ΡΠΈΠΊΡ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΠ½ΡΡΠΎΠΈΠ΄Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ 7 β Π² ΡΡΠ΅ΠΉΠΊΡ Π7 Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΎΡΠΌΡΠ»Ρ =COS(Π5) ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π΅Ρ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎ Π7 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΡΠ±ΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ (Π Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ / ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ / ΠΡΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅). Π©ΡΠ»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ (ΡΡΠ΄Ρ). Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΈΠΌΡ ΡΡΠ΄Π° β ΠΊΠΎΡΠΈΠ½ΡΡΠΎΠΈΠ΄Π°, Π° Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ΅Π΅ΠΊ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ cos(x) (Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ).
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ β Π‘ΠΈΠ½ΡΡΠΎΠΈΠ΄Π° ΠΈ ΠΊΠΎΡΠΈΠ½ΡΡΠΎΠΈΠ΄Π°.
ΠΠ·ΡΡΠΈΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΠ°ΠΊΠ΅Ρ ΠΈ Π€ΠΎΡΠΌΠ°Ρ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΠΊΠ΅Ρ ΠΈ ΡΡΠΈΠ»Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΡ Π²ΡΡΡΠ½ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΌΠ°ΠΊΠ΅Ρ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΡΡΠ΄ΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π»Π΅Π³Π΅Π½Π΄Ρ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π»ΠΈΡΡ Π€ΡΠ½ΠΊΡΠΈΡ β . ΠΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΠΈΠ½ΡΡΠΎΠΈΠ΄Ρ. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π²ΠΈΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ½ΡΡΠ°Π½ΡΡ, Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΉ (ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π°, Π², Ρ, k), Π·Π°ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΊΠ°Ρ ΠΈ Π΄Π΅Π»Π°ΠΉΡΠ΅ Π½Π° Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΡΠΎ Π΄Π°ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ².
Free Graph Maker: ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΎΠ½Π»Π°ΠΉΠ½ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ.
Adobe Spark ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ Π±Π΅Π· Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠΡΠΎΡΡΠ°Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π²Π°ΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΊΠΈΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Adobe Spark.
Π‘Π΄Π΅Π»Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π²Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΒ» ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΠΉΡΠ΅ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΡ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ.
ΠΠ°Π²Π΅Π΄ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΈΠ·Π°ΠΉΠ½Β», ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΡΡΠ³ΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠ»ΡΡΠ΅Π²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΠΉΡΠ΅.
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ .
Π‘Π΄Π΅Π»Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
Adobe Spark ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠΈΠ΅ ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°. ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π°ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΡΡΠ³ΠΎΠ²ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π΅Π»ΡΡΡ Π²Π°Ρ ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ².ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΡΠΌΠΈ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. ΠΠΎΠΈΠ³ΡΠ°ΠΉΡΠ΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ²Π΅ΡΠΎΠ²ΡΠΌΠΈ ΡΡ Π΅ΠΌΠ°ΠΌΠΈ ΠΈ ΠΌΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°, ΡΠΊΠΎΠ»Ρ ΠΈΠ»ΠΈ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ, Π½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Adobe Spark ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΎ. ΠΡΠ΅Π³ΠΎ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ Π½Π°ΠΉΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΠΈΠΊ ΠΊΠ°ΠΊ Ρ Π½ΠΎΠ²ΡΡ , ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΡΠΊΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΊΠΈΠΌ. ΠΠ°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π±Π΅Π·ΡΠΏΡΠ΅ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΠΌ.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠ°ΡΡΠΎΡΠ½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ²— MathCracker.com
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΠ°ΡΡΠΎΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠ°ΡΡΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΡΠ°ΡΡΠΎΡΠ°ΠΌΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠ°ΡΡΠΎΡΡ Π² ΡΠΎΡΠΌΡ Π½ΠΈΠΆΠ΅:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΡΠ°ΡΡΠΎΡ
ΠΠ΄Π΅Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ°ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΈ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠ°ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π±ΡΡΡΡΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±ΡΠ°Π·ΡΠ΅.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠ°ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°ΡΡΠΎΡΠ½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠ°ΡΡΠΎΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π»ΠΈΠ±ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ) Π½Π° ΠΎΡΡ X, Π° ΠΈΡ ΡΠ°ΡΡΠΎΡΡ — Π½Π° ΠΎΡΡ Y, ΠΈ Π½Π°Π½ΠΎΡΠΈΡΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊ Π²ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΡΠΊΠΈ (X, Y).
Π-ΡΡΠ΅ΡΡΠΈΡ , Π²Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ ΡΡΠΈ ΡΠΎΡΠΊΠΈ ΠΏΡΡΠΌΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΡΠ΅ΠΊ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ.
ΠΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΄Π»Ρ Π²Π°Ρ ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ°ΡΡΠΎΡΠ½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Excel) ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π° Π²Π°Ρ.
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² .
ΠΡΡΠ³ΠΈΠ΅ ΡΠΎΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ³ΠΎ, Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π½Π°ΡΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ , ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΡΡ Π²Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΡΠΌΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΠ³ΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΠ±ΠΎΠΊ , Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
Π³ΡΠ°ΡΠΈΠΊ.ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² — RDocumentation
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. graph.empty
— ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΡΡΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ.
graph
ΡΠΎΠ·Π΄Π°Π΅Ρ Π³ΡΠ°Ρ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΅Π±ΡΠ°ΠΌΠΈ.
graph.star
ΡΠΎΠ·Π΄Π°Π΅Ρ Π·Π²Π΅Π·Π΄ΡΠ°ΡΡΠΉ Π³ΡΠ°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠ½Π°
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅ ΠΈ Π½ΠΈΠΊΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ.
graph.lattice
— Π³ΠΈΠ±ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅ΡΠΊΠΈ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅.ΠΠΌΠ΅Π΅Ρ Π΄Π²Π°
ΡΠΎΡΠΌΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π²Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠΌΠ²Π΅ΠΊΡΠΎΡ
, Π½ΠΎ Π½Π΅ Π΄Π»ΠΈΠ½Π°
ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ
. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π²Ρ ΠΎΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π΄ΠΈΠΌΠ²Π΅ΠΊΡΠΎΡ
ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠ° Π΄Π»ΠΈΠ½Π°
ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ
.
graph.ring
Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ graph.lattice
,
ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΊΡΡΠ³Π»ΡΡ ΡΠ΅ΡΠ΅ΡΠΊΡ.
graph.tree
ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ.
graph.full
ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ.
graph.full.citation
ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ
ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°Ρ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ i-> j ΡΠ΅Π±ΡΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° jdirected = FALSE, ΡΠΎΠ³Π΄Π° Π³ΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»Π½ΡΠΌ Π³ΡΠ°ΡΠΎΠΌ. graph.atlas
ΡΠΎΠ·Π΄Π°Π΅Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ ΠΡΠ»Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π°Π²ΡΠΎΡΠ°
Π ΠΎΠ»Π°Π½Π΄ Π. Π ΠΈΠ΄ ΠΈ Π ΠΎΠ±ΠΈΠ½ ΠΠΆ. Π£ΠΈΠ»ΡΠΎΠ½. ΠΡΠ»Π°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅
Π³ΡΠ°ΡΡ Ρ ΡΠΈΡΠ»ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½ Π΄ΠΎ ΡΠ΅ΠΌΠΈ, ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΡ 0 Π΄ΠΎ 1252.
Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ:
- Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ²;
- Π΄Π»Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΡΠ°Π΅Π²;
- Π΄Π»Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π³ΡΠ°Π΄ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 111223
- Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ, Π² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΡ.
graph.edgelist
ΡΠΎΠ·Π΄Π°Π΅Ρ Π³ΡΠ°Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ΅Π±Π΅Ρ. ΠΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΠ· Π΄Π²ΡΡ
ΡΡΠΎΠ»Π±ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π±ΡΠΎ. ΠΡΠ»ΠΈ ΡΡΠΎ
ΡΠΈΡΠ»ΠΎΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΠΎΠ³Π΄Π° Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π²Π΅ΡΡΠΈΠ½. ΠΡΠ»ΠΈ
ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΠ½Π°
ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²Π΅ΡΡΠΈΠ½Ρ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΡ
Π°ΡΡΠΈΠ±ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½. graph.extended.chordal.ring
ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΄Π»ΠΈΠ½Π΅Π½Π½ΠΎΠ΅ Ρ
ΠΎΡΠ΄ΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ»ΡΡΠΎ.Π Π°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ Ρ
ΠΎΡΠ΄ΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ»ΡΡΠΎ — ΡΡΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΉ Π³ΡΠ°Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅
ΡΡΠ΅ΠΏΠ΅Π½Ρ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΡΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅Π±ΡΠ°, Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ. ΠΡΡΡΡ p ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π²
ΠΌΠ°ΡΡΠΈΡΠ° W
. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π±ΡΠ° Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ
Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠΎΠ»Π±ΡΡ i mod p
Π² ΠΡ
. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΈΡΠ½ΠΈΡ
ΡΠ΅Π±Π΅Ρ — ΡΡΠΎ ΡΠΈΡΠ»ΠΎ
ΡΡΠ΄ΠΎΠ² Π² W
: Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΄Π° j
ΠΊΡΠΎΠΌΠΊΠ° i-> i + w [ij]
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ i + w [ij]
ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»Π°
Π²ΡΠ΅Π³ΠΎ ΡΠ·Π»ΠΎΠ².Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΠΎΡΡΠΈΡ, G: Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ΅ΠΆΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, PARS Mitteilungen 11, 1-6, 1993.
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ NetworkX 2.
5ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ NetworkX.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΡΡΠΎΠΉ Π³ΡΠ°Ρ Π±Π΅Π· ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ.
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ networkx ΠΊΠ°ΠΊ nx >>> G = nx.Graph ()
ΠΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π³ΡΠ°ΡΠΈΠΊ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ·Π»ΠΎΠ² (Π²Π΅ΡΡΠΈΠ½) Π²ΠΌΠ΅ΡΡΠ΅ Ρ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΡ ΡΠ·Π»ΠΎΠ² (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΌΠΈ, ΡΠ²ΡΠ·ΡΠΌΠΈ ΠΈ Ρ. Π΄.).Π NetworkX ΡΠ·Π»Ρ ΠΌΠΎΠ³ΡΡ
Π±ΡΡΡ Π»ΡΠ±ΡΠΌ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ XML,
Π΄ΡΡΠ³ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ·Π»Π° ΠΈ Ρ. Π΄.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Python None
ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ
Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π»ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ.
Π£Π·Π»Ρ
ΠΡΠ°ΡΠΈΠΊ G
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. NetworkX Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΎΠ²
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΎΡΠΌΠ°ΡΠ°Ρ
.ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ·Π΅Π»
Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·
ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ·Π»Ρ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΏΠΈΡΠΊΠ°
>>> G. add_nodes_from ([2, 3])
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ·Π»Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ·Π»ΠΎΠΌ
Π°ΡΡΠΈΠ±ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π°Π΅Ρ 2 ΠΊΠΎΡΡΠ΅ΠΆΠ° ΡΠΎΡΠΌΡ (ΡΠ·Π΅Π», node_attribute_dict)
:
>>> G.add_nodes_from ([ ... (4, {"ΡΠ²Π΅Ρ": "ΠΊΡΠ°ΡΠ½ΡΠΉ"}), ... (5, {"ΡΠ²Π΅Ρ": "Π·Π΅Π»Π΅Π½ΡΠΉ"}), ...])
ΠΡΡΠΈΠ±ΡΡΡ ΡΠ·Π»Π° ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΡΠ·Π»ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ:
>>> H = nx.path_graph (10) >>> G.add_nodes_from (H)
G
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ·Π»Ρ H
ΠΊΠ°ΠΊ ΡΠ·Π»Ρ G
.
ΠΠ°ΠΏΡΠΎΡΠΈΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°Ρ H
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π° Π² G
.
ΠΡΠ°ΡΠΈΠΊ G
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ H
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π°. ΠΡΠ° Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ², Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.Π‘ΡΠΎΠΈΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ·Π»Ρ
ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² G
ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ± ΡΠ·Π»Π΅, Π΅ΡΠ»ΠΈ
ΠΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ·Π»Π°, Π΅ΡΠ»ΠΈ Ρ Π΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ.
ΠΡΠΎΠΌΠΊΠΈ
G
ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅Π±ΡΡ Π·Π° ΡΠ°Π·,
>>> G.add_edge (1, 2) >>> e = (2, 3) >>> Π.add_edge (* e) # ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ΅Π±Π΅Ρ *
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π±Π΅Ρ,
>>> G.add_edges_from ([(1, 2), (1, 3)])
ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΡΠΊΠ° ΡΠ΅Π±Π΅Ρ. ebunch — Π»ΡΠ±ΠΎΠΉ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅Π±Π΅Ρ-ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠΎΡΡΠ΅ΠΆ ΡΠ΅Π±Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ ΠΈΠ· 2 ΡΠ·Π»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ ΠΈΠ· 3
Ρ 2 ΡΠ·Π»Π°ΠΌΠΈ, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ΅Π±Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, (2, 3, {'Π²Π΅Ρ': 3,1415})
. ΠΡΡΠΈΠ±ΡΡΡ ΠΊΡΠ°Ρ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π΄Π°Π»Π΅Π΅
Π½ΠΈΠΆΠ΅.
>>> G.add_edges_from (H.ΠΊΡΠ°Ρ)
ΠΠ΅Ρ Π½Π°ΡΠ΅ΠΊΠ°Π½ΠΈΠΉ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ·Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ
ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ / ΡΠ΅Π±ΡΠ°, Π° NetworkX Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ.
>>> G.add_edges_from ([(1, 2), (1, 3)]) >>> G. add_node (1) >>> G.add_edge (1, 2) >>> G.add_node ("spam") # Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ·Π΅Π» "spam" >>> G.add_nodes_from ("spam") # Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ 4 ΡΠ·Π»Π°: 's', 'p', 'a', 'm' >>> G.add_edge (3, 'ΠΌ')
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π³ΡΠ°Ρ G
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 8 ΡΠ·Π»ΠΎΠ² ΠΈ 3 ΡΠ΅Π±Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ:
>>> Π.ΡΠΈΡΠ»ΠΎ_ΡΠ·Π»ΠΎΠ² () 8 >>> G.number_of_edges () 3
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π³ΡΠ°ΡΠΈΠΊΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ·Π»Ρ ΠΈ ΡΠ΅Π±ΡΠ°. Π§Π΅ΡΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ²Π° Π³ΡΠ°ΡΠ° ΡΠΏΡΠΎΡΠ°ΡΡ
ΠΎΡΡΠ΅ΡΡ: G.nodes
, G.edges
, G.adj
ΠΈ G.degree
. ΠΡΠΈ
ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΠ·Π»ΠΎΠ², ΡΠ΅Π±Π΅Ρ, ΡΠΎΡΠ΅Π΄Π΅ΠΉ (ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠ΅ΠΉ) ΠΈ ΡΡΠ΅ΠΏΠ΅Π½Π΅ΠΉ
ΡΠ·Π»ΠΎΠ² Π² Π³ΡΠ°ΡΠ΅. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΡΠΉ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊ
ΡΡΡΡΠΊΡΡΡΠ° Π³ΡΠ°ΡΠ°. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡ
ΠΎΠΆΠΈ Π½Π° dict, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ·Π΅Π»
ΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ .items ()
, . Π΄Π°Π½Π½ΡΠ΅ ('Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½')
.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠΈ, Ρ
ΠΎΡΡ Π½Π°Π±ΠΎΡΡ, ΡΠ»ΠΎΠ²Π°ΡΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ
Π»ΡΡΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ
.
>>> ΡΠΏΠΈΡΠΎΠΊ (G. ΡΠ·Π»Ρ) [1, 2, 3, 'ΡΠΏΠ°ΠΌ', 's', 'p', 'a', 'm'] >>> ΡΠΏΠΈΡΠΎΠΊ (G.edges) [(1, 2), (1, 3), (3, 'm')] >>> list (G.adj [1]) # ΠΈΠ»ΠΈ list (G.neighbours (1)) [2, 3] >>> G.degree [1] # ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±Π΅Ρ, ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΡΡ 1 2
ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΠΎΡΡΠ΅ΡΠ° ΠΎ ΡΠ΅Π±ΡΠ°Ρ
ΠΈ Π³ΡΠ°Π΄ΡΡΠ°Ρ
ΠΈΠ· ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΡΠ΅Ρ
ΡΠ·Π»ΠΎΠ².
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ nbunch.ΠΡΡΠΏΠΏΠ° nbunch ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ·: ΠΠ΅Ρ
(ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ ΡΠ·Π»Ρ),
ΡΠ·Π΅Π» ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ·Π»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·Π»ΠΎΠΌ Π²
Π³ΡΠ°ΡΠΈΠΊ.
>>> G.edges ([2, 'm']) EdgeDataView ([(2, 1), ('m', 3)]) >>> G.degree ([2, 3]) DegreeView ({2: 1, 3: 2})
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ — Π΄Π°Π½Π½ΡΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ° Π³ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΡ Π³ΡΠ°ΡΠΎΠ².ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ Π³ΡΠ°ΡΠ° ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π³ΡΠ°ΡΠΎΠ² ΠΊΠ»Π°ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ .
>>> G.add_edge (1, 2) >>> H = nx.DiGraph (G) # ΡΠΎΠ·Π΄Π°ΡΡ DiGraph, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ· G >>> ΡΠΏΠΈΡΠΎΠΊ (H.edges ()) [(1, 2), (2, 1)] >>> edgelist = [(0, 1), (1, 2), (2, 3)] >>> H = nx.Graph (ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ²)
Π§ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ·Π»Ρ ΠΈ ΡΠ΅Π±ΡΠ° Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ ΠΊΠ°ΠΊ NetworkX
ΠΎΠ±ΡΠ΅ΠΊΡΡ.ΠΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠΈΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»ΠΎΠ² ΠΈ
ΠΊΡΠ°Ρ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΠ»Π° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ
Π±ΡΡΡ Π»ΡΠ±ΡΠΌ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ (ΠΊΡΠΎΠΌΠ΅ ΠΠ΅Ρ
), ΠΈ ΡΠ΅Π±ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ
Ρ Π»ΡΠ±ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ x
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ G.add_edge (n1, n2, object = x)
.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, n1
ΠΈ n2
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±Π΅Π»ΠΊΠ° ΠΈΠ· RCSB Protein.
ΠΠ°Π½ΠΊ Π΄Π°Π½Π½ΡΡ
, Π° x
ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ XML-Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ
ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΈΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡ Π½Π°ΡΠ»ΠΈ ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Π½ΠΎ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π΅Ρ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Python. ΠΡΠ»ΠΈ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΠ΅ΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ convert_node_labels_to_integers ()
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ
Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ Π³ΡΠ°Ρ Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π±ΡΠ°ΠΌ ΠΈ ΡΠΎΡΠ΅Π΄ΡΠΌ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²ΠΈΠ΄Π°ΠΌ Graph.edges
ΠΈ Graph.adj
,
Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π±ΡΠ°ΠΌ ΠΈ ΡΠΎΡΠ΅Π΄ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
>>> G = nx.ΠΡΠ°ΡΠΈΠΊ ([(1, 2, {"color": "yellow"})]) >>> G [1] # ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ G.adj [1] AtlasView ({2: {'ΡΠ²Π΅Ρ': 'ΠΆΠ΅Π»ΡΡΠΉ'}}) >>> G [1] [2] {'ΡΠ²Π΅Ρ': 'ΠΆΠ΅Π»ΡΡΠΉ'} >>> G.edges [1, 2] {'ΡΠ²Π΅Ρ': 'ΠΆΠ΅Π»ΡΡΠΉ'}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ / ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΅Π±ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π½ΠΎΡΠ°ΡΠΈΡ Π΅ΡΠ»ΠΈ ΠΊΡΠ°ΠΉ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
>>> G.add_edge (1, 3) >>> G [1] [3] ['color'] = "ΡΠΈΠ½ΠΈΠΉ" >>> G.edges [1, 2] ['color'] = "ΠΊΡΠ°ΡΠ½ΡΠΉ" >>> G.edges [1, 2] {'ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ'}
ΠΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅Ρ
ΠΏΠ°Ρ (ΡΠ·Π΅Π», ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΡ) Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³.ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΡ ()
ΠΈΠ»ΠΈ G.adj.items ()
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΠ°ΡΠΎΠ² ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΠ΄ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΅Π±ΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ.
>>> FG = nx.Graph () >>> FG.add_weighted_edges_from ([(1, 2, 0.125), (1, 3, 0.75), (2, 4, 1.2), (3, 4, 0.375)]) >>> Π΄Π»Ρ n, nbrs Π² FG.adj.items (): ... Π΄Π»Ρ nbr, eattr Π² nbrs.items (): ... wt = eattr ['Π²Π΅Ρ'] ... Π΅ΡΠ»ΠΈ wt <0,5: print (f "({n}, {nbr}, {wt: .3})") (1, 2, 0,125) (2, 1, 0,125) (3, 4, 0,375) (4, 3, 0,375)
Π£Π΄ΠΎΠ±Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΡΠΎΠΌΠΊΠ°ΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΡΠΎΠΌΠΊΠΈ.
>>> for (u, v, wt) Π² FG.edges.data ('weight'): ... Π΅ΡΠ»ΠΈ wt <0,5: ... print (f "({u}, {v}, {wt: .3})") (1, 2, 0,125) (3, 4, 0,375)
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊ Π³ΡΠ°ΡΠ°ΠΌ, ΡΠ·Π»Π°ΠΌ ΠΈ ΡΠ΅Π±ΡΠ°ΠΌ
ΠΡΡΠΈΠ±ΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π΅ΡΠ°, ΠΌΠ΅ΡΠΊΠΈ, ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Python, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Ρ ΠΊ Π³ΡΠ°ΡΠ°ΠΌ, ΡΠ·Π»Π°ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π±ΡΠ°ΠΌ.
ΠΠ°ΠΆΠ΄ΡΠΉ Π³ΡΠ°Ρ, ΡΠ·Π΅Π» ΠΈ ΡΠ΅Π±ΡΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠ°ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠ»ΡΡ / Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ
ΡΠ»ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² (ΠΊΠ»ΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ).ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΈ ΠΏΡΡΡΡ,
Π½ΠΎ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ add_edge
, add_node
ΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ
ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ G. graph
, G.nodes
ΠΈ G.edges
Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠ° G
.
ΠΡΡΠΈΠ±ΡΡΡ Π³ΡΠ°ΡΠΈΠΊΠ°
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ°
>>> G = nx.Graph (Π΄Π΅Π½Ρ = "ΠΏΡΡΠ½ΠΈΡΠ°") >>> G.graph {'Π΄Π΅Π½Ρ': 'ΠΏΡΡΠ½ΠΈΡΠ°'}
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅
>>> Π.graph ['day'] = "ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ" >>> G.graph {'Π΄Π΅Π½Ρ': 'ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ'}
ΠΡΡΠΈΠ±ΡΡΡ ΡΠ·Π»Π°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ·Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ add_node ()
, add_nodes_from ()
ΠΈΠ»ΠΈ G.nodes
>>> G.add_node (1, time = '5pm') >>> G.add_nodes_from ([3], Π²ΡΠ΅ΠΌΡ = '14:00') >>> G.nodes [1] {'time': '5pm'} >>> G.nodes [1] ['room'] = 714 >>> G.nodes.data () NodeDataView ({1: {'Π²ΡΠ΅ΠΌΡ': '17:00', 'ΠΊΠΎΠΌΠ½Π°ΡΠ°': 714}, 3: {'Π²ΡΠ΅ΠΌΡ': '14:00'}})
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ·Π»Π° ΠΊ G.ΡΠ·Π»ΠΎΠ²
Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π² Π³ΡΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ G.add_node ()
Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
ΡΠ·Π»ΠΎΠ². ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π±Π΅Ρ.
ΠΡΡΠΈΠ±ΡΡΡ ΠΊΡΠ°Ρ
ΠΠΎΠ±Π°Π²ΠΈΡΡ / ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΅Π±Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ add_edge ()
, add_edges_from ()
,
ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
>>> G.add_edge (1, 2, Π²Π΅Ρ = 4.7) >>> G.add_edges_from ([(3, 4), (4, 5)], color = 'red') >>> G.add_edges_from ([(1, 2, {'color': 'blue'}), (2, 3, {'weight': 8})]) >>> G [1] [2] ['Π²Π΅Ρ'] = 4.7 >>> G.edges [3, 4] ['Π²Π΅Ρ'] = 4,2
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π²Π΅Ρ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π²Π·Π²Π΅ΡΠ΅Π½Π½ΡΡ
ΡΠ΅Π±Π΅Ρ.
ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π³ΡΠ°ΡΡ
ΠΠ»Π°ΡΡ DiGraph
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΊ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΠΊΡΠ°ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DiGraph.out_edges
, DiGraph.in_degree
, DiGraph. ΠΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΈ ()
, DiGraph. ΠΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠΈ ()
ΠΈ Ρ. Π.
Π§ΡΠΎΠ±Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠ΅Π΄ΠΈ ()
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ°ΠΌ ()
, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π³ΡΠ°Π΄ΡΡ
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ
ΡΡΠΌΠΌΠ° in_degree
ΠΈ out_degree
, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ
Π²ΡΠ΅ΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Ρ.
>>> DG = nx.DiGraph () >>> DG.add_weighted_edges_from ([(1, 2, 0.5), (3, 1, 0.75)]) >>> DG.out_degree (1, Π²Π΅Ρ = 'Π²Π΅Ρ') 0,5 >>> DG.degree (1, weight = 'Π²Π΅Ρ') 1,25 >>> ΡΠΏΠΈΡΠΎΠΊ (ΠΠ. ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠΈ (1)) [2] >>> list (DG.neighbours (1)) [2]
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΠ°ΡΠΎΠ², Π° Π΄ΡΡΠ³ΠΈΠ΅ - Π½Π΅Ρ.
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΄Π»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΠ°ΡΠΎΠ². ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΊΠ»ΠΎΠ½Π½ΠΎΡΡΡ ΠΊ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ΅ΠΊ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π°
ΠΈ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π³ΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΠΏΠ°ΡΠ½Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π»Π΅ΡΠΈΡΡ
ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Graph.to_undirected ()
ΠΈΠ»ΠΈ
>>> H = nx.Graph (G) # ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°Ρ H ΠΈΠ· ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° G
ΠΡΠ»ΡΡΠΈΠ³ΡΠ°ΡΡ
NetworkX ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ Π³ΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ΅Π±Π΅Ρ.
ΠΌΠ΅ΠΆΠ΄Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠ°ΡΠΎΠΉ ΡΠ·Π»ΠΎΠ². MultiGraph
ΠΈ MultiDiGraph
ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ΅Π±ΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠ°Π·Π½ΡΠΌΠΈ
Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠ°Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅
Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π½Π° ΡΠ°ΠΊΠΈΡ
Π³ΡΠ°ΡΠ°Ρ
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ.ΠΠ΄Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MultiGraph.degree ()
ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ
Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½.
>>> MG = nx.MultiGraph () >>> MG.add_weighted_edges_from ([(1, 2, 0.5), (1, 2, 0.75), (2, 3, 0.5)]) >>> dict (MG.degree (weight = 'weight')) {1: 1,25, 2: 1,75, 3: 0,5} >>> GG = nx.Graph () >>> Π΄Π»Ρ n, nbrs Π² MG.adjacency (): ... Π΄Π»Ρ NBR, ΡΠΊΠ°Π· Π² NBR.ΠΡΠ΅Π΄ΠΌΠ΅ΡΡ(): ... minvalue = min ([d ['weight'] Π΄Π»Ρ d Π² edict.values ββ()]) ... GG.add_edge (n, nbr, weight = minvalue) ... >>> nx.shortest_path (GG, 1, 3) [1, 2, 3]
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌΠΈ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ² ΡΠ·Π΅Π» Π·Π° ΡΠ·Π»ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π±ΡΠΎ Π·Π° ΡΠ΅Π±ΡΠΎΠΌ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π³ΡΠ°Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΡΠ·Π»Π°Ρ Π² nbunch. |
| ΠΠ΅ΡΠ½ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ² G ΠΈ H. |
| ΠΠ΅ΡΠ½ΡΡΡ Π½Π΅ΡΠ²ΡΠ·Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ² G ΠΈ H. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ G ΠΈ H. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°Ρ G, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ H. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ G. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ Π³ΡΠ°ΡΠ° G ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅Π±ΡΠ°ΠΌΠΈ. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΠΈΠ΄ Π³ΡΠ°ΡΠΈΠΊΠ° |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π²ΠΈΠ΄ Π³ΡΠ°ΡΠΈΠΊΠ° |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°Ρ ΠΠ΅ΡΠ΅ΡΡΠ΅Π½Π°. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΠΊ Π’ΡΡΡΠ΅. |
| ΠΠ΅ΡΠ½ΠΈΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π»Π°Π±ΠΈΡΠΈΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π°. |
| ΠΠ΅ΡΠ½ΡΡΡ 3-ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ»Π°ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠ°ΡΠ΄ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³ΡΠ°Ρ. |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ) Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
| ΠΠ΅ΡΠ½ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π³ΡΠ°Ρ |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄Π²ΡΠ΄ΠΎΠ»ΡΠ½ΡΠΉ Π³ΡΠ°Ρ |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ°Π½Π³ΠΈ: Π΄Π²Π° ΠΏΠΎΠ»Π½ΡΡ Π³ΡΠ°ΡΠΈΠΊΠ°, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΏΡΡΠ΅ΠΌ. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΠΊ Π»Π΅Π΄Π΅Π½ΡΠ° Π½Π° ΠΏΠ°Π»ΠΎΡΠΊΠ΅; |
Π²ΠΎΡ ΡΠ°ΠΊ:
>>> K_5 = nx.complete_graph (5) >>> K_3_5 = nx.complete_bipartite_graph (3, 5) >>> ΡΡΠ°Π½Π³Π° = nx.barbell_graph (10, 10) >>> Π»Π΅Π΄Π΅Π½Π΅Ρ = nx.lollipop_graph (10, 20)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΡΠΎΡ Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³ΡΠ°ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π³ΡΠ°Ρ \ (G_ {n, p} \), ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Π³ΡΠ°Ρ ΠΡΠ΄Π΅ΡΠ°-Π Π΅Π½ΡΠΈ ΠΈΠ»ΠΈ Π±ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°Ρ. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°Ρ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΌΠΈΡΠ° Π£ΠΎΡΡΡΠ° β Π‘ΡΡΠΎΠ³Π°ΡΠ°. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π³ΡΠ°Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΠ°ΡΠ°Π±Π°ΡΠΈ β ΠΠ»ΡΠ±Π΅ΡΡΠ°. |
| ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΎΠΌΠ°ΡΠΎΠ². |
Π²ΠΎΡ ΡΠ°ΠΊ:
>>> er = nx.erdos_renyi_graph (100, 0.15) >>> ws = nx.watts_strogatz_graph (30, 3, 0.1) >>> ba = nx.barabasi_albert_graph (100, 5) >>> ΠΊΡΠ°ΡΠ½ΡΠΉ = nx.random_lobster (100, 0.9, 0.9)
Π§ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°, Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π³ΡΠ°ΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ ΠΊΡΠ°Π΅Π², ΡΠΏΠΈΡΠΊΠΈ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ, GML, GraphML, pickle, LEDA ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
>>> nx.write_gml (ΠΊΡΠ°ΡΠ½ΡΠΉ, "ΠΏΡΡΡ.to.file ") >>> mygraph = nx. read_gml ("ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ")
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΠΌ. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ². Π° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΠΌ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
.ΠΠ½Π°Π»ΠΈΠ· Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
Π‘ΡΡΡΠΊΡΡΡΠ° G
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ:
>>> G = nx.Graph () >>> G.add_edges_from ([(1, 2), (1, 3)]) >>> G.add_node ("spam") # Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ·Π΅Π» "spam" >>> ΡΠΏΠΈΡΠΎΠΊ (nx.ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅_ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (G)) [{1, 2, 3}, {'ΡΠΏΠ°ΠΌ'}] >>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (d Π΄Π»Ρ n, d Π² G.degree ()) [0, 1, 1, 2] >>> nx.clustering (G) {1: 0, 2: 0, 3: 0, 'ΡΠΏΠ°ΠΌ': 0}
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π²ΡΡ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ 2-ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌ (ΡΠ·Π΅Π», Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅, ΠΈΡ
Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ dict
.
>>> sp = dict (nx.all_pairs_shortest_path (G)) >>> sp [3] {3: [3], 1: [3, 1], 2: [3, 1, 2]}
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ Π³ΡΠ°ΡΠ° ΡΠΌ. Π ΡΠ°Π·Π΄Π΅Π»Π΅ "ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ". ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π§Π΅ΡΡΠ΅ΠΆ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
NetworkX - ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ², Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ
Matplotlib, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Graphviz Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
ΠΏΠ°ΠΊΠ΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ. ΠΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ networkx.drawing
ΠΈ Π±ΡΠ΄ΡΡ
Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Matplotlib (pylab ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ)
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ matplotlib.pyplot ΠΊΠ°ΠΊ plt
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈ networkx.ΡΠ΅ΡΡΠ΅ΠΆ
Π±ΡΠ» ΡΡΠΏΠ΅ΡΠ½ΡΠΌ ΡΠΎΠ·ΡΠ³ΡΡΡ G
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·
>>> G = nx.petersen_graph () >>> plt.subplot (121) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw (G, with_labels = True, font_weight = 'ΠΆΠΈΡΠ½ΡΠΉ') >>> plt.subplot (122) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw_shell (G, nlist = [Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (5, 10), Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (5)], with_labels = True, font_weight = 'ΠΆΠΈΡΠ½ΡΠΉ')
(png, hires.png, pdf)
ΠΏΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠΏΡΡΡΠΈΡΡ ΠΠ°ΡΠΏΠ»ΠΎΡΠ»ΠΈΠ±
, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ matplotlib Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (ΡΠΌ. Matplotlib FAQ ).
>>> options = { . .. 'node_color': 'ΡΠ΅ΡΠ½ΡΠΉ', ... 'node_size': 100, ... 'width': 3, ...} >>> plt.subplot (221) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw_random (G, ** Π²Π°ΡΠΈΠ°Π½ΡΡ) >>> plt.subplot (222) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw_circular (G, ** Π²Π°ΡΠΈΠ°Π½ΡΡ) >>> plt.subplot (223) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw_spectral (G, ** Π²Π°ΡΠΈΠ°Π½ΡΡ) >>> plt.subplot (224) <ΠΎΠ±ΡΠ΅ΠΊΡ matplotlib.axes._subplots.AxesSubplot Π² ...> >>> nx.draw_shell (G, nlist = [Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (5,10), Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (5)], ** ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ)
(png, hires.png, pdf)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· draw_networkx ()
ΠΈ
ΠΌΠ°ΠΊΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΠΊΠ΅Ρ
.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ Ρ draw_shell ()
.
>>> G = nx.dodecaintage_graph () >>> shells = [[2, 3, 4, 5, 6], [8, 1, 0, 19, 18, 17, 16, 15, 14, 7], [9, 10, 11, 12, 13 ]] >>> nx.draw_shell (G, nlist = ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ** ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ)
(png, hires. png, pdf)
Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΡΡΠ΅ΠΆΠΈ Π² ΡΠ°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
>>> nx.draw (G) >>> plt.savefig ("ΠΏΡΡΡ.png")
Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΡΠ°ΠΉΠ» path.png
Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΠ»ΠΈ Graphviz ΠΈ
PyGraphviz ΠΈΠ»ΠΈ pydot Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ nx_agraph.graphviz_layout (G)
ΠΈΠ»ΠΈ nx_pydot.graphviz_layout (G)
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ·Π»ΠΎΠ² ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΠΊ Π² ΡΠΎΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
>>> ΠΈΠ· networkx.drawing.nx_pydot ΠΈΠΌΠΏΠΎΡΡ write_dot >>> pos = nx.nx_agraph.graphviz_layout (G) >>> nx.draw (G, pos = pos) >>> write_dot (G, 'ΡΠ°ΠΉΠ».dot')
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. ΠΠ° ΡΠ΅ΡΡΠ΅ΠΆΠ΅.
GraphX ββ- Spark 3.1.1 ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
GraphX ββ- ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² Spark Π΄Π»Ρ Π³ΡΠ°ΡΠΎΠ² ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ.ΠΠ° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, GraphX ββΡΠ°ΡΡΠΈΡΡΠ΅Ρ Spark RDD, Π²Π²ΠΎΠ΄Ρ Π½ΠΎΠ²Π°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Graph: ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΡΠ»ΡΡΠΈΠ³ΡΠ°Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅ ΠΈ ΡΠ΅Π±ΡΡ. ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π³ΡΠ°ΡΠΎΠ² GraphX ββΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π³ΡΠ°Ρ, joinVertices ΠΈ aggregateMessages), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Pregel API. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, GraphX ββΠ²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ°ΡΡΡΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π³ΡΠ°ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π³ΡΠ°ΡΠΎΠ².
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Spark ΠΈ GraphX ββΠ² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠΌΠΏΠΎΡΡ ΠΎΡΠ³.apache.spark._
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ org.apache.spark.graphx._
// Π§ΡΠΎΠ±Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ RDD
import org.apache.spark.rdd.RDD
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Spark, Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ SparkContext
. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Spark, ΡΠΌ. ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Spark.
ΠΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ² - ΡΡΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΡΠ»ΡΡΠΈΠ³ΡΠ°Ρ.
Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅ ΠΈ ΡΠ΅Π±ΡΡ. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΌΡΠ»ΡΡΠΈΠ³ΡΠ°Ρ - ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ
Π³ΡΠ°Ρ Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π±ΡΠ°ΠΌΠΈ, ΡΠ°Π·Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΠΈ ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ.Π
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
ΠΊΡΠΎΠΌΠΎΠΊ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΈ Π΄ΡΡΠ³) ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ( VertexId
). GraphX ββΠ½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π²Π΅ΡΡΠΈΠ½. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π±ΡΠ°ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΠ½Ρ.
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ.
ΠΡΠ°ΡΠΈΠΊ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ ( VD,
) ΠΈ ΡΠ΅Π±ΡΠ° ( ED
).ΠΡΠΈ
- ΡΡΠΎ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½ΠΎΠΉ ΠΈ ΡΠ΅Π±ΡΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
GraphX ββΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, int, double ΠΈ Ρ. Π΄.), ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ Π³ΡΠ°ΡΠ΅. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡΠ΄ΠΎΠ»ΡΠ½ΡΠΉ Π³ΡΠ°Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΊΠ»Π°ΡΡ VertexProperty ()
case class UserProperty (ΠΈΠΌΡ val: String) ΡΠ°ΡΡΠΈΡΡΠ΅Ρ VertexProperty
case class ProductProperty (val name: String, val price: Double) ΡΠ°ΡΡΠΈΡΡΠ΅Ρ VertexProperty
// Π’ΠΎΠ³Π΄Π° Π³ΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ:
var graph: Graph [VertexProperty, String] = null
ΠΠ°ΠΊ ΠΈ RDD, Π³ΡΠ°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²Ρ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π³ΡΠ°ΡΠ° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° (Ρ.Π΅. Π½Π΅Π·Π°ΡΡΠΎΠ½ΡΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ) ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π³ΡΠ°ΡΠ΅, ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . Π ΠΡΠ°Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΄Π° ΡΠ²ΡΠΈΡΡΠΈΠΊ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ RDD, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·Π΄Π΅Π» Π³ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π½ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π³ΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ (RDD), ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ°. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π½Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ Π³ΡΠ°ΡΠ°:
class Graph [VD, ED] {
val Π²Π΅ΡΡΠΈΠ½Ρ: VertexRDD [VD]
val Edge: EdgeRDD [ED]
}
ΠΠ»Π°ΡΡΡ VertexRDD [VD]
ΠΈ EdgeRDD [ED]
ΡΠ°ΡΡΠΈΡΡΡΡ ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ RDD [(VertexId,
VD)]
ΠΈ RDD [Edge [ED]]
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.Π VertexRDD [VD]
, ΠΈ EdgeRDD [ED]
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅
ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ VertexRDD
VertexRDD ΠΈ EdgeRDD
EdgeRDD API Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ ΠΈ ΡΠ΅Π±ΡΠ°ΠΌ
RDD, Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ RDD ΡΠΎΡΠΌΡ: RDD [(VertexId, VD)]
ΠΈ RDD [Edge [ED]]
.
ΠΡΠΈΠΌΠ΅Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² GraphX. ΠΏΡΠΎΠ΅ΠΊΡ.Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΎΠ΄ Π·Π°Π½ΡΡΠΈΠΉ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΠ°Ρ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ°Π²ΡΠΎΡΠ°ΠΌΠΈ:
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΠΈΠΏΠ°:
val userGraph: Graph [(String, String), String]
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΠ· Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², RDD ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»ΠΈ Π³ΡΠ°ΡΠΎΠ².ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΌΡΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ±ΡΠ΅ΠΊΡ Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄ ΡΡΡΠΎΠΈΡ Π³ΡΠ°Ρ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° RDD:
// ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ SparkContext ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½
val sc: SparkContext
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ RDD Π΄Π»Ρ Π²Π΅ΡΡΠΈΠ½
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ val: RDD [(VertexId, (String, String))] =
sc.parallelize (Seq ((3L, ("rxin", "ΡΡΡΠ΄Π΅Π½Ρ")), (7L, ("jgonzal", "postdoc")),
(5L, ("ΡΡΠ°Π½ΠΊΠ»ΠΈΠ½", "ΠΏΡΠΎΡ")), (2Π, ("ΠΈΡΡΠΎΠΉΠΊΠ°", "ΠΏΡΠΎΡ"))))
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ RDD Π΄Π»Ρ ΡΠ΅Π±Π΅Ρ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ val: RDD [Edge [String]] =
sc.ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡ (Seq (Edge (3L, 7L, "ΠΊΠΎΠ»Π»Π°Π±"), Edge (5L, 3L, "Advisor"),
Edge (2L, 5L, Β«ΠΊΠΎΠ»Π»Π΅Π³Π°Β»), Edge (5L, 7L, Β«ΠΏΠΈΒ»)))
// ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ²ΡΠ·Ρ Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
val defaultUser = ("ΠΠΆΠΎΠ½ ΠΠΎΡ", "ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ")
// Π‘ΡΡΠΎΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ
val graph = Graph (users, Relationship, defaultUser)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ case Edge
. ΠΡΠ°Ρ ΠΈΠΌΠ΅ΡΡ srcId
ΠΈ dstId
, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Edge
class ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ attr
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ
ΡΠ°Π½ΠΈΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ edge.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°Ρ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄Ρ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ graph.vertices
ΠΈ graph.edges
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
val graph: Graph [(String, String), String] // ΠΠΎΡΡΡΠΎΠ΅Π½ ΡΠ²Π΅ΡΡ
Ρ
// ΠΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊΠ°ΠΌΠΈ
graph.vertices.filter {case (id, (name, pos)) => pos == "postdoc"} .count
// ΠΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΠ΅Π±ΡΠ°, Π³Π΄Π΅ src> dst
Π³ΡΠ°ΡΠΈΠΊ.Edge.filter (e => e.srcId> e.dstId) .count
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ
graph.vertices
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡVertexRDD [(String, String)]
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅ΡRDD [(VertexId, (String, String))]
ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ scalacase
Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠΎΡΡΠ΅ΠΆ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ,graph.edges
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡEdgeRDD
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡEdge [String]
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ° case, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Π³ΡΠ°ΡΠΈΠΊ.Edge.filter {case Edge (src, dst, prop) => src> dst} .count
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ Π³ΡΠ°ΡΠ° ΡΠ²ΠΎΠΉΡΡΠ² GraphX ββΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠΏΠ»Π΅ΡΠ°.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠΏΠ»Π΅ΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ°, Π΄Π°Π²Π°Ρ RDD [EdgeTriplet [VD, ED]]
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° EdgeTriplet
. ΠΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ SQL:
ΠΠ«ΠΠΠ ΠΠ’Π src.id, dst.id, src.attr, e.attr, dst.attr
FROM ΡΠ΅Π±Π΅Ρ AS e LEFT JOIN Π²Π΅ΡΡΠΈΠ½Ρ AS src, Π²Π΅ΡΡΠΈΠ½Ρ AS dst
ON e.srcId = src.Id AND e.dstId = dst.Id
ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΊ:
ΠΠ»Π°ΡΡ EdgeTriplet
ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Edge
, Π΄ΠΎΠ±Π°Π²Π»ΡΡ srcAttr
ΠΈ dstAttr
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΡΡΠΎΠΉΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Π±ΠΎΡΠ° ΡΡΡΠΎΠΊ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
val graph: Graph [(String, String), String] // ΠΠΎΡΡΡΠΎΠ΅Π½ ΡΠ²Π΅ΡΡ
Ρ
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΠΏΠ»Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π‘ΠΠ ΡΠ°ΠΊΡΠΎΠ².val ΡΠ°ΠΊΡΡ: RDD [String] =
graph.triplets.map (ΡΡΠΈΠΏΠ»Π΅Ρ =>
triplet.srcAttr._1 + "ΡΠ²Π»ΡΠ΅ΡΡΡ" + triplet.attr + "ΠΈΠ·" + triplet.dstAttr._1)
fact.collect.foreach (println (_))
Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ RDD ΠΈΠΌΠ΅ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ map
, filter
ΠΈ reduceByKey
, Π³ΡΠ°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ°ΠΊΠΆΠ΅
ΠΈΠΌΠ΅ΡΡ Π½Π°Π±ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Ρ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΡΡΠΊΡΡΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Graph
ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² GraphOps
.ΠΠ΄Π½Π°ΠΊΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Scala ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² GraphOps
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ Graph
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ
Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² GraphOps
) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π³ΡΠ°ΡΠΈΠΊ val: ΠΡΠ°ΡΠΈΠΊ [(Π‘ΡΡΠΎΠΊΠ°, Π‘ΡΡΠΎΠΊΠ°), Π‘ΡΡΠΎΠΊΠ°]
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° GraphOps.inDegrees
val inDegrees: VertexRDD [Int] = graph.inDegrees
ΠΡΠΈΡΠΈΠ½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ GraphOps
Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π²
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ² Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² GraphOps
.
Π‘Π²ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² Graph
ΠΈ GraphOps
, Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΡΠ»Π΅Π½Ρ Graph. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ
ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±ΡΠ»ΠΈ ΡΠΏΡΠΎΡΠ΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅
ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ API Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
/ ** ΠΠ±Π·ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π³ΡΠ°ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² * /
class Graph [VD, ED] {
// ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ΅ ============================================ =======================
val numEdges: Long
val numVertices: Long
val inDegrees: VertexRDD [Int]
val outDegrees: VertexRDD [Int]
val Π³ΡΠ°Π΄ΡΡΠΎΠ²: VertexRDD [Int]
// ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ============================================ ===================
val Π²Π΅ΡΡΠΈΠ½Ρ: VertexRDD [VD]
val Edge: EdgeRDD [ED]
ΡΡΠΈΠΏΠ»Π΅ΡΡ val: RDD [EdgeTriplet [VD, ED]]
// Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ============================================== ======================
def persist (newLevel: StorageLevel = StorageLevel.MEMORY_ONLY): Π³ΡΠ°ΡΠΈΠΊ [VD, ED]
def cache (): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def unpersistVertices (Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°: Boolean = false): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
// ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ============================================ ================
def partitionBy (partitionStrategy: PartitionStrategy): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
// ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ° ============================================= ===============
def mapVertices [VD2] (map: (VertexId, VD) => VD2): ΠΡΠ°ΡΠΈΠΊ [VD2, ED]
def mapEdges [ED2] (map: Edge [ED] => ED2): ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
def mapEdges [ED2] (ΠΊΠ°ΡΡΠ°: (PartitionID, Iterator [Edge [ED]]) => Iterator [ED2]): ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
def mapTriplets [ED2] (ΠΊΠ°ΡΡΠ°: EdgeTriplet [VD, ED] => ED2): ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
def mapTriplets [ED2] (ΠΊΠ°ΡΡΠ°: (PartitionID, Iterator [EdgeTriplet [VD, ED]]) => Iterator [ED2])
: ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
// ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ Π³ΡΠ°ΡΠΈΠΊΠ° ============================================== ========================
def reverse: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def ΠΏΠΎΠ΄Π³ΡΠ°Ρ (
epred: EdgeTriplet [VD, ED] => Boolean = (x => true),
vpred: (VertexId, VD) => Boolean = ((v, d) => true))
: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def mask [VD2, ED2] (Π΄ΡΡΠ³ΠΎΠ΅: Graph [VD2, ED2]): Graph [VD, ED]
def groupEdges (merge: (ED, ED) => ED): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
// ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ RDD Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ =========================================== ===========================
def joinVertices [U] (ΡΠ°Π±Π»ΠΈΡΠ°: RDD [(VertexId, U)]) (mapFunc: (VertexId, VD, U) => VD): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def externalJoinVertices [U, VD2] (Π΄ΡΡΠ³ΠΎΠ΅: RDD [(VertexId, U)])
(mapFunc: (VertexId, VD, Option [U]) => VD2)
: ΠΡΠ°ΡΠΈΠΊ [VD2, ED]
// Π‘Π²ΠΎΠ΄Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ
ΡΡΠΎΠΉΠΊΠ°Ρ
=========================================== ======
def collectNeighborIds (edgeDirection: EdgeDirection): VertexRDD [ΠΌΠ°ΡΡΠΈΠ² [VertexId]]
def collectNeighbors (edgeDirection: EdgeDirection): VertexRDD [Array [(VertexId, VD)]]
def aggregateMessages [Msg: ClassTag] (
sendMsg: EdgeContext [VD, ED, Msg] => ΠΠ΄ΠΈΠ½ΠΈΡΠ°,
mergeMsg: (Msg, Msg) => Msg,
tripletFields: TripletFields = TripletFields.ΠΡΠ΅)
: VertexRDD [A]
// ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ Π³ΡΠ°ΡΠΎ-ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ============================================= ===============
def pregel [A] (initialMsg: A, maxIterations: Int, activeDirection: EdgeDirection) (
vprog: (VertexId, VD, A) => VD,
sendMsg: EdgeTriplet [VD, ED] => ΠΡΠ΅ΡΠ°ΡΠΎΡ [(VertexId, A)],
mergeMsg: (Π, Π) => Π)
: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
// ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π³ΡΠ°ΡΠ° =============================================== ===========================
def pageRank (tol: Double, resetProb: Double = 0.15): ΠΡΠ°ΡΠΈΠΊ [ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ, ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ]
def connectedComponents (): ΠΡΠ°ΡΠΈΠΊ [VertexId, ED]
def ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊCount (): ΠΡΠ°ΡΠΈΠΊ [Int, ED]
def StrongConnectedComponents (numIter: Int): ΠΡΠ°ΡΠΈΠΊ [VertexId, ED]
}
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ
ΠΠ°ΠΊ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ RDD map
, Π³ΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
class Graph [VD, ED] {
def mapVertices [VD2] (map: (VertexId, VD) => VD2): ΠΡΠ°ΡΠΈΠΊ [VD2, ED]
def mapEdges [ED2] (map: Edge [ED] => ED2): ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
def mapTriplets [ED2] (ΠΊΠ°ΡΡΠ°: EdgeTriplet [VD, ED] => ED2): ΠΡΠ°ΡΠΈΠΊ [VD, ED2]
}
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΠ»ΠΈ ΡΠ΅Π±ΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΡΡΠ°
ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΡΡΠΊΡΡΡΠ° Π³ΡΠ°ΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌΡ Π³ΡΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ, Π½ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ Π½Π΅ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΎΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ GraphX:
val newVertices = graph.vertices.map {case (id, attr) => (id, mapUdf (id, attr))}
val newGraph = ΠΡΠ°ΡΠΈΠΊ (newVertices, graph.ΠΊΡΠ°Ρ)
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
mapVertices
Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²:
val newGraph = graph.mapVertices ((id, attr) => mapUdf (id, attr))
ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠ° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π³ΡΠ°ΡΠ° Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΡΠΌΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ² Π²Π΅ΡΡΠΈΠ½Ρ (ΠΌΡ ΠΎΠΏΠΈΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ Π³ΡΠ°Ρ ΠΏΠΎΠ·ΠΆΠ΅), ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄Π»Ρ PageRank:
// ΠΠ°Π½ Π³ΡΠ°ΡΠΈΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ
val inputGraph: Graph [Int, String] =
Π³ΡΠ°ΡΠΈΠΊ.externalJoinVertices (graph.outDegrees) ((vid, _, degOpt) => degOpt.getOrElse (0))
// ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΅Π±ΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π΅Ρ
// ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° - ΡΡΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ PageRank
val outputGraph: ΠΡΠ°ΡΠΈΠΊ [Double, Double] =
inputGraph.mapTriplets (ΡΡΠΈΠΏΠ»Π΅Ρ => 1.0 / triplet.srcAttr) .mapVertices ((id, _) => 1.0)
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ GraphX ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΈ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
class Graph [VD, ED] {
def reverse: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
ΠΏΠΎΠ΄Π³ΡΠ°Ρ def (epred: EdgeTriplet [VD, ED] => Boolean,
vpred: (VertexId, VD) => Boolean): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def mask [VD2, ED2] (Π΄ΡΡΠ³ΠΎΠ΅: Graph [VD2, ED2]): Graph [VD, ED]
def groupEdges (merge: (ED, ED) => ED): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
}
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ reverse
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°Ρ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Ρ
ΡΠ΅Π±Π΅Ρ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ PageRank.ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΠ»ΠΈ ΡΠ΅Π±ΡΠ° ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ subgraph
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΡΠ°Ρ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½ (ΠΈΡΡΠΈΠ½Π½ΠΎ), ΠΈ ΡΠ΅Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅
ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ ΡΠ΅Π±ΡΠ° ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠΎΠ΄ΠΏΡΠ½ΠΊΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΡΠ΄Π΅ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π³ΡΠ°Ρ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ ΠΈ ΡΠ΅Π±ΡΠ°ΠΌΠΈ
Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠ°Π½ΠΈΡΡ Π±ΠΈΡΡΠ΅ ΡΡΡΠ»ΠΊΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ:
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ RDD Π΄Π»Ρ Π²Π΅ΡΡΠΈΠ½
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ val: RDD [(VertexId, (String, String))] =
sc.parallelize (Seq ((3L, ("rxin", "ΡΡΡΠ΄Π΅Π½Ρ")), (7L, ("jgonzal", "postdoc")),
(5L, ("ΡΡΠ°Π½ΠΊΠ»ΠΈΠ½", "ΠΏΡΠΎΡ")), (2Π, ("ΠΈΡΡΠΎΠΉΠΊΠ°", "ΠΏΡΠΎΡ")),
(4Π, ("ΠΏΠΈΡΠ΅Ρ", "ΡΡΡΠ΄Π΅Π½Ρ"))))
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ RDD Π΄Π»Ρ ΡΠ΅Π±Π΅Ρ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ val: RDD [Edge [String]] =
sc.parallelize (Seq (Edge (3L, 7L, Β«ΠΊΠΎΠ»Π»Π°Π±Β»), Edge (5L, 3L, Β«ΡΠΎΠ²Π΅ΡΠ½ΠΈΠΊΒ»),
Edge (2L, 5L, Β«ΠΊΠΎΠ»Π»Π΅Π³Π°Β»), Edge (5L, 7L, Β«ΠΏΠΈΒ»),
Edge (4L, 0L, Β«ΡΡΡΠ΄Π΅Π½ΡΒ»), Edge (5L, 0L, Β«ΠΊΠΎΠ»Π»Π΅Π³Π°Β»)))
// ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ²ΡΠ·Ρ Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
val defaultUser = ("ΠΠΆΠΎΠ½ ΠΠΎΡ", "ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ")
// Π‘ΡΡΠΎΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ
val graph = ΠΡΠ°ΡΠΈΠΊ (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ, defaultUser)
// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 0 (ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ
// 4 (ΠΠΈΡΠ΅Ρ) ΠΈ 5 ββ(Π€ΡΠ°Π½ΠΊΠ»ΠΈΠ½).graph.triplets.map (
triplet => triplet.srcAttr._1 + "- ΡΡΠΎ" + triplet.attr + "ΠΈΠ·" + triplet.dstAttr._1
) .collect.foreach (println (_))
// Π£Π΄Π°Π»ΡΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠ΅Π±ΡΠ°
val validGraph = graph.subgraph (vpred = (id, attr) => attr._2! = "ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ")
// ΠΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΏΠΎΠ΄Π³ΡΠ°Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ 4 ΠΈ 5, ΡΠ΄Π°Π»ΠΈΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 0
validGraph.vertices.collect.foreach (println (_))
validGraph.triplets.map (
triplet => triplet.srcAttr._1 + "+ triplet.attr +" ΠΈΠ· "+ triplet".dstAttr._1
) .collect.foreach (println (_))
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠΎΠ΄Π³ΡΠ°Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠΈΡΡΠΈΠ½Π°
, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½ ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅Ρ.
ΠΠ°ΡΠΊΠ° ΠΠΏΠ΅ΡΠ°ΡΠΎΡ
ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄Π³ΡΠ°Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π³ΡΠ°Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ
Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ Π³ΡΠ°ΡΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ subgraph
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ² Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Π³ΡΠ°ΡΠ΅.ΠΠ»Ρ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³ΡΠ°Ρ Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ
ΠΎΡΠ²Π΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Π³ΡΠ°Ρ.
// ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
val ccGraph = graph.connectedComponents () // ΠΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Ρ
// Π£Π΄Π°Π»ΡΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠ΅Π±ΡΠ°
val validGraph = graph.subgraph (vpred = (id, attr) => attr._2! = "ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ")
// ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΠΎΡΠ²Π΅Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΏΠΎΠ΄Π³ΡΠ°ΡΠΎΠΌ
val validCCGraph = ccGraph.mask (validGraph)
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ groupEdges
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π±ΡΠ° (Ρ.Π΅.Π΅., Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ
ΠΏΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½) Π² ΠΌΡΠ»ΡΡΠΈΠ³ΡΠ°ΡΠ΅. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π±ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (ΠΈΡ
Π²Π΅ΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ) Π² ΠΎΠ΄Π½ΠΎ ΡΠ΅Π±ΡΠΎ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π³ΡΠ°ΡΠ°.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ (RDD) Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ Π³ΡΠ°ΡΠΎΠΌ, ΠΈΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ.ΠΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² join . ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:
class Graph [VD, ED] {
def joinVertices [U] (ΡΠ°Π±Π»ΠΈΡΠ°: RDD [(VertexId, U)]) (ΠΊΠ°ΡΡΠ°: (VertexId, VD, U) => VD)
: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def externalJoinVertices [U, VD2] (ΡΠ°Π±Π»ΠΈΡΠ°: RDD [(VertexId, U)]) (ΠΊΠ°ΡΡΠ°: (VertexId, VD, Option [U]) => VD2)
: ΠΡΠ°ΡΠΈΠΊ [VD2, ED]
}
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ joinVertices
ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠ½Ρ Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ RDD ΠΈ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²Π΅ΡΡΠΈΠ½, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ map
ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ
Π²Π΅ΡΡΠΈΠ½.ΠΠ΅ΡΡΠΈΠ½Ρ Π±Π΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² RDD ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ
ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ RDD ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ. ΠΡΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ RDD ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
val nonUniqueCosts: RDD [(VertexId, Double)]
val uniqueCosts: VertexRDD [Double] =
Π³ΡΠ°ΡΠΈΠΊ.vertices.aggregateUsingIndex (nonUnique, (a, b) => a + b)
val connectedGraph = graph.joinVertices (uniqueCosts) (
(id, oldCost, extraCost) => oldCost + extraCost)
ΠΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΉ outerJoinVertices
Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ joinVertices
Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ map
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ
ΡΠΈΠΏ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ Π‘ΠΠ , ΠΊΠ°ΡΡΠ°
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠΏ Option
.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π΄Π»Ρ PageRank, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π²
ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½Ρ Ρ ΠΈΡ
outDegree
.
val outDegrees: VertexRDD [Int] = graph.outDegrees
val degreeGraph = graph.outerJoinVertices (outDegrees) {(id, oldAttr, outDegOpt) =>
outDegOpt match {
case ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ (outDeg) => outDeg
case None => 0 // ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ outDegree ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ outDegree
}
}
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
f (a) (b)
). Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .Π₯ΠΎΡΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π² ΡΠ°Π²Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡf (a) (b)
ΠΊΠ°ΠΊf (a, b)
, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ Π±Ρ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π»Ρb
Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡa
. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ:
val connectedGraph = graph.joinVertices (uniqueCosts,
(id: VertexId, oldCost: Double, extraCost: Double) => oldCost + extraCost)
Π Π°ΠΉΠΎΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΡΠ°ΠΏΠΎΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°ΡΠ°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΡΠ΅Π΄ΡΡΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅ΡΡΠΈΠ½Π°.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PageRank, ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ) ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΠΈΠ΅ PageRank Value, ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ).
ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ
graph.mapReduce ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ
Π² Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ.ΠΠ³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
. ΠΠΎΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² API ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ, Π½ΠΈΠΆΠ΅ ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ.
Π‘Π²ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (aggregateMessages)
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² GraphX ββ- aggregateMessages
.
ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ sendMsg
ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠΈΠΏΠ»Π΅ΡΡ ΡΠ΅Π±Π΅Ρ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅.
Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ mergeMsg
Π΄Π»Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΈΡ
ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅.
class Graph [VD, ED] {
def aggregateMessages [Msg: ClassTag] (
sendMsg: EdgeContext [VD, ED, Msg] => ΠΠ΄ΠΈΠ½ΠΈΡΠ°,
mergeMsg: (Msg, Msg) => Msg,
tripletFields: TripletFields = TripletFields.ΠΡΠ΅)
: VertexRDD [Msg]
}
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ sendMsg
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ EdgeContext
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ
Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°ΡΡΠΈΠ±ΡΡ ΠΊΡΠ°Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
( sendToSrc
ΠΈ sendToDst
) Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ sendMsg
ΠΊΠ°ΠΊ ΠΎ ΠΊΠ°ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π² map-reduce.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ mergeMsg
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΈ
Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ mergeMsg
ΠΊΠ°ΠΊ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ reduce Π² map-reduce.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ aggregateMessages
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ VertexRDD [Msg]
.
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (ΡΠΈΠΏΠ° Msg
), Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅. ΠΠ΅ΡΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ
ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ VertexRDD
VertexRDD.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, aggregateMessages
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ tripletsFields
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ Π² EdgeContext
(Ρ.Π΅., Π°ΡΡΠΈΠ±ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ, Π½ΠΎ Π½Π΅ Π°ΡΡΠΈΠ±ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ tripletFields
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² TripletFields
ΠΈ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - TripletFields.All
, ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ sendMsg
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π² EdgeContext
.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ tripletFields
ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ GraphX ββΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ EdgeContext
ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ GraphX ββΠΌΠΎΠ³ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ
ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TripletFields.Src
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΌΡ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°
Π Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ GraphX ββΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°
TripletFields
, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ±ΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ aggregateMessages
, ΡΡΠΎΠ±Ρ
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΡΡΠ°ΡΡΠΈΡ
ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
import org.apache.spark.graphx. {Graph, VertexRDD}
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ org.apache.spark.graphx.util.GraphGenerators
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΠ°Ρ Ρ "Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½Ρ.
// ΠΠ΄Π΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ.
val Π³ΡΠ°ΡΠΈΠΊ: ΠΡΠ°ΡΠΈΠΊ [Double, Int] =
GraphGenerators.logNormalGraph (sc, numVertices = 100) .mapVertices ((id, _) => id.toDouble)
// ΠΡΡΠΈΡΠ»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ° ΠΈ ΠΈΡ
ΠΎΠ±ΡΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ
val oldFollowers: VertexRDD [(Int, Double)] = graph.aggregateMessages [(Int, Double)] (
triplet => {// Π€ΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΡΡΡ
Π΅ΡΠ»ΠΈ (ΡΡΠΈΠΏΠ»Π΅Ρ.srcAttr> triplet.dstAttr) {
// ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π²Π΅ΡΡΠΈΠ½Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΡΠ΅ΡΡΠΈΠΊ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ
triplet.sendToDst ((1, triplet.srcAttr))
}
},
// ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ
(a, b) => (a._1 + b._1, a._2 + b._2) // Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ
)
// Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΎΠ±ΡΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°
val avgAgeOfOlderFollowers: VertexRDD [Double] =
oldFollowers.mapValues ββ((ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) =>
ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ {case (count, totalAge) => totalAge / count})
// ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ
avgAgeOfOlderFollowers.collect.foreach (println (_))
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π² Β«examples / src / main / scala / org / apache / spark / examples / graphx / AggregateMessagesExample.scalaΒ» Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ
aggregateMessages
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΈ ΡΡΠΌΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ) ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ).
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π½Π° ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΡΠΎΠ΅ΠΊ (ΡΡΡΠ°ΡΠ΅Π²ΡΠ°Ρ Π²Π΅ΡΡΠΈΡ)
Π Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
GraphX ββΠ°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΡΠ΅ΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ mapReduceTriplets
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ:
class Graph [VD, ED] {
def mapReduceTriplets [Msg] (
ΠΊΠ°ΡΡΠ°: EdgeTriplet [VD, ED] => ΠΡΠ΅ΡΠ°ΡΠΎΡ [(VertexId, Msg)],
ΡΠΌΠ΅Π½ΡΡΠΈΡΡ: (Msg, Msg) => Msg)
: VertexRDD [Msg]
}
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ mapReduceTriplets
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠΈΠΏΠ»Π΅ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ
.ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΈ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π»ΠΎ Π½Π°ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²Π΅ΡΡΠΈΠ½).
Π aggregateMessages
ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ EdgeContext, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ
ΠΏΠΎΠ»Ρ ΡΡΠΈΠΏΠ»Π΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ²Π½ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΠΈ ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ
Π² ΡΡΠΎΠΉΠΊΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΡΡΡΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ mapReduceTriplets
:
Π³ΡΠ°ΡΠΈΠΊ val: ΠΡΠ°ΡΠΈΠΊ [Int, Float] =...
def msgFun (ΡΡΠΈΠΏΠ»Π΅Ρ: Triplet [Int, Float]): Iterator [(Int, String)] = {
ΠΡΠ΅ΡΠ°ΡΠΎΡ ((triplet.dstId, "Hi"))
}
def reduceFun (a: String, b: String): String = a + "" + b
val result = graph.mapReduceTriplets [String] (msgFun, reduceFun)
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ aggregateMessages
ΠΊΠ°ΠΊ:
Π³ΡΠ°ΡΠΈΠΊ val: ΠΡΠ°ΡΠΈΠΊ [Int, Float] = ...
def msgFun (ΡΡΠΈΠΏΠ»Π΅Ρ: EdgeContext [Int, Float, String]) {
triplet.sendToDst ("ΠΡΠΈΠ²Π΅Ρ")
}
def reduceFun (a: String, b: String): String = a + "" + b
val result = graph.aggregateMessages [String] (msgFun, reduceFun)
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠ²Π½Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΠ±ΡΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π±Π΅Ρ, ΡΠΌΠ΅ΠΆΠ½ΡΡ
Ρ
ΠΊΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠ½Π°. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΠ°ΡΠΎΠ² ΡΠ°ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ,
ΠΈΡΡ
ΠΎΠ΄ΡΡΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΈ ΠΎΠ±ΡΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠ»Π°ΡΡ GraphOps
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠΆΠ΅ ΠΌΡ
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅, Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π³ΡΠ°Π΄ΡΡΡ:
// ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π°ΠΈΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ
def max (a: (VertexId, Int), b: (VertexId, Int)): (VertexId, Int) = {
Π΅ΡΠ»ΠΈ._2> b._2) a ΠΈΠ½Π°ΡΠ΅ b
}
// ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π³ΡΠ°Π΄ΡΡΡ
val maxInDegree: (VertexId, Int) = graph.inDegrees.reduce (ΠΌΠ°ΠΊΡ.)
val maxOutDegree: (VertexId, Int) = graph.outDegrees.reduce (ΠΌΠ°ΠΊΡ.)
val maxDegrees: (VertexId, Int) = graph.degrees.reduce (max)
Π‘Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠΎΡΠ΅Π΄ΡΡ
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ Π²ΡΡΠ°Π·ΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅, ΡΠΎΠ±ΠΈΡΠ°Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΠΈΡ
Π°ΡΡΠΈΠ±ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅. ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ collectNeighborIds
ΠΈ collectNeighbours
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°.
class GraphOps [VD, ED] {
def collectNeighborIds (edgeDirection: EdgeDirection): VertexRDD [ΠΌΠ°ΡΡΠΈΠ² [VertexId]]
def collectNeighbors (edgeDirection: EdgeDirection): VertexRDD [Array [(VertexId, VD)]]
}
ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π΄ΡΠ±Π»ΠΈΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠΎ ΠΆΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
aggregateMessages
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Spark RDD ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ²Π½ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ (ΡΠΌ. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Spark). ΠΡΠ°ΡΠΈΠΊΠΈ Π² GraphX ββΠ²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅. ΠΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ Graph.cache ()
.
Π ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ uncaching . ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ RDD ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π²ΡΠ½ΡΠ΄ΠΈΡ ΠΈΡ ΡΠ΄Π°Π»ΠΈΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ LRU. ΠΠ»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ΅Ρ.Π₯ΠΎΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΡΠ΅Π»Π΅Π½Ρ, Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°ΠΌΠ΅Π΄Π»ΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ°. ΠΡΠ»ΠΎ Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ· ΠΊΠ΅ΡΠ°, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅) Π³ΡΠ°ΡΠ° ΠΈΠ»ΠΈ RDD Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π³ΡΠ°ΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ RDD, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ΄Π½ΠΎ ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ. ΠΠ»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Pregel API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΡΠ°ΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΡ ΡΠΎΡΠ΅Π΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π³ΡΠ°ΡΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΡΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΡΠ΄ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π³ΡΠ°ΡΠ°ΠΌ. ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. GraphX ββΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈΠ°Π½Ρ Pregel API.
ΠΠ° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Pregel Π² GraphX ββΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π³ΡΠ°ΡΠ° .ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Pregel Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠΈΡ ΡΡΠΏΠ΅ΡΡΠ°Π³ΠΎΠ². Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π΅ΡΡΠΈΠ½Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΌΠΌΡ ΡΠ²ΠΎΠΈΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΡΠ°Π³Π°, Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΏΠ΅Ρ ΡΠ°Π³. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Pregel, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠΈΠΏΠ»Π΅ΡΠ° ΡΠ΅Π±Π΅Ρ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊ ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ, ΡΠ°ΠΊ ΠΈ ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠ΅ΡΡΠΈΠ½Ρ, Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΡΡΠΏΠ΅Ρ ΡΠ°Π³.ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Pregel Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Pregel, Π²Π΅ΡΡΠΈΠ½Ρ Π² GraphX ββΠΌΠΎΠ³ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² GraphX.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠΈΠΏΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Pregel, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΊΠΈΠ· Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ stackOverflowError ΠΈΠ·-Π·Π° Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° pregel ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Β«spark.graphx.pregel.checkpointInterval βΠ½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΊΠ°ΠΆΠ΅ΠΌ 10. Π ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SparkContext.setCheckpointDir (directory: String)):
class GraphOps [VD, ED] {
def pregel [A]
(initialMsg: A,
maxIter: Int = Int.MaxValue,
activeDir: EdgeDirection = EdgeDirection.Out)
(vprog: (VertexId, VD, A) => VD,
sendMsg: EdgeTriplet [VD, ED] => ΠΡΠ΅ΡΠ°ΡΠΎΡ [(VertexId, A)],
mergeMsg: (Π, Π) => Π)
: ΠΡΠ°ΡΠΈΠΊ [VD, ED] = {
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅
var g = mapVertices ((vid, vdata) => vprog (vid, vdata, initialMsg)).ΠΊΠ΅Ρ ()
// Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
var messages = GraphXUtils.mapReduceTriplets (g, sendMsg, mergeMsg)
var activeMessages = messages.count ()
// Π¦ΠΈΠΊΠ» Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ maxIterations
var i = 0
while (activeMessages> 0 && i
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Pregel ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (Ρ. Π. graph.pregel (list1) (list2)
). ΠΠ΅ΡΠ²ΠΎΠ΅
ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΠ°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Π΄ΠΎΠ»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΊΡΠ°Π΅Π²).Π
Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Π²Π΅ΡΡΠΈΠ½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° vprog
), Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ( sendMsg
) ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ mergeMsg
.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Pregel Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠΉ ΠΏΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
import org.apache.spark.graphx. {Graph, VertexId}
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ org.apache.spark.graphx.util.GraphGenerators
// ΠΡΠ°Ρ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΠ΅Π±Π΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ
val Π³ΡΠ°ΡΠΈΠΊ: ΠΡΠ°ΡΠΈΠΊ [Long, Double] =
GraphGenerators.logNormalGraph (sc, numVertices = 100) .mapEdges (e => e.attr.toDouble)
val sourceId: VertexId = 42 // ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π³ΡΠ°Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠΎΡΠ½Ρ, ΠΈΠΌΠ΅Π»ΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅.
val initialGraph = graph.mapVertices ((id, _) =>
if (id == sourceId) 0.0 ΠΈΠ½Π°ΡΠ΅ Double.PositiveInfinity)
val sssp = initialGraph.pregel (Double.PositiveInfinity) (
(id, dist, newDist) => math.min (dist, newDist), // ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π΅ΡΡΠΈΠ½
triplet => {// ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Π΅ΡΠ»ΠΈ (triplet.srcAttr + triplet.attr math.min (a, b) // ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
)
println (sssp.vertices.collect.mkString ("\ n"))
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π² Β«examples / src / main / scala / org / apache / spark / examples / graphx / SSSPExample.scalaΒ» Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
GraphX ββΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° ΠΈΠ· Π½Π°Π±ΠΎΡΠ° Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ Π² RDD ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅.ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Π΅ΠΉ Π³ΡΠ°ΡΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΠ΅Π±ΡΠ° Π³ΡΠ°ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ; Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΡΠ°Ρ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
Π±Π»ΠΎΠΊΠ°Ρ
Π² HDFS). Graph.groupEdges
ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΡΠ΅Π±ΡΠ° Π±ΡΠ΄ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ Graph.partitionBy
ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ groupEdges
.
ΠΎΠ±ΡΠ΅ΠΊΡ GraphLoader {
def edgeListFile (
sc: SparkContext,
ΠΏΡΡΡ: ΡΡΡΠΎΠΊΠ°,
canonicalOrientation: Boolean = false,
minEdgePartitions: Int = 1)
: ΠΡΠ°ΡΠΈΠΊ [Int, Int]
}
GraphLoader.edgeListFile
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π³ΡΠ°ΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ΅Π±Π΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠ½ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ°Ρ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ) ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΌΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ #
:
# ΠΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
2 1
4 1
1 2
ΠΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ Graph
ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ΅Π±Π΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΌΠΈ. ΠΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½Ρ 1. ΠΡΠ³ΡΠΌΠ΅Π½Ρ canonicalOrientation
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±ΡΠ° Π² ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ( srcId
minEdgePartitions
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°Π½ΠΈΡΠ½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ; ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π³ΡΠ°Π½ΠΈΡΠ½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π΅ΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°ΠΉΠ»Π΅ HDFS Π±ΠΎΠ»ΡΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ².
ΠΎΠ±ΡΠ΅ΠΊΡ Graph {
def ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ [VD, ED] (
Π²Π΅ΡΡΠΈΠ½Ρ: RDD [(VertexId, VD)],
ΡΠ΅Π±ΡΠ°: RDD [Edge [ED]],
defaultVertexAttr: VD = Π½ΡΠ»Ρ)
: ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def fromEdges [VD, ED] (
ΡΠ΅Π±ΡΠ°: RDD [Edge [ED]],
defaultValue: VD): ΠΡΠ°ΡΠΈΠΊ [VD, ED]
def fromEdgeTuples [VD] (
rawEdges: RDD [(VertexId, VertexId)],
defaultValue: VD,
uniqueEdges: Option [PartitionStrategy] = None): ΠΡΠ°ΡΠΈΠΊ [VD, Int]
}
ΠΡΠ°ΡΠΈΠΊ.apply
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°Ρ ΠΈΠ· RDD Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ. ΠΡΠ±Π»ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ, ΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ Π² RDD ΡΠ΅Π±ΡΠ°, Π½ΠΎ Π½Π΅ RDD Π²Π΅ΡΡΠΈΠ½, Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Graph.fromEdges
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· RDD ΡΠ΅Π±Π΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΌΠΈ, ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Graph.fromEdgeTuples
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· RDD ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΡΠ΅Π±Π΅Ρ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ ΡΠ΅Π±ΡΠ°ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΌΠΈ, ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΊΡΠ°Π΅Π²; Π΄Π»Ρ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Some
ΠΈΠ· PartitionStrategy
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° uniqueEdges
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, uniqueEdges = Some (PartitionStrategy.RandomVertexCut)
). Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ
ΡΠ΅Π±Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΡΡΠΎΠ±Ρ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ.
GraphX ββΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ RDD
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ, Ρ
ΡΠ°Π½ΡΡΠΈΡ
ΡΡ Π² Π³ΡΠ°ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
GraphX ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ° Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΡΡΡΠΊΡΡΡΠ°Ρ
Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΡΠΈΡ
ΡΡΡΡΠΊΡΡΡΠ°Ρ
Π΄Π°Π½Π½ΡΡ
.
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅Π±ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ VertexRDD
VertexRDD ΠΈ EdgeRDD
EdgeRDD
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΈΡ
ΡΠΈΠΏΠΎΠ².
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΌ. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ API.
VertexRDD
VertexRDD [A]
ΡΠ°ΡΡΠΈΡΡΠ΅Ρ RDD [(VertexId, A)]
ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ VertexId
Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, VertexRDD [A]
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ , Π²Π΅ΡΡΠΈΠ½, ΠΊΠ°ΠΆΠ΄Π°Ρ Ρ
Π°ΡΡΠΈΠ±ΡΡ ΡΠΈΠΏΠ° Π
.ΠΠ½ΡΡΡΠ΅Π½Π½Π΅ ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π²Π΅ΡΡΠΈΠ½ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠΌ
ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
Ρ
ΡΡ-ΠΊΠ°ΡΡΡ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΄Π²Π° VertexRDD
ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π±Π°Π·Ρ VertexRDD
VertexRDD (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ filter
ΠΈΠ»ΠΈ mapValues ββ
) ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±Π΅Π· Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΎΡΠ΅Π½ΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, VertexRDD
VertexRDD ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»:
ΠΊΠ»Π°ΡΡ VertexRDD [VD] ΡΠ°ΡΡΠΈΡΡΠ΅Ρ RDD [(VertexId, VD)] {
// Π€ΠΈΠ»ΡΡΡΡΠ΅ΠΌ Π½Π°Π±ΠΎΡ Π²Π΅ΡΡΠΈΠ½, Π½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ
def filter (ΠΏΡΠ΅Π΄: Tuple2 [VertexId, VD] => Boolean): VertexRDD [VD]
// ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ)
def mapValues ββ[VD2] (ΠΊΠ°ΡΡΠ°: VD => VD2): VertexRDD [VD2]
def mapValues ββ[VD2] (ΠΊΠ°ΡΡΠ°: (VertexId, VD) => VD2): VertexRDD [VD2]
// ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠ½Ρ, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ
VertexId
def ΠΌΠΈΠ½ΡΡ (Π΄ΡΡΠ³ΠΎΠ΅: RDD [(VertexId, VD)])
// Π£Π΄Π°Π»ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅
def diff (Π΄ΡΡΠ³ΠΎΠ΅: VertexRDD [VD]): VertexRDD [VD]
// ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ)
def leftJoin [VD2, VD3] (Π΄ΡΡΠ³ΠΎΠ΅: RDD [(VertexId, VD2)]) (f: (VertexId, VD, Option [VD2]) => VD3): VertexRDD [VD3]
def innerJoin [U, VD2] (Π΄ΡΡΠ³ΠΎΠ΅: RDD [(VertexId, U)]) (f: (VertexId, VD, U) => VD2): VertexRDD [VD2]
// ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ³ΠΎ RDD Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ `reduceByKey` Π½Π°Π΄ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ RDD.def aggregateUsingIndex [VD2] (Π΄ΡΡΠ³ΠΎΠ΅: RDD [(VertexId, VD2)], reduceFunc: (VD2, VD2) => VD2): VertexRDD [VD2]
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ filter
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ VertexRDD
VertexRDD. Π€ΠΈΠ»ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ BitSet
, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ VertexRDD
s. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ mapValues ββ
Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ map
Π²ΡΠΏΠΎΠ»Π½ΡΡΡ
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ VertexId
, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
HashMap
.ΠΠ±Π° leftJoin
ΠΈ innerJoin
ΠΌΠΎΠ³ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π΄Π²ΡΡ
VertexRDD
, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ HashMap
ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΡΠ΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π½Π΅ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΡΠ΅ΠΊ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ aggregateUsingIndex
ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ VertexRDD
VertexRDD ΠΈΠ· Π‘ΠΠ [(VertexId, A)]
. ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠΎΡΡΡΠΎΠΈΠ» VertexRDD [B]
Π½Π°Π΄ Π½Π°Π±ΠΎΡΠΎΠΌ Π²Π΅ΡΡΠΈΠ½, , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½Π°Π±ΠΎΡΠΎΠΌ Π²Π΅ΡΡΠΈΠ½ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ RDD [(VertexId, A)]
, ΡΠΎΠ³Π΄Π° Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ
ΠΎΠ±Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡ RDD [(VertexId, A)]
.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
val setA: VertexRDD [Int] = VertexRDD (sc.parallelize (ΠΎΡ 0L Π΄ΠΎ 100L) .map (id => (id, 1)))
val rddB: RDD [(VertexId, Double)] = sc.parallelize (ΠΎΡ 0L Π΄ΠΎ 100L) .flatMap (id => List ((id, 1.0), (id, 2.0)))
// Π rddB Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ 200 Π·Π°ΠΏΠΈΡΠ΅ΠΉ
rddB.count
val setB: VertexRDD [Double] = setA.aggregateUsingIndex (rddB, _ + _)
// Π setB Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ 100 Π·Π°ΠΏΠΈΡΠ΅ΠΉ
setB.count
// Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ A ΠΈ B Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΡΡΡΡΠΌ!
val setC: VertexRDD [Double] = setA.innerJoin (setB) ((id, a, b) => a + b)
EdgeRDDs
EdgeRDD [ED]
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ RDD [Edge [ED]]
ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ ΠΊΡΠ°Ρ Π² Π±Π»ΠΎΠΊΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² PartitionStrategy
.Π
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·Π΄Π΅Π», ΠΊΡΠ°Π΅Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ
ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π’ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ EdgeRDD
EdgeRDD:
// ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΡΠ°Π΅Π² ΠΏΡΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ
def mapValues ββ[ED2] (f: Edge [ED] => ED2): EdgeRDD [ED2]
// ΠΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΊΡΠ°Ρ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ
def reverse: EdgeRDD [ED]
// Π‘ΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π΄Π²Π° `EdgeRDD`s, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ.def innerJoin [ED2, ED3] (Π΄ΡΡΠ³ΠΎΠ΅: EdgeRDD [ED2]) (f: (VertexId, VertexId, ED, ED2) => ED3): EdgeRDD [ED3]
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° EdgeRDD
EdgeRDD ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π·
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ RDD
.
Π₯ΠΎΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ GraphX ββΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ API.GraphX ββΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ°:
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π³ΡΠ°ΡΡ ΠΏΠΎ ΡΠ΅Π±ΡΠ°ΠΌ, GraphX ββΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π³ΡΠ°Ρ ΠΏΠΎ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ
ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ Π½Π° ΡΠ²ΡΠ·Ρ ΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π±Π΅Ρ
ΠΊ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½. Π’ΠΎΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΡΠ΅Π±Π΅Ρ
Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ PartitionStrategy
, ΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ² Π΄Π»Ρ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ.ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π³ΡΠ°ΡΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Graph.partitionBy
. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΡΠ΅Π±Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π³ΡΠ°ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ
ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° 2D-ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² GraphX.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π±ΡΠ° Π±ΡΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ, ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
Π³ΡΠ°Ρ-ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ:
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π²Π΅ΡΡΠΈΠ½Ρ Ρ ΡΠ΅Π±ΡΠ°ΠΌΠΈ.ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ
Π³ΡΠ°ΡΠ°Ρ
ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅
ΡΠ΅Π±ΡΠ°, Π° Π½Π΅ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΡ Π²Π΅ΡΡΠΈΠ½ Π½Π° ΡΠ΅Π±ΡΠ°. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Π±ΡΠ΄ΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΅Π±ΡΠ°, ΡΠΌΠ΅ΠΆΠ½ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ, ΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π³Π΄Π΅
Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π²Π΅ΡΡΠΈΠ½ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ ΡΡΠΈΠΏΠ»Π΅ΡΡ,
ΠΈ aggregateMessages
.
GraphX ββΠ²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π·Π°Π΄Π°Ρ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² org.apache.spark.graphx.lib
, ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π° Graph
ΡΠ΅ΡΠ΅Π· GraphOps
. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
PageRank ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π³ΡΠ°ΡΠ΅, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΠ΅Π±ΡΠΎ ΠΎΡ u Π΄ΠΎ v ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ v ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ u . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Twitter ΡΠ»Π΅Π΄ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅, ΡΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³.
GraphX ββΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ PageRank ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° PageRank
.Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ PageRank Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ PageRank Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΈ Π½Π΅ ΡΠΎΠΉΠ΄ΡΡΡΡ (Ρ. Π. ΠΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π΄ΠΎΠΏΡΡΠΊ). GraphOps
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π° Graph
.
GraphX ββΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PageRank. ΠΠ°Π±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΊΠ°Π·Π°Π½ Π² data / graphx / users.txt
, Π° Π½Π°Π±ΠΎΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΡΠΊΠ°Π·Π°Π½ Π² data / graphx / followers.txt
. ΠΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ PageRank ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠΌΠΏΠΎΡΡ org.apache.spark.graphx.GraphLoader
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ΅Π±ΡΠ° ΠΊΠ°ΠΊ Π³ΡΠ°Ρ
val graph = GraphLoader.edgeListFile (sc, "data / graphx / followers.txt")
// ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ PageRank
val ranks = graph.pageRank (0,0001) .vertices
// ΠΡΡΡΠΏΠ°Π΅ΠΌ Π² ΡΡΠ΄Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
val users = sc.textFile ("data / graphx / users.txt"). map {line =>
val fields = line.split (",")
(ΠΏΠΎΠ»Ρ (0) .toLong, ΠΏΠΎΠ»Ρ (1))
}
val ranksByUsername = users.join (rank) .map {
case (id, (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³)) => (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³)
}
// Π Π°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
println (ranksByUsername.collect (). mkString ("\ n"))
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π² "examples / src / main / scala / org / apache / spark / examples / graphx / PageRankExample.scala" Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ²ΡΠ·Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ²ΡΠ·Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π³ΡΠ°ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠ½Ρ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌ. GraphX ββΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ConnectedComponents
, ΠΈ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° PageRank ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠΌΠΏΠΎΡΡ ΠΎΡΠ³.apache.spark.graphx.GraphLoader
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ PageRank
val graph = GraphLoader.edgeListFile (sc, "data / graphx / followers.txt")
// ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
val cc = graph.connectedComponents (). vertices
// Π‘ΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
val users = sc.textFile ("data / graphx / users.txt"). map {line =>
val fields = line.split (",")
(ΠΏΠΎΠ»Ρ (0) .toLong, ΠΏΠΎΠ»Ρ (1))
}
val ccByUsername = users.join (cc) .map {
case (id, (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠΏΠΈΡ)) => (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠΏΠΈΡ)
}
// Π Π°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
println (ccByUsername.collect (). mkString ("\ n"))
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π² Β«examples / src / main / scala / org / apache / spark / examples / graphx / ConnectedComponentsExample.scalaΒ» Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ²
ΠΠ΅ΡΡΠΈΠ½Π° - ΡΡΠΎ ΡΠ°ΡΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π΅ΡΠ»ΠΈ Ρ Π½Π΅Π΅ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠΌΠ΅ΠΆΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Ρ ΡΠ΅Π±ΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. GraphX ββΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ TriangleCount
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΏΡΠΎΡ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ.ΠΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° PageRank. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ TriangleCount
ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ΅Π±ΡΠ° Π±ΡΠ»ΠΈ Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ( srcId
Graph.partitionBy
.
import org.apache.spark.graphx. {GraphLoader, PartitionStrategy}
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ΅Π±ΡΠ° Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π³ΡΠ°ΡΠΈΠΊ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ²
val graph = GraphLoader.edgeListFile (sc, "data / graphx / followers.txt ", ΠΏΡΠ°Π²Π΄Π°)
.partitionBy (PartitionStrategy.RandomVertexCut)
// ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ
val triCounts = graph.triangleCount (). Π²Π΅ΡΡΠΈΠ½Ρ
// Π‘ΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
val users = sc.textFile ("data / graphx / users.txt"). map {line =>
val fields = line.split (",")
(ΠΏΠΎΠ»Ρ (0) .toLong, ΠΏΠΎΠ»Ρ (1))
}
val triCountByUsername = users.join (triCounts) .map {case (id, (username, tc)) =>
(ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, tc)
}
// Π Π°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
println (triCountByUsername.collect (). mkString ("\ n"))
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Β«examples / src / main / scala / org / apache / spark / examples / graphx / TriangleCountingExample.scala Β»Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Ρ ΠΎΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΈΠ· Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π΄Π»Ρ Π²Π°ΠΆΠ½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°Π½ΠΆΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΠΏΠΎΠ΄Π³ΡΠ°ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²Π΅ΡΠ½ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. Ρ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ Ρ GraphX:
ΠΈΠΌΠΏΠΎΡΡ org.apache.spark.graphx.GraphLoader
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΌΠΎΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΡ
Π² ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΈΠ· ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΏΠΈΡΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
val users = (sc.textFile ("data / graphx / users.txt")
.map (line => line.split (",")). map (parts => (parts.head.toLong, parts.tail)))
// ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ userId -> userId
val followerGraph = GraphLoader.edgeListFile (sc, "data / graphx / followers.txt")
// ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ
val graph = followerGraph.outerJoinVertices (users) {
case (uid, deg, Some (attrList)) => attrList
// Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ
ΠΊΠ°ΠΊ ΠΏΡΡΡΡΠ΅
case (uid, deg, None) => Array.empty [String]
}
// ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ
val ΠΏΠΎΠ΄Π³ΡΠ°Ρ = Π³ΡΠ°Ρ.ΠΏΠΎΠ΄Π³ΡΠ°Ρ (vpred = (vid, attr) => attr.size == 2)
// ΠΡΡΠΈΡΠ»ΠΈΡΡ PageRank
val pagerankGraph = subgraph.pageRank (0,001)
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΌ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡ
val userInfoWithPageRank = subgraph.outerJoinVertices (pagerankGraph.vertices) {
case (uid, attrList, Some (pr)) => (pr, attrList.toList)
case (uid, attrList, None) => (0.0, attrList.toList)
}
println (userInfoWithPageRank.vertices.top (5) (Ordering.by (_._ 2._1)). mkString ("\ n"))
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Β«examples / src / main / scala / org / apache / spark / examples / graphx / ComprehensiveExample.scala Β»Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Spark.
ΠΠΏΡΠΈΠΎΠ½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ² - ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΎΡ ΠΠ½ΡΡΠΈΡΡΡΠ° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ²
ΠΠΏΡΠΈΠΎΠ½Ρ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ²
ΠΡΠΎΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΠΏΡΠΈΠΈ: ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ - ΡΡΠΎ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΡΡ Π°ΠΊΡΠΈΠ² ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΠ΅ (Π΄Π°ΡΠ΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ) ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ). ΠΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ²: ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΡ. ΠΠΏΡΠΈΠΎΠ½Ρ Π‘Π¨Π ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ Π² Excel.ΠΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎ Π΄Π΅ΡΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ². ΠΠΎΠΌΠΈΠΌΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΡΡΡΠ½ΡΡ, Π² ΡΡΡ ΠΊΠ½ΠΈΠ³Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΡΠ΄ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΡ CFI: Option Profit / Loss Graph Maker, Option Profit / Loss Graph Maker. Π±Π°Π·ΠΎΠ²ΡΠ΅ Π°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ².
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ² CFI ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌ:
ΠΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Ρ Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠ΄ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π²Π·ΡΡΡΠ΅, ΠΈΠΌΠΈΡΠΈΡΡΠΉΡΠ΅ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π² ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π‘ΠΏΡΠ°Π²Π° ΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠΏΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ.
Π‘ΠΏΠ»ΠΎΡΠ½Π°Ρ ΡΠΈΠ½ΡΡ Π»ΠΈΠ½ΠΈΡ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ profitProfitProfit - ΡΡΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ, ΠΎΡΡΠ°ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ»Π°ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΡΡΠ΅ΡΠ΅ ΠΎ ΠΏΡΠΈΠ±ΡΠ»ΡΡ ΠΈ ΡΠ±ΡΡΠΊΠ°Ρ . ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π»ΠΎΡΡ / ΠΏΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ. ΠΡΠ½ΠΊΡΠΈΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ / ΡΠ±ΡΡΠΎΠΊ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π²ΠΎΡΠΎΡΠ° ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠΉ Π±Π°Π±ΠΎΡΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ ΠΈ ΡΠ±ΡΡΠΊΠΎΠ², Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΏΡΠ΅Π΄ Β«ΠΆΠ΅Π»Π΅Π·Π½Π°Ρ Π±Π°Π±ΠΎΡΠΊΠ°Β» ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
ΠΠ½ΠΎΠΏΠΊΠ° Β«Π‘Π±ΡΠΎΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΒ» ΠΎΡΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅.ΠΡΡΡΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΠ½ΡΡ Π²Π²Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, optionOptions: Calls ΠΈ PutsAn ΠΎΠΏΡΠΈΠΎΠ½ - ΡΡΠΎ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΊΡΠΏΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΡΡ Π°ΠΊΡΠΈΠ² ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΠ΅ (Π΄Π°ΡΠ΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ) ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ). ΠΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ²: ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΡ. ΠΠΏΡΠΈΠΎΠ½Ρ Π‘Π¨Π ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.Π‘Π΅ΡΡΠ΅ ΠΏΠΎΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠΉ. Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΡΠΎΡΠ³ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΅Π΅ Π°ΠΊΡΠΈΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄ΠΎ Π΄Π΅ΡΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ²
- ΠΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ ΠΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΎΡΡ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π½Π°Ρ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (Π΅ΡΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎ).ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ. ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). ΠΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Ρ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΠΏΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΈΠ»ΠΈ Π°ΠΊΡΠΈΠΉ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π½Ρ Π‘ΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Ρ Π‘ΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Π° - ΡΡΠΎ ΡΠ΅Π½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π·ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΏΡΠ΅ΠΌΠΈΡ
Π’ΠΎΡΠ³ΠΎΠ²ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π² ΡΡΡ ΠΊΠ½ΠΈΠ³Ρ, Π²ΠΊΠ»ΡΡΠ°ΡΡ:
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ Π°ΠΊΡΠΈΡ
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π°ΠΊΡΠΈΡ
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΠΎΠ»Π» / Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π»
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡ
- Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡ / Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π»
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
- ΠΠΎΡΠΎΡΠ½ΠΈΠΊ
- ΠΡΡΠΈΠΉ ΠΊΠΎΠ»Π» ΡΠΏΡΠ΅Π΄
ΠΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠ»Π» ΡΠΏΡΠ΅Π΄ ΠΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠ»Π» ΠΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠ»Π» ΡΠΏΡΠ΅Π΄ - Bear Put Spread
- 9 1371 ΠΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
- Long Straddle
- Long Strangle
- Long Call Butterfly
- Short Call Butterfly
- Long Put Butterfly
- Short Put Butterfly
- Iron Butterfly
- Reverse Iron Butterfly JR
JR Π―ΡΠ΅ΡΠΈΡΠ° - ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΊΠΈΡΠΊΠΈ
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Ρ Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΠΈΠΎΠ½ - ΡΡΠΎ ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΡΡΠ΄ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³, ΠΊΠΎΡΠΎΡΡΠ΅, Π²Π·ΡΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, ΠΈΠΌΠΈΡΠΈΡΡΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ - ΡΡΠΎ ΠΏΠΎΡΡΡΠ΅Π»ΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³, ΠΊΠΎΡΠΎΡΡΠ΅, Π²Π·ΡΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, ΠΈΠΌΠΈΡΠΈΡΡΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. ΠΡΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΎΡΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ΅ΠΉΠ΄Π΅ΡΠ°ΠΌ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π½ Π½Π° ΡΡΠ½ΠΊΠ΅.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ Π°ΠΊΡΠΈΡ
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ Π°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΎΡΡ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (ΠΏΡΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) .ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ. ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π», ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«ΠΊΠΎΠ»Π»Β», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅. - ΡΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° - Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΏΡΡ.ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ°ΠΏΠΈΡΠ°Π»Ρ.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π°ΠΊΡΠΈΡ
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΎΡΡ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (ΠΏΡΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) . ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ.ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΊΠΎΠ»Π» ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΏΡΡ. ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ Π°ΠΊΡΠΈΠΉ, - Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ°ΠΏΠΈΡΠ°Π»Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ. ΠΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ ΠΏΠΎ Π°ΠΊΡΠΈΡΠΌ ΠΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ ΠΏΠΎ Π°ΠΊΡΠΈΡΠΌ, ΠΌΠ΅ΡΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±ΠΎΠ³Π°ΡΡΡΠ²Π° ΡΡΠ΅Π΄ΠΈ Π°ΠΊΡΠΈΠΎΠ½Π΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π²ΡΠΏΠ»Π°ΡΡ Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄ΠΎΠ² Π² ΡΠΎΡΠΌΠ΅ Π°ΠΊΡΠΈΠΉ, Π° Π½Π΅ Π½Π°Π»ΠΈΡΠ½ΡΠΌΠΈ.ΠΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ ΠΏΠΎ Π°ΠΊΡΠΈΡΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠ°Π»ΠΎ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΡΡ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΊΠ°ΠΊ Π² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ Π°ΠΊΡΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ»Π» / Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ»Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΎΡΡ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (ΠΏΡΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡΠΎΡΠΊΠΎ). ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ.ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). Π½Π° Π°ΠΊΡΠΈΠ² ΠΈ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΏΡΡ. ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». Π§Π°ΡΡΠΎ ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΡΠΆΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ Π°ΠΊΡΠΈΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠΌ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π΄ΠΎ ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ°.ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΏ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π»Π°Π΄Π΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΎΠΌ ΠΈ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ΅Π½Ρ ΠΌΠΎΠ³ΡΡ ΡΠΏΠ°ΡΡΡ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΊΡΠΏΠΈΡΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΡ, ΠΎΡΡΡΠ΄Π° ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅: Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ ΠΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ ΠΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΡ. ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠΈ) ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΡ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Ρ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°Π²Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π½Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π°. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π».. ΠΡΠ»ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅Ρ Π΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΠ΅Π½Ρ ΡΠΏΠ°Π΄ΡΡ, Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΏΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ², ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ»Π» ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ - ΡΡΠΎ ΠΏΠΎΠ½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ. Π»ΡΠ±ΠΎΠΌΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΡ ΡΠ΄Π΅Π»ΠΊΠΈ. ΠΡΠΎ Π½Π΅Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ Π½Π° ΡΡΠ½ΠΊΠ΅. Π ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅ ΡΠ΅ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΎΠ½Π½ΡΡ ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π½Π° Π»ΡΠ΄Π΅ΠΉ Π²Π»ΠΈΡΠ΅Ρ Π»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ..
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π»
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΏΡΡ. ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠΎΠ»Π». Π§Π°ΡΡΠΎ ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅Ρ Ρ ΠΎΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΠΏΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π²ΠΊΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡΠΎΠ² Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (ΠΏΡΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ).ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ. ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΠΎΡΠΎΡΠΊΠΎ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² ΠΠ»Π°ΡΡ Π°ΠΊΡΠΈΠ²ΠΎΠ² ΠΠ»Π°ΡΡ Π°ΠΊΡΠΈΠ²ΠΎΠ² - ΡΡΠΎ Π³ΡΡΠΏΠΏΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ΠΈ ΡΠΎΡΠ³ΡΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΠ°Ρ ΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. Π²ΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΡΡΡΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΡ ΠΈ ΠΎΡΠΊΡΡΡΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠ»Π».
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΡΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΎΡΡ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π½Π½Π°Ρ Π±ΡΠΌΠ°Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ (Π² Π΄Π»ΠΈΠ½Π½ΡΡ ) ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· (Π² ΠΊΠΎΡΠΎΡΠΊΠΈΡ ).ΠΡΠΈ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ: Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΡΡ. ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠ² (ΠΎΡΠΊΡΡΠ²Π°Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ (ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ). ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΊΠΎΠ»Π». ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ. ΠΠΏΡΡΡ ΠΆΠ΅, ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡ ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅Ρ Π΄Π΅ΡΠΆΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠΎΠ»Π» ΠΈ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΡΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ². ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΏΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π·Π°ΡΡΠ°ΡΡ.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ / ΠΏΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π»
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π° ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π». ΠΡΠ° ΡΠΎΡΠ³ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΡ. Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π». ΠΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π». ΠΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π» - ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠΈ) ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΡ (ΠΏΡΠΎΠ΄Π°ΠΆΡ) ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ².. ΠΠ½Π²Π΅ΡΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ΄Π°Π²Π°ΡΡ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΊΠΎΠ»Π» Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡ ΠΎΠ΄Π°, ΠΈ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ², ΠΎΠ½ΠΈ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ - ΡΡΠΎ ΡΠ΄Π΅Π»ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΡΠ°Π²ΠΊΠ° Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΠ° Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΎΠΊ ΡΠ°ΡΡΠ΅Ρ, ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ
- ΡΡΠΎ ΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠΎ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ Π² ΡΠ΅Π½Π΅.ΠΡΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΠ° ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π°.
ΠΡΠ΅ΠΉΠ½ΠΈΠΊ
ΠΡΠ΅ΠΉΠ½ΠΈΠΊ Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΎΡΠ΅ΠΉΠ½ΠΈΠΊ Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΎΡΠ΅ΠΉΠ½ΠΈΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅ΡΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈΠ±ΡΠ»ΠΈ. ΠΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°ΠΊΡΠΈΠΈ, Π·Π°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡ ΠΈ ΠΏΠΎΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π°. ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π», ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π° ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ. Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ ΠΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ ΠΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΡΡ - ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ (Ρ.Π΅.g., Π°ΠΊΡΠΈΠΈ) ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Ρ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°Π²Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π½Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π°. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π». ΠΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π» ΠΠΎΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π» - ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π°ΠΊΡΠΈΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠΈ) ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΡ (ΠΏΡΠΎΠ΄Π°ΠΆΡ) ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ². ΠΡΠ΅ΠΉΠ½ΠΈΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ±ΡΡΠΎΡΠ½ΡΠ΅ ΡΠ±ΡΡΠΊΠΈ. ΠΈ ΠΏΡΠΈΠ±ΡΠ»Ρ. ΠΡΠ΅ΠΉΠ½ΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΎΡ Π² ΡΠ΅Π½Π΅ ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ, Π²Π»Π°Π΄Π΅ΡΡΠΈΠΉ ΡΡΠΈΠΌ Π°ΠΊΡΠΈΠ²ΠΎΠΌ, Ρ ΠΎΡΠ΅Ρ Π·Π°ΡΠΈΡΠΈΡΡ ΡΡΡ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ.
Bull Call Spread
ΠΡΡΡΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΡ Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΠΈ Π±ΡΡΡΠΈΠΌΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π½. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΡΡΠ½ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π½Π° ΡΠΏΠ°Π»Π° Π½Π° 20% ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ ΠΏΠΈΠΊΠ°, Π° Π±ΡΡΠΈΠΉ ΡΡΠ½ΠΎΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 20% ΠΎΡ Π΄Π½Π° ΡΡΠ½ΠΊΠ°. ΠΠΎΠ»Π»-ΡΠΏΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π‘ΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Π° Π¦Π΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - ΡΡΠΎ ΡΠ΅Π½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠΈΠΎΠ½ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ .ΠΠ½Π²Π΅ΡΡΠΎΡΠΠ½Π²Π΅ΡΡΠΎΡΠΠ½Π²Π΅ΡΡΠΎΡ - ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π»ΠΈΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π΄Π΅Π½ΡΠ³ΠΈ Π² ΡΠ°ΠΊΡΡ ββΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠ°ΠΊ Π±ΠΈΠ·Π½Π΅Ρ, Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΈΠ±ΡΠ»ΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ½Π²Π΅ΡΡΠΎΡΠ° - ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ, Π΅ΡΠ»ΠΈ Π°ΠΊΡΠΈΠ² Π²ΡΡΠ°ΡΡΠ΅Ρ Π² ΡΠ΅Π½Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡ ΡΠΎΡΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠΌ ΠΊΠΎΠ»Π». Π‘ΠΏΡΠ΅Π΄ Β«Π±ΡΡΠΈΠΉ ΠΊΠΎΠ»Π»Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π° Π²ΡΡΠ°ΡΡΠ΅Ρ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ. ΠΡΠ΅ΠΌΠΈΡ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ ΠΎΠΏΡΠΈΠΎΠ½Ρ ΠΊΠΎΠ»Π» ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΊΡΡΡΠΈΡ ΡΠ°ΡΡΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°.
Bear Call Spread
ΠΠ΅Π΄Π²Π΅ΠΆΡΠΈ Π±ΡΡΡΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΠΈ Π±ΡΡΡΠΈΠΌΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π½.ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΡΡΠ½ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π½Π° ΡΠΏΠ°Π»Π° Π½Π° 20% ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ ΠΏΠΈΠΊΠ°, Π° Π±ΡΡΠΈΠΉ ΡΡΠ½ΠΎΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 20% ΠΎΡ Π΄Π½Π° ΡΡΠ½ΠΊΠ°. Π‘ΠΏΡΠ΅Π΄ ΠΊΠΎΠ»Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠ»Π» Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΡΠ΅Π΄ΠΎΠΌ ΠΊΡΠ΅Π΄ΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΡΡΡΠΉ ΠΊΡΠ΅Π΄ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΡΠΊΡΡΡΠΈΠΈ. ΡΠΏΡΠ΅Π΄ Β«ΠΌΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠ»Π»Β» ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡ ΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅Π½Π° Π°ΠΊΡΠΈΠ²Π° ΡΠ½ΠΈΠ·ΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ.
ΠΡΡΠΈΠΉ ΠΏΡΡ-ΡΠΏΡΠ΅Π΄
ΠΡΡΠΈΠΉ ΠΏΡΡ-ΡΠΏΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΡΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Π°) Π΄ΠΎ ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ°. ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ° ΠΎΠΏΡΠΈΠΎΠ½Π½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈ Π² ΡΠ΅Π½Π΅.ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡ ΠΎΠ΄Π° ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΈΡΡΠΎΠΌΡ Π΄Π΅Π±Π΅ΡΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
ΠΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΡΠΏΡΠ΅Π΄ ΠΏΡΡ
ΠΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΡΠΏΡΠ΅Π΄ ΠΏΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π‘ΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Π° Π¦Π΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° - ΡΡΠΎ ΡΠ΅Π½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ. ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π½Π° Π°ΠΊΡΠΈΠ²Π° ΡΠΏΠ°Π΄Π΅Ρ. ΠΡΠΈΠ±ΡΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π°, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΠ±ΡΡΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π°.
ΠΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠ³ΠΎΠ²ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π¨Π°Π±Π»ΠΎΠ½ Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ Π¨Π°Π±Π»ΠΎΠ½ Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ΅ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ². ΠΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
ΠΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠ³ΠΎΠ²ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠ°Π²ΠΊΡ Π½Π° Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ Vega (Ξ½) Vega - ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ². ΠΡΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π° Π½Π° 1%.ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π°ΠΊΡΠΈΠ²Π°, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΡΡΠΈΡ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π° Π² ΡΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΡ . ΠΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ - ΡΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΡΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ. ΠΠ½Π²Π΅ΡΡΠΎΡΡ ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΡΠ΅Π½ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π·Π½Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
Π‘ΡΡΡΠ΄Π΄Π»
ΠΠ»ΠΈΠ½Π½ΡΠΉ ΡΡΡΡΠ΄Π΄Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» "ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ " ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ "ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ ". Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΡΠΉ ΠΊΡΠ΅Π΄ΠΈΡ, ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΎΡ Π²ΡΠΈΠ³ΡΠ°Π΅Ρ ΠΎΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΡΠ΅Π½Ρ Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. Π’ΡΠ΅ΠΉΠ΄Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠ°Ρ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ - ΡΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΡΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ. ΠΠ½Π²Π΅ΡΡΠΎΡΡ ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΡΠΎΡΠ»ΡΡ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΡΠ΅Π½, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π°ΠΊΡΠΈΠ², ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠ΄Π΄Π».
ΠΠΎΡΠΎΡΠΊΠΈΠΉ ΡΡΡΡΠ΄Π΄Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β» ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π», ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«ΠΊΠΎΠ»Π»Β», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ. , ΡΡΠΎΠ±Ρ ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ - ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° - Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΎΠΏΡΠΈΠΎΠ½ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π΄ΠΎ ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. .ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΏ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΈΡΡΠΎΠΌΡ Π΄Π΅Π±Π΅ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΡΠΎΡΡΠ° ΠΈ ΡΠ±ΡΡΠΊΠ°.
Π£Π΄ΡΡΠ΅Π½ΠΈΠ΅
Π£Π΄ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΡΡΡΠ΄Π΄Π». ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΡ ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ , ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΏΠΎΠΊΡΠΏΠ°ΡΡΡΡ Π²Π½Π΅ Π΄Π΅Π½Π΅Π³. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π΅ Π² Π΄Π΅Π½ΡΠ³Π°Ρ , ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ΄ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΡΡΠ΄Π΄Π»Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ±ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ProfitProfit - ΡΡΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ, ΠΎΡΡΠ°ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π±ΡΠ»ΠΈ ΠΎΠΏΠ»Π°ΡΠ΅Π½Ρ.ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΡΡΠ΅ΡΠ΅ ΠΎ ΠΏΡΠΈΠ±ΡΠ»ΡΡ ΠΈ ΡΠ±ΡΡΠΊΠ°Ρ . ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΡΠ°Π²ΡΠ΅Π΅ΡΡ ΠΎΡ. ΠΠ½Π²Π΅ΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠ°Ρ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ±Π΅Π³Π½ΡΡΡ ΠΊ ΡΠ΄ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΡΠΎΡΠΊΠΎΠ΅ ΡΠ΄ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ΠΉ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Π²Π½Π΅ Π΄Π΅Π½Π΅Π³ ΠΈ ΠΏΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π° Π²Π½Π΅ Π΄Π΅Π½Π΅Π³. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΡΡΡΠ΄Π΄Π». ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΈΡΡΡΠΉ Π΄Π΅Π±Π΅Ρ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠ΄Π»Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π΅Π±Π΅Ρ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π°.
ΠΠΎΠ»Π»-Π±Π°ΡΡΠ΅ΡΡΠ»ΡΠΉ ΡΠΏΡΠ΅Π΄
ΠΠ»ΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ»Π»-Π±Π°Π±ΠΎΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠΊΡΠΏΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ , ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ΠΉ Π΄Π²ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ² ΠΊΠΎΠ»Π» ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π»ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π», ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«ΠΊΠΎΠ»Π»Β», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ - ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° - Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» "Π²Π½Π΅ Π΄Π΅Π½Π΅Π³". ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΈΡΡΠΎΠΌΡ Π΄Π΅Π±Π΅ΡΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π½Π° Π°ΠΊΡΠΈΠ²Π° Π΄Π²ΠΈΠΆΠ΅ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ΅Π½Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΠ΅ΡΠΈ Π²Π²Π΅ΡΡ ΠΈ Π²Π½ΠΈΠ· Π±ΡΠ΄ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. Π’ΡΠ΅ΠΉΠ΄Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ΅Π΄ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β», Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ.
ΠΠΎΡΠΎΡΠΊΠ°Ρ Π±Π°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ»Π» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ , ΠΏΠΎΠΊΡΠΏΠΊΠΈ Π΄Π²ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ² ΠΊΠΎΠ»Π» ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Π²Π½Π΅ Π΄Π΅Π½Π΅Π³.ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΈΡΡΠΎΠΌΡ ΠΊΡΠ΅Π΄ΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½Π²Π΅ΡΡΠΎΡ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½. ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² Β«Π±Π°ΡΡΠ΅ΡΡΠ»Π΅Β» ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½. ΠΠ½Π²Π΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ - ΡΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΡΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ. ΠΠ½Π²Π΅ΡΡΠΎΡΡ ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΡΠ΅Π½.
Put Butterfly Spread
ΠΠ»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡ-Π±Π°Π±ΠΎΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Π±Π΅Π· Π΄Π΅Π½Π΅Π³ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ². ΡΠ΅Π½Π½ΡΠ΅ Π±ΡΠΌΠ°Π³ΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½Π°) Π΄ΠΎ ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ°. ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π», ΠΏΡΠΎΠ΄Π°ΠΆΠ° Π΄Π²ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ² ΠΏΡΡ Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β» ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° Β«ΠΏΡΡ ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β».ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΈΡΡΠΎΠΌΡ Π΄Π΅Π±Π΅ΡΡ. Π‘ΠΏΡΠ΅Π΄ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β» Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΡ Π΄Π°Π΅Ρ Π²ΡΠΏΠ»Π°ΡΡ, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΡΡ Π½Π° Β«Π±Π°Π±ΠΎΡΠΊΡΒ» Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ ΠΏΡΡ, Π° Π½Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ ΠΊΠΎΠ»Π». ΠΠ½Π²Π΅ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ.
ΠΠΎΡΠΎΡΠΊΠ°Ρ Π±Π°Π±ΠΎΡΠΊΠ° ΠΏΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Β«Π²Π½Π΅ Π΄Π΅Π½Π΅Π³Β», ΠΏΠΎΠΊΡΠΏΠΊΠΈ Π΄Π²ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ² ΠΏΡΡ Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β» ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° Β«ΠΏΡΡΒ» ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ . ΠΡΠ°ΡΠΈΠΊ ΠΏΡΠΈΠ±ΡΠ»Π΅ΠΉ / ΡΠ±ΡΡΠΊΠΎΠ² ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΏΡΠ΅Π΄ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β» ΠΊΠΎΠ»Π», ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ ΠΏΡΡ, Π° Π½Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°ΠΌΠΈ ΠΊΠΎΠ»Π».
Iron Butterfly
ΠΠ»ΠΈΠ½Π½Π°Ρ ΠΆΠ΅Π»Π΅Π·Π½Π°Ρ Π±Π°Π±ΠΎΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Β«Π²Π½Π΅ Π΄Π΅Π½Π΅Π³Β», ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β», ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β» ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° Β«Π²Π½Π΅ Π΄Π΅Π½Π΅Π³Β». - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» Π² Π΄Π΅Π½ΡΠ³Π°Ρ . ΠΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠ΅Π³ΠΎ ΠΏΡΡ-ΡΠΏΡΠ΅Π΄Π° ΠΈ Π±ΡΡΡΠ΅Π³ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π».
ΠΡΠΈΠ±ΡΠ»ΡΠΡΠΎΡΠΈΡΠΡΠΎΡΠΈΡ - ΡΡΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ, ΠΎΡΡΠ°ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ»Π°ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΡΡΠ΅ΡΠ΅ ΠΎ ΠΏΡΠΈΠ±ΡΠ»ΡΡ ΠΈ ΡΠ±ΡΡΠΊΠ°Ρ . ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ / ΠΏΠΎΡΠ΅ΡΡ ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΏΡΠ΅Π΄ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β» Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π° ΠΈ ΡΠΏΡΠ΅Π΄Π° Β«Π±Π°Π±ΠΎΡΠΊΠ° Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΡΒ».ΠΡΠΏΠ»Π°ΡΠ° Π±ΡΠ΄Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΡΠ°ΠΉΠΊΠΎΠ²ΡΠΌΠΈ ΡΠ΅Π½Π°ΠΌΠΈ. Π’ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΆΠ΅Π»Π΅Π·Π½ΡΡ Π±Π°Π±ΠΎΡΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ - ΡΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΡΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π½Ρ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ. ΠΠ½Π²Π΅ΡΡΠΎΡΡ ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΡΠ΅Π½.
ΠΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠΏΡΠ΅Π΄ Β«ΠΆΠ΅Π»Π΅Π·Π½Π°Ρ Π±Π°Π±ΠΎΡΠΊΠ°Β» ΠΈΠ»ΠΈ Β«ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΆΠ΅Π»Π΅Π·Π½Π°Ρ Π±Π°Π±ΠΎΡΠΊΠ°Β» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β», ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β», ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° Β«ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Β». ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» "ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ ".ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π³ΡΠ°ΡΠΈΠΊ ΠΏΡΠΈΠ±ΡΠ»ΠΈ / ΡΠ±ΡΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΏΡΠ΅Π΄ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β» Π½Π° ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΡ ΠΈ Β«Π±Π°Π±ΠΎΡΠΊΠ°Β» Π½Π° ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΠΎΠΊΡΠΏΠΊΡ. ΠΠ½Π²Π΅ΡΡΠΎΡ Π½Π°ΡΠ½Π΅Ρ Ρ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΊΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΡΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π°.
Iron Condor
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΄ΠΎΡΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Π±Π΅Π· Π΄Π΅Π½Π΅Π³ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ. ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΡΡΠ°ΠΉΠΊ) Π΄ΠΎ ΠΈΠ»ΠΈ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ°.ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΏ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». ΠΡΠΎΠ΄Π°ΠΆΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΈ Π΄Π΅Π½ΡΠ³Π°Ρ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΡΠ°ΠΉΠΊ-ΡΠ΅Π½ΠΎΠΉ, ΠΏΡΠΎΠ΄Π°ΠΆΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠΈΠ³ΡΡΡΠ΅ΠΌ. ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» "Π²Π½Π΅ Π΄Π΅Π½Π΅Π³" Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΅Π»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½Π΄ΠΎΡ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΆΠ΅Π»Π΅Π·Π½ΡΡ Π±Π°Π±ΠΎΡΠΊΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΡΡΡΠΉ Π΄Π΅Π±Π΅Ρ Π½ΠΈΠΆΠ΅.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΆΠ΅Π»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½Π΄ΠΎΡ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΠΏΡΠΈΠ±ΡΠ»Ρ, ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΆΠ΅Π»Π΅Π·Π½Π°Ρ Π±Π°Π±ΠΎΡΠΊΠ°. Π’ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΄ΠΎΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ.ΠΠ΅Π»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½Π΄ΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠΉ Π±Π°Π±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠ΅ΠΉΠ΄Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π½Π° Π°ΠΊΡΠΈΠ²Π°.
ΠΠ΅ΡΡΠΈΡΠΎΠ²Π°Ρ ΡΡΠ΅ΡΠΈΡΠ°
ΠΠ΅ΡΡΠΈΡΠΎΠ²Π°Ρ ΡΡΠ΅ΡΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π¦Π΅Π½Π° ΡΠ΄Π°ΡΠ° Π¦Π΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - ΡΡΠΎ ΡΠ΅Π½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΎΠ½ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ , ΠΏΡΠΎΠ΄Π°ΠΆΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Ρ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.ΠΠ΅ΡΡΠΈΡΠΎΠ²Π°Ρ ΡΡΠ΅ΡΠΈΡΠ° ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΡΠΎΠΌ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΡ-ΠΎΠΏΡΠΈΠΎΠ½ Π±Π΅Π· Π΄Π΅Π½Π΅Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠ΅ΠΌΠΈΠ΅ΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ°Π²Π½ΠΎΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠΌ ΠΊΠΎΠ»Π» Π±Π΅Π· Π΄Π΅Π½Π΅Π³. ΠΠ΅ΡΡΠΈΡΠΎΠ²Π°Ρ ΡΡΠ΅ΡΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΌΠΈΡ Π·Π° ΡΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΠΈ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΡΠΈΡΠΊ ΡΠΎΡΡΠ°. Π ΠΈΡΠΊ Π ΡΠΈΠ½Π°Π½ΡΠ°Ρ ΡΠΈΡΠΊ - ΡΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ . Π ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΏΠΈΡΠ°Π»ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²ΠΎΠ² (CAPM) ΡΠΈΡΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΡ ΠΎΠ΄Π½ΠΎΡΡΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΡΠΈΡΠΊΠ° ΠΈ Π΄ΠΎΡ ΠΎΠ΄Π½ΠΎΡΡΠΈΒ» Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΠΊΡΠΈΠ²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ Π΄ΠΎΡ ΠΎΠ΄Π½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½Π²Π΅ΡΡΠΎΡΠ°ΠΌ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΈΡΠΊ.. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π½ΠΎΡΠΈΡ ΡΠ»Π΅Π³ΠΊΠ° Π±ΡΡΠΈΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ. ΠΡΡΡΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΠΈ Π±ΡΡΡΠΈΠΌΠΈ ΠΈ ΠΌΠ΅Π΄Π²Π΅ΠΆΡΠΈΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π½. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Π΄Π²Π΅ΠΆΠΈΠΉ ΡΡΠ½ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π½Π° ΡΠΏΠ°Π»Π° Π½Π° 20% ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ ΠΏΠΈΠΊΠ°, Π° Π±ΡΡΠΈΠΉ ΡΡΠ½ΠΎΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 20% ΠΎΡ Π΄Π½Π° ΡΡΠ½ΠΊΠ°. Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΠΊ ΡΡ ΡΠ΄ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΡΡΡΠ°Π½Π΅Π½.
Guts
ΠΠΏΡΠΈΠΎΠ½Π½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΊΠΈΡΠΊΠΈ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ΄ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΡΠΎΠΈΡΡ Π΅Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ² Π²Π½Π΅ Π΄Π΅Π½Π΅Π³, ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» Π² Π΄Π΅Π½ΡΠ³Π°Ρ ΠΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π» Call Option, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Β«ΠΊΠΎΠ»Π»Β», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΊΠΎΠ»Π» ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΊΡΠΏΠΈΡΡ Π°ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ - ΡΠ΅Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π° - Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΊΠΈ.ΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΎΠΏΡΠΈΠΎΠ½Π° ΠΏΡΡ Β«Π² Π΄Π΅Π½ΡΠ³Π°Ρ Β» ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ ΠΠΏΡΠΈΠΎΠ½ ΠΏΡΡ - ΡΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ, ΠΏΡΠΎΠ΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ΅Π½Π½ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅. ΠΠ°ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠ°. ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠΈΠΎΠ½ΠΎΠ², Π²ΡΠΎΡΠΎΠΉ - ΠΎΠΏΡΠΈΠΎΠ½ ΠΊΠΎΠ»Π». ΠΡΠΏΠ»Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΊΡΠ΅Π΄ΠΈΡΠ°. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡ ΡΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΡΠ΅Π½Ρ Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΄ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ΅ΠΉΠ΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΡΡ Π²ΠΎΠ»Π°ΡΠΈΠ»ΡΠ½ΠΎΡΡΡ.
(PDF) ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄Π»Ρ Maven
arXiv: 2103.15162v1 [cs.SE] 28 ΠΌΠ°ΡΡΠ° 2021 Π³.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄Π»Ρ Maven
1-ΠΉ ΠΠ΅Ρ Π΄ΠΈ ΠΠ΅ΡΠ°Π½ΠΈ
ΠΠ΅Π»ΡΡΡΠΊΠΈΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ @ tudelft.nl
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΠΎΠ³Π°ΡΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅, ΡΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΌΠΎΠ³ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΡΠ°Π±Π° ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ
, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Dependabot, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
.ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ
ΠΈΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π³ΡΠ°ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²ΠΎΠ²
. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ Π³ΡΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΠΎΠ»Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Β», ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π³ΡΠ°ΡΠ°ΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌ
. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΊ ΠΌΠ°ΡΡΡΠ°Π±Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ,
ΡΡΠΎΡ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ Π² ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²Π·ΡΡΠ²Π°Π΅ΡΡΡ.Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ
Π΄Π»Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·
ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Call Graph Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
CHA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
ΡΠ°ΡΡΠΈΡΠ½ΡΡ Π³ΡΠ°ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Ρ
Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ°Π½Π΅Π΅.ΠΠ°ΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄
Ρ ΠΎΡΠΎΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ
ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ OPAL.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° - ΡΠ΅ΠΎΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°,
ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
I. ΠΠΠΠΠΠΠΠ
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΡΠ°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ
Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ.ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ½ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ. Maven - ΡΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°
, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ
, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΏΡΡΠΆΠ΅Π½Ρ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠΈΡΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ
ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ
ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ
Π°Π½Π°Π»ΠΈΠ·ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ [1], [2].Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Π»ΠΊΠΎΠ·Π΅ΡΠ½ΠΈΡΡΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° Π³ΡΠ°ΡΠ°Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (CG).
ΠΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ CG Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ
ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
CG. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ
Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ CG ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ
, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: (1) Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Java CG
Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ CG Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ClassPath (CP).ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ,
, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ CG Π΄Π»Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
CP Π²ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΈ CP
ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ,
, Β«Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠΈΠ½ΡΡΠ²Π°
Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²Β» [3]. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°
, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌΠΈ, ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ ΠΎΠ΄Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊΠ°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΠΊ Maven,
, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ CG ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
.(2) Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²Π΅ΡΡΠΈΠΉ
Π½Π° Maven ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π°Π±ΠΎΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ
Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²Π΅ΡΡΠΈΠΉ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ [4]. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌΠΈ. Π’ΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°Π±ΠΎΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ.ΠΡΠ»ΠΈ ΠΏΡΡΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ±ΡΡΡ ΡΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π΅Π΅ Π²Π΅ΡΡΠΈΠΈ,
Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΉ. Π Π΅Π·ΠΎΠ»ΡΠ²Π΅Ρ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
. Maven Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π²Π΅ΡΡΠΈΡ, Π±Π»ΠΈΠΆΠ°ΠΉΡΡΡ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ
. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ CG Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ CG
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ρ Π½ΡΠ»Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π²ΡΡΠΈΡΠ»ΠΈΠΌ ΠΎΠ±ΡΠΈΠ΅ ΡΠ°ΡΡΠΈ.(3)
ΠΠ½Π°Π»ΠΈΠ· ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π³ΡΡΠΏΠΏ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
, ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ΅Π΄ΡΡΠ². Π’Π°ΠΊΠΎΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π°Π½Π°Π»ΠΈΠ·Π°
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΌΡΡΡ, Π°
ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ Π½ΠΈΡ CG, ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΡΠΎΠ³ΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ,
ΡΠΎΡΠ·Π½ΠΈΠΊ, ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠΆΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΎΡΠ²Π΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π°
, ΠΈ ΠΎΠ±Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ
log4j: log4j: jar: 1.2.17, ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡΡΠΎΠΈΡΡ CG
Π΄Π»Ρ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π²Π°ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΠΌΠ°ΡΡΡΠ°Π±Π΅ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ. Π₯ΠΎΡΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ [5] - [7] ΠΏΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ
Π½Π΅ ΡΡΡΠΎΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΠΌΠ°ΡΡΡΠ°Π±Π΅ Π²ΡΠ΅ΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Java.
Π ΡΡΠΎΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Maven.ΠΠ°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΠΏΠΎΠ². ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ Ρ ΡΠ°Π½ΠΈΠΌ
ΡΠ°ΡΡΠΈΡΠ½ΡΡ CG Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±Π΅Π· ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π
ΡΠΎ ΠΌΡ ΠΈΡ ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. Π₯ΠΎΡΡ Π²
Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Maven ΠΈ CG Π΄Π»Ρ
Java, ΠΈΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ OPAL CG Π΄Π»Ρ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ½ΡΡ CG. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ
ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π½Π°ΡΠ΅ΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ
, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΏΡΠ΅Π²Π·ΠΎΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅Π΄Ρ
, OPAL [8]. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π²ΠΊΠ»Π°Π΄ΠΎΠΌ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ
, ΠΊΠΎΡΠΎΡΠ°Ρ; (1) Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ CG
Π΄Π»Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌ Maven, (2) ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
.
ΠΠ°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΌ