You are on page 1of 3

NAMA : Sandy Pratama

Kelas : A Teknik Informatika

Nim : 212013

Matkul : Kecerdasan Buatan

Tugas 1

1). import java.util.*;

public class BFS {

public static void bfs(int[][] graph, int start) {

Queue<Integer> queue = new LinkedList<>();

boolean[] visited = new boolean[graph.length];

visited[start] = true;

queue.offer(start);

while (!queue.isEmpty()) {

int curr = queue.poll();

System.out.print(curr + " ");

for (int i = 0; i < graph.length; i++) {

if (graph[curr][i] == 1 && !visited[i]) {

visited[i] = true;

queue.offer(i);

public static void main(String[] args) {


int[][] graph = {{0, 1, 1, 0},

{1, 0, 1, 1},

{1, 1, 0, 1},

{0, 1, 1, 0}};

bfs(graph, 0); // starting node is 0

2). Piton Dfs

def dfs(graph, start, visited=None):

if visited is None:

visited = set()

visited.add(start)

print(start, end=' ')

for neighbor in graph[start]:

if neighbor not in visited:

dfs(graph, neighbor, visited)

3). Piton Ucs

import heapq

def ucs(graph, start, goal):

frontier = [(0, start)]

visited = set()

while frontier:

(cost, current) = heapq.heappop(frontier)

if current == goal:

return cost

if current in visited:

continue

visited.add(current)
for neighbor, weight in graph[current].items():

heapq.heappush(frontier, (cost + weight, neighbor))

return -1

You might also like