全部产品
Search
文档中心

Platform For AI:Lintasan Terpendek Sumber-Tunggal

更新时间:Jul 02, 2025

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 OutOfMemory akan dilaporkan.

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 OutOfMemory akan dilaporkan.

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

  1. 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

    image

  2. 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;
  3. Di sudut kiri atas kanvas, klik image untuk menjalankan pipeline.

  4. 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            |