Lintasan terpendek sumber-tunggal digunakan untuk menghitung lintasan terpendek dari node sumber tertentu ke node lain dalam graf. Perhitungan ini menggunakan algoritma Dijkstra dan cocok untuk graf dengan bobot sisi non-negatif. Metode ini banyak diterapkan di bidang seperti perutean jaringan, perencanaan lalu lintas, dan sistem informasi geografis.
Konfigurasi Komponen
Metode 1: Konfigurasikan komponen pada halaman pipeline
Pada halaman detail pipeline di Machine Learning Designer, tambahkan komponen Single-source Shortest Path ke pipeline dan konfigurasikan parameter sesuai tabel berikut.
Tab | Parameter | Deskripsi |
Fields Setting | Source Vertex Column | Kolom vertex awal dalam tabel edge. |
Target Vertex Column | Kolom vertex akhir dalam tabel edge. | |
Edge Weight Column | Kolom bobot edge dalam tabel edge. | |
Parameters Setting | Initial Node ID | Vertex awal yang digunakan untuk menghitung lintasan terpendek. |
Tuning | Number of Workers | Jumlah vertex untuk eksekusi pekerjaan paralel. Tingkat paralelisme dan biaya komunikasi kerangka meningkat seiring dengan nilai parameter ini. |
Worker Memory (MB) | Ukuran maksimum memori yang dapat digunakan oleh satu pekerjaan. Unit: MB. Nilai default: 4096. Jika ukuran memori yang digunakan melebihi nilai parameter ini, kesalahan |
Metode 2: Konfigurasikan komponen dengan menggunakan perintah PAI
Konfigurasikan parameter komponen menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat Skenario 4: Jalankan perintah PAI dalam komponen SQL script.
PAI -name SSSP
-project algo_public
-DinputEdgeTableName=SSSP_func_test_edge
-DfromVertexCol=flow_out_id
-DtoVertexCol=flow_in_id
-DoutputTableName=SSSP_func_test_result
-DhasEdgeWeight=true
-DedgeWeightCol=edge_weight
-DstartVertex=a;Parameter | Diperlukan | Nilai Default | Deskripsi |
inputEdgeTableName | Ya | Tidak ada nilai default | Nama tabel edge input. |
inputEdgeTablePartitions | Tidak | Tabel penuh | Partisi dalam tabel edge input. |
fromVertexCol | Ya | Tidak ada nilai default | Kolom vertex awal dalam tabel edge input. |
toVertexCol | Ya | Tidak ada nilai default | Kolom vertex akhir dalam tabel edge input. |
outputTableName | Ya | Tidak ada nilai default | Nama tabel output. |
outputTablePartitions | Tidak | Tidak ada nilai default | Partisi dalam tabel output. |
lifecycle | Tidak | Tidak ada nilai default | Siklus hidup tabel output. |
workerNum | Tidak | Tidak ada nilai default | Jumlah vertex untuk eksekusi pekerjaan paralel. Tingkat paralelisme dan biaya komunikasi kerangka meningkat seiring dengan nilai parameter ini. |
workerMem | Tidak | 4096 | Ukuran maksimum memori yang dapat digunakan oleh satu pekerjaan. Unit: MB. Nilai default: 4096. Jika ukuran memori yang digunakan melebihi nilai parameter ini, kesalahan |
splitSize | Tidak | 64 | Ukuran pemisahan data. Unit: MB. |
startVertex | Ya | Tidak ada nilai default | ID vertex awal. |
hasEdgeWeight | Tidak | false | Menentukan apakah edge dalam tabel edge input memiliki bobot. |
edgeWeightCol | Tidak | Tidak ada nilai default | Kolom bobot edge dalam tabel edge input. |
Contoh
Pada halaman detail pipeline, tambahkan komponen SQL Script ke pipeline dan klik komponen tersebut. Pada tab Parameters Setting, hapus centang pada opsi Use Script Mode dan Whether the system adds a create table statement, lalu masukkan pernyataan SQL berikut di editor SQL Script:
drop table if exists SSSP_func_test_edge; create table SSSP_func_test_edge as select flow_out_id,flow_in_id,edge_weight from ( select "a" as flow_out_id,"b" as flow_in_id,1.0 as edge_weight union all select "b" as flow_out_id,"c" as flow_in_id,2.0 as edge_weight union all select "c" as flow_out_id,"d" as flow_in_id,1.0 as edge_weight union all select "b" as flow_out_id,"e" as flow_in_id,2.0 as edge_weight union all select "e" as flow_out_id,"d" as flow_in_id,1.0 as edge_weight union all select "c" as flow_out_id,"e" as flow_in_id,1.0 as edge_weight union all select "f" as flow_out_id,"g" as flow_in_id,3.0 as edge_weight union all select "a" as flow_out_id,"d" as flow_in_id,4.0 as edge_weight ) tmp;Struktur Data

Tambahkan komponen SQL Script ke pipeline dan klik komponen tersebut. Pada tab Parameters Setting, hapus centang pada opsi Use Script Mode dan Whether the system adds a create table statement, lalu masukkan pernyataan SQL berikut di editor SQL Script. Hubungkan komponen ini dengan komponen yang ditambahkan pada Langkah 1.
drop table if exists ${o1}; PAI -name SSSP -project algo_public -DinputEdgeTableName=SSSP_func_test_edge -DfromVertexCol=flow_out_id -DtoVertexCol=flow_in_id -DoutputTableName=${o1} -DhasEdgeWeight=true -DedgeWeightCol=edge_weight -DstartVertex=a;Di sudut kiri atas kanvas, klik
untuk menjalankan pipeline.Setelah pipeline dijalankan, klik komponen SQL Script yang ditambahkan pada Langkah 2, dan pilih View Data > SQL Script Output untuk melihat hasil pelatihan.
| start_node | dest_node | distance | distance_cnt | | ---------- | --------- | -------- | ------------ | | a | a | 0.0 | 0 | | a | b | 1.0 | 1 | | a | c | 3.0 | 1 | | a | d | 4.0 | 3 | | a | e | 3.0 | 1 |