Teori graf: latihan soal dengan penyelesaian langkah demi langkah

Latihan soal Teori graf gratis dengan diagram, petunjuk, dan pembahasan lengkap. Nilai baru setiap kali, dalam tiga tingkat: derajat dan sisi, lintasan Euler dan pohon, lintasan terpendek dan pohon rentang.

Soal latihan gratisMudah

Sebuah pohon memiliki 12 simpul. Berapa sisi |E| yang dimilikinya?

|V| = 12

Jawaban pasti: bilangan bulat, tanpa pembulatan.

Soal berikutnya →
Berlatih Teori graf secara gratisBerlatih Teori graf sekarang5 soal gratis setiap hari. Tanpa kartu kredit.

Yang Anda latih

  1. Mudahderajat dan sisi
  2. Sedanglintasan Euler dan pohon
  3. Sulitlintasan terpendek dan pohon rentang

Cara menyelesaikan soal Teori graf

  1. Tuliskan derajat setiap simpul; jumlah derajat sama dengan dua kali banyaknya sisi.
  2. Untuk soal Euler, periksa bahwa graf terhubung dan hitung simpul berderajat ganjil.
  3. Untuk pohon, gunakan n − 1 sisi dan lema jabat tangan.
  4. Untuk Dijkstra, buat tabel jarak sementara dan tetapkan simpul belum tetap dengan jarak terkecil di setiap putaran.
  5. Untuk pohon rentang minimum, urutkan sisi menurut bobot dan lewati setiap sisi yang membentuk siklus (Kruskal), atau tumbuhkan satu pohon dari simpul awal (Prim).

Kesalahan umum

  • Lupa membagi jumlah derajat dengan 2.
  • Menyebut suatu graf Eulerian tanpa memeriksa keterhubungannya.
  • Menetapkan simpul dalam Dijkstra sebelum jaraknya yang terkecil.
  • Mengambil sisi teringan tanpa memeriksa siklus.
  • Menghitung sirkuit Hamilton di Kn sebagai n! dan bukan (n − 1)!/2.

Rumus utama

Lema jabat tangan
Σ deg(v) = 2|E|
Graf lengkap
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Graf beraturan
|E| = n·k/2
Pohon dan hutan
|E| = n − 1, |E| = n − c
Daun pohon
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
sirkuit: semua derajat genap; lintasan: tepat 2 derajat ganjil
Sirkuit Hamilton di Kn
(n − 1)!/2
Pembaruan Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Jalan dengan panjang L
(Mᴸ)ij

Pelajari Teori graf dari nol

Sebelum ini: Himpunan, relasi & fungsi

1Simpul, sisi, dan derajat

Sebuah graf terdiri dari simpul (titik) dan sisi (garis di antara dua simpul). Pada graf sederhana tidak ada gelang dan tidak ada sisi ganda.

Derajat sebuah simpul adalah banyaknya sisi yang bertemu di simpul itu. Setiap sisi punya dua ujung, jadi ia menambah 1 pada derajat tiap ujungnya. Dari sini diperoleh lema jabat tangan:

Σ deg(v) = 2·|E|

Dua akibatnya: jumlah derajat selalu genap, dan banyaknya simpul berderajat ganjil juga genap.

  • Graf lengkap Kn menghubungkan setiap pasangan: n(n − 1)/2 sisi.
  • Graf bipartit lengkap Km,n menghubungkan setiap simpul di satu sisi dengan setiap simpul di sisi lainnya: m·n sisi.
  • Graf beraturan-k dengan n simpul memiliki n·k/2 sisi.

Matriks ketetanggaan memiliki angka 1 pada (i, j) jika i dan j terhubung. Untuk graf tak berarah matriks ini simetris, jumlah baris adalah derajat, dan entri (i, j) dari Mᴸ menghitung jalan dengan panjang L dari i ke j.

Tes mandiri Sebuah graf memiliki derajat 3, 3, 2, 2, 2. Berapa banyak sisinya?
  1. 10
  2. 12
  3. 5
  4. 6

Jawaban: 6. Derajat berjumlah 12, dan setiap sisi terhitung dua kali, jadi ada 12/2 = 6 sisi. 5 adalah banyaknya simpul.

2Euler dan Hamilton

Sebuah sirkuit Euler memakai setiap sisi tepat satu kali dan kembali ke titik awal. Sebuah lintasan Euler memakai setiap sisi satu kali tetapi boleh berakhir di tempat lain. Untuk graf terhubung:

  • semua derajat genap: sirkuit Euler ada;
  • tepat dua derajat ganjil: lintasan Euler ada, dari satu simpul ganjil ke simpul ganjil lainnya;
  • lebih dari dua derajat ganjil: tidak ada keduanya.

Sebuah sirkuit Hamilton mengunjungi setiap simpul tepat satu kali. Tidak ada uji derajat sederhana untuknya. Di Kn terdapat (n − 1)!/2 sirkuit Hamilton yang berbeda: tetapkan titik awal, urutkan n − 1 simpul lainnya, dan bagi 2 untuk dua arah.

Tes mandiri Sebuah graf terhubung memiliki derajat 2, 3, 4, 3, 2. Apa yang dimilikinya?
  1. Lintasan Euler, tetapi tidak ada sirkuit Euler
  2. Sirkuit Euler sekaligus lintasan Euler yang bukan sirkuit
  3. Sirkuit Euler
  4. Tidak keduanya

Jawaban: Lintasan Euler, tetapi tidak ada sirkuit Euler. Tepat dua simpul berderajat ganjil (kedua 3), jadi ada lintasan Euler di antara keduanya, tetapi tidak ada sirkuit.

3Pohon

Sebuah pohon adalah graf terhubung tanpa siklus. Setiap pohon dengan n simpul memiliki tepat n − 1 sisi. Menambah sisi apa pun membentuk siklus; menghapus sisi apa pun memutus keterhubungan.

Hutan dari c pohon dengan n simpul memiliki n − c sisi. Graf terhubung dengan m sisi masih memiliki pohon rentang setelah m − n + 1 sisi dihapus.

Lema jabat tangan menghitung daun: Σ deg = 2(n − 1). Bentuk singkatnya L = 2 + Σ (d − 2) atas simpul berderajat d ≥ 3. Pohon dengan dua simpul berderajat 3 dan sisanya daun memiliki 2 + 1 + 1 = 4 daun.

4Dijkstra dan pohon rentang minimum

Algoritma Dijkstra mencari jarak terpendek dari simpul awal pada graf dengan bobot tak negatif.

  1. Beri simpul awal jarak 0 dan setiap simpul lain ∞.
  2. Tetapkan simpul yang belum tetap dengan jarak terkecil; jaraknya kini final.
  3. Untuk setiap tetangga v, perbarui d(v) = min(d(v), d(u) + w(u, v)).
  4. Ulangi sampai simpul tujuan ditetapkan.

Pohon rentang minimum menghubungkan semua simpul dengan total bobot terkecil. Kruskal mengurutkan sisi dari yang ringan ke berat dan mengambil setiap sisi kecuali yang membentuk siklus. Prim menumbuhkan satu pohon dari simpul awal, selalu menambahkan sisi teringan yang keluar dari pohon itu. Keduanya berhenti setelah n − 1 sisi.

Contoh soal

Cari jarak terpendek dari A ke E pada graf di bawah.

1

Awal

412581ABCDE

d(A) = 0. Tetangganya mendapat d(B) = 4 dan d(C) = 1.

2

Tetapkan C (1)

Melalui C: d(B) = min(4, 1 + 2) = 3 dan d(E) = 1 + 8 = 9.

3

Tetapkan B (3)

Melalui B: d(D) = 3 + 5 = 8.

4

Tetapkan D (8)

Melalui D: d(E) = min(9, 8 + 1) = 9. Tidak ada perbaikan, hasilnya sama.

5

Tetapkan E (9)

E sudah ditetapkan: jaraknya final.

Jawaban

Jarak terpendek adalah d(E) = 9, sepanjang A → C → E. Rute A → C → B → D → E memiliki panjang yang sama, 1 + 2 + 5 + 1 = 9.

Tes mandiri Algoritma Kruskal sudah mengambil sisi berbobot 1, 2, dan 3. Sisi teringan berikutnya, berbobot 4, menghubungkan dua simpul yang sudah terhubung. Apa yang terjadi?
  1. Algoritma berhenti
  2. Sisi berbobot 3 dihapus sebagai gantinya
  3. Sisi itu diambil karena paling ringan di antara yang tersisa
  4. Sisi itu dilewati karena akan membentuk siklus

Jawaban: Sisi itu dilewati karena akan membentuk siklus. Kruskal tidak pernah membentuk siklus: sisi di antara dua simpul pada komponen yang sama dilewati, dan algoritma beralih ke sisi berikutnya.

5Kesalahan umum

  • Lupa membagi jumlah derajat dengan 2 untuk mendapatkan banyaknya sisi.
  • Menguji sirkuit Euler tanpa memeriksa bahwa graf terhubung.
  • Menetapkan simpul dalam Dijkstra sebelum simpul itu memiliki jarak sementara terkecil.
  • Mengambil n − 1 sisi teringan tanpa memeriksa siklus.
  • Menghitung sirkuit Hamilton Kn sebagai n! dan bukan (n − 1)!/2.

6Seperti apa soal ujiannya

  • Mudah: derajat dan sisi. Anda memakai lema jabat tangan, menghitung sisi Kn, Km,n, graf beraturan dan pohon, membaca matriks ketetanggaan, atau mengeklik simpul dengan derajat tertentu.
  • Sedang: lintasan Euler dan pohon. Anda menentukan apakah graf memiliki sirkuit atau lintasan Euler, menghitung daun pohon, menghitung sisi yang dihapus untuk pohon rentang, atau menghitung sirkuit Hamilton di Kn.
  • Sulit: lintasan terpendek dan pohon rentang. Anda menjalankan algoritma Dijkstra, mencari simpul yang ditetapkan pada putaran tertentu, mencari bobot pohon rentang minimum, mengeklik sisi yang ditambahkan Kruskal atau Prim berikutnya, atau menghitung jalan dengan matriks ketetanggaan.

Pelajari selangkah demi selangkah di aplikasiPelajari selangkah demi selangkah di aplikasi

Contoh dengan pembahasan

Contoh 1Mudah
AABBCCDDEE0010000001100010000101110

Matriks ketetanggaan sebuah graf sederhana tak berarah ditunjukkan. Berapa sisi |E| yang dimiliki graf ini?

Tentukan |E|

Tampilkan petunjuk
  1. Entri (i, j) bernilai 1 jika simpul i dan j dihubungkan oleh sebuah sisi.
  2. Setiap sisi {i, j} menghasilkan dua angka 1: satu di (i, j) dan satu di (j, i).
  3. Matriks ini memuat 8 angka satu.
Tampilkan jawaban dan penyelesaian langkah demi langkah

Derajat: derajat suatu simpul adalah banyaknya sisi yang bertemu di simpul itu. Setiap sisi memiliki dua ujung, jadi jumlah derajat sama dengan dua kali banyaknya sisi: Σ deg(v) = 2|E| (lema jabat tangan). Karena itu banyaknya simpul berderajat ganjil selalu genap. Kn memiliki n(n − 1)/2 sisi, graf beraturan-k dengan n simpul memiliki nk/2, dan pohon dengan n simpul memiliki n − 1 sisi.

Hitung bit satu

jumlah baris: 1 + 1 + 2 + 1 + 3 = 8
|E| = 8/2 = 4

Jawaban

|E| = 4
Contoh 2Sedang
ABCDEFGSirkuit EulerLintasan Euler, bukan sirkuitbukan keduanya

Apakah graf terhubung ini memiliki sirkuit Euler, lintasan Euler yang bukan sirkuit, atau bukan keduanya? Klik jawaban Anda.

|V| = 7|E| = 10
  1. 1Sirkuit Euler
  2. 2Lintasan Euler, bukan sirkuit
  3. 3bukan keduanya
Tampilkan petunjuk
  1. Teorema Euler hanya memerlukan derajat simpul (graf terhubung).
  2. Semua derajat genap: sirkuit Euler. Tepat dua derajat ganjil: lintasan Euler di antara keduanya. Lebih dari itu: bukan keduanya.
  3. Hitung simpul berderajat ganjil.
Tampilkan jawaban dan penjelasan

Euler, Hamilton, dan pohon: graf terhubung memiliki sirkuit Euler (setiap sisi sekali, kembali ke awal) jika setiap simpul berderajat genap, dan lintasan Euler yang bukan sirkuit jika tepat dua simpul berderajat ganjil; lintasan itu berjalan dari satu simpul ganjil ke simpul ganjil lainnya. Sirkuit Hamilton mengunjungi setiap simpul sekali; Kn memiliki (n − 1)!/2 sirkuit seperti itu. Pohon dengan n simpul memiliki n − 1 sisi, dan graf terhubung dengan m sisi masih memiliki pohon rentang setelah m − n + 1 sisi dihapus.

Derajat

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 4, deg(E) = 4, deg(F) = 2, deg(G) = 3

Simpul ganjil

A, G → 2
Lintasan Euler, bukan sirkuit

Jawaban

Lintasan Euler, bukan sirkuit

Lintasan Euler dimulai di satu simpul ganjil dan berakhir di simpul ganjil lainnya.

Contoh 3Sulit
ABCDEF

Ada berapa jalan tertutup dengan panjang 3 yang dimulai dan berakhir di E? Jalan boleh mengulang simpul dan sisi. Sebut bilangan ini N.

M = matriks ketetanggaanL = 3

Tentukan N

Tampilkan petunjuk
  1. Dengan matriks ketetanggaan M, banyaknya jalan dengan panjang L dari i ke j adalah entri (i, j) dari Mᴸ.
  2. Hitung dulu jalan dengan panjang 2 dari E ke setiap simpul, lalu ambil satu langkah lagi.
  3. Jalan dengan panjang 2 dari E: A: 2, B: 1, C: 0, D: 2, E: 4, F: 1.
Tampilkan jawaban dan penyelesaian langkah demi langkah

Derajat: derajat suatu simpul adalah banyaknya sisi yang bertemu di simpul itu. Setiap sisi memiliki dua ujung, jadi jumlah derajat sama dengan dua kali banyaknya sisi: Σ deg(v) = 2|E| (lema jabat tangan). Karena itu banyaknya simpul berderajat ganjil selalu genap. Kn memiliki n(n − 1)/2 sisi, graf beraturan-k dengan n simpul memiliki nk/2, dan pohon dengan n simpul memiliki n − 1 sisi.

Matriks ketetanggaan

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Satu langkah lagi

(M³)EE = 2·0 + 1·1 + 0·1 + 2·1 + 4·0 + 1·1 = 4

Jawaban

N = 4

Tanya jawab

Apa itu Teori graf?

Sebuah graf terdiri dari simpul (titik) dan sisi (garis di antara dua simpul). Pada graf sederhana tidak ada gelang dan tidak ada sisi ganda.

Dua akibatnya: jumlah derajat selalu genap, dan banyaknya simpul berderajat ganjil juga genap.

Bagaimana cara menyelesaikan soal Teori graf langkah demi langkah?
  1. Tuliskan derajat setiap simpul; jumlah derajat sama dengan dua kali banyaknya sisi.
  2. Untuk soal Euler, periksa bahwa graf terhubung dan hitung simpul berderajat ganjil.
  3. Untuk pohon, gunakan n − 1 sisi dan lema jabat tangan.
  4. Untuk Dijkstra, buat tabel jarak sementara dan tetapkan simpul belum tetap dengan jarak terkecil di setiap putaran.
  5. Untuk pohon rentang minimum, urutkan sisi menurut bobot dan lewati setiap sisi yang membentuk siklus (Kruskal), atau tumbuhkan satu pohon dari simpul awal (Prim).
Apa kesalahan yang sering terjadi pada Teori graf?
  • Lupa membagi jumlah derajat dengan 2.
  • Menyebut suatu graf Eulerian tanpa memeriksa keterhubungannya.
  • Menetapkan simpul dalam Dijkstra sebelum jaraknya yang terkecil.
  • Mengambil sisi teringan tanpa memeriksa siklus.
  • Menghitung sirkuit Hamilton di Kn sebagai n! dan bukan (n − 1)!/2.
Apa saja yang dilatih dalam soal Teori graf?
  • Mudah: derajat dan sisi
  • Sedang: lintasan Euler dan pohon
  • Sulit: lintasan terpendek dan pohon rentang

Setiap soal memakai nilai baru, sehingga Anda mempelajari metodenya, bukan menghafal jawabannya. Buntu? Buka petunjuk kecil terlebih dahulu, dan penjelasan lengkap hanya jika Anda membutuhkannya.

Cara kerja latihan

  • Setiap soal memakai nilai baru, sehingga Anda mempelajari metodenya, bukan menghafal jawabannya.
  • Buntu? Buka petunjuk kecil terlebih dahulu, dan penjelasan lengkap hanya jika Anda membutuhkannya.
  • Kemajuan, kesalahan, dan soal tersimpan Anda disimpan, sehingga Anda dapat mengulasnya sebelum ujian.

Topik sebelum dan sesudah ini

Pelajari dulu

Mata kuliah dengan topik ini

Topik lain di Matematika & statistika

Lembar kerja yang dapat dicetak

Berlatih Teori graf secara gratisBerlatih Teori graf sekarang5 soal gratis setiap hari. Tanpa kartu kredit.