From 8fbcaf48752eda703c43b85ad900acde8f9684f3 Mon Sep 17 00:00:00 2001 From: fredrikr79 Date: Tue, 26 Aug 2025 16:47:00 +0200 Subject: [PATCH] assignment 1: solve part 1, 2, 3 --- assignment1/main.pdf | Bin 0 -> 62427 bytes assignment1/main.typ | 191 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 assignment1/main.pdf create mode 100644 assignment1/main.typ diff --git a/assignment1/main.pdf b/assignment1/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d0cbcd1d4896b3fa196d69c9302bdb94b8cf729 GIT binary patch literal 62427 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 literal 0 HcmV?d00001 diff --git a/assignment1/main.typ b/assignment1/main.typ new file mode 100644 index 0000000..8d94277 --- /dev/null +++ b/assignment1/main.typ @@ -0,0 +1,191 @@ +#import "@preview/cetz:0.3.2"; +#import "@preview/cetz-plot:0.1.1": plot +#import "@preview/physica:0.9.4": * +#import "@preview/plotsy-3d:0.1.0": plot-3d-parametric-surface +#import "@preview/fletcher:0.5.4" as fletcher: diagram, edge, node + +#set page(paper: "a4", margin: (x: 2.6cm, y: 2.8cm), numbering: "1 : 1") +#set par(justify: true, leading: 0.52em) + +#let FONT_SIZE = 18pt; +#set text(font: "FreeSerif", size: FONT_SIZE, lang: "us") +#show math.equation: set text(font: "Euler Math", size: (FONT_SIZE * 1.0), lang: "en") + +#set heading(numbering: none) +#show heading.where(level: 1): it => { + rect(inset: FONT_SIZE / 2)[#it] +} + +#align(center)[ + #text(size: FONT_SIZE * 2, weight: "bold")[#underline[assignment 1]] +] + +these are our solutions to the first assignment of TDT4136. + +this document was created using +#link("https://typst.app/")[#text(blue.darken(5%))[typst]]. + +#v(42pt) + +#outline(title: none) + +#v(42pt) + +this is the collaborative effort of group 192, Erlend Ulvund Skaarberg and Fredrik Robertsen + += part 1 + +== 1) + +these are the costs + +#table( + ` `, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, + `A`, ` `, ` `, ` `, ` `, ` `, ` `, `4`, ` `, `1`, + `B`, ` `, ` `, `4`, ` `, ` `, ` `, ` `, `3`, `2`, + `C`, ` `, `4`, ` `, ` `, `1`, ` `, ` `, ` `, ` `, + `D`, ` `, ` `, ` `, ` `, `2`, `1`, ` `, ` `, ` `, + `E`, ` `, ` `, `1`, `2`, ` `, ` `, ` `, `1`, ` `, + `F`, ` `, ` `, ` `, `1`, ` `, ` `, ` `, ` `, ` `, + `G`, `4`, ` `, ` `, ` `, ` `, ` `, ` `, ` `, `1`, + `H`, ` `, `3`, ` `, ` `, `1`, ` `, ` `, ` `, ` `, + `I`, `1`, `2`, ` `, ` `, ` `, ` `, `1`, ` `, ` `, + columns: 10, + inset: 10pt, +) + +== 2) + +=== a) BFS + +- order of expansion: $A, G, I, B, C, H, E, D$ +- found path: $A, I, B, C, E, D, F$ +- path cost: $1 + 2 + 4 + 1 + 2 + 1 = 11$ + +=== b) DFS + +- order of expansion: $A, G, I, B, C, E, D, F$ +- found path: $A, G, I, B, C, E, D, F$ +- path cost: $4 + 1 + 2 + 4 + 1 + 2 + 1 = 15$ + +=== c) UCS + +- order of expansion: A, I, B, H, C, E, D +- found path: A, I, B, H, C, E, D, F +- path cost: $1 + 2 + 3 + 1 + 1 + 2 + 1 = 11$ + += part 2 + +== 3) + +=== a) greedy best first search + +- order of expansion: $A, I, B, C, E, D$ +- found path: $A, I, B, C, E, D, F$ +- path cost: $1 + 2 + 4 + 1 + 2 + 1 = 11$ + +=== b) A#upper("*") + +- order of expansion: $A, I, B, C, E, D$ +- found path: $A, I, B, C, E, D, F$ +- path cost: $1 + 2 + 4 + 1 + 2 + 1 = 11$ + += part 3 + +== 4) + +admissibility is needed for $A^*$ to be optimal. + +our heuristics are inadmissible, as they overestimate the cost of the optimal +path from each node to the goal. if we look at the graph, the heuristics may +encode a sense of distance between each node accurately, however the problem +states that the cost of an action is the same between any two neighboring nodes +(unless there is a lift or a staircase present). thus, the heuristic estimates +are not very optimistic. + +== 5) + +the heuristic $h(E) = 5$ is an overestimation, as the shortest path to the goal +$F$ is trivially seen to be $3$. this is a counter-example to the statement that +the heuristic function $h(n)$ is admissible, as admissibility is defined as +$ + h(n) <= C^*(n) quad forall quad n in V +$ +where $C^*(n)$ is the cost of the optimal path from the node $n$. + +== 6) + +- order of expansion: $A, I, B, H, E, D$ +- found path: $A, I, B, H, E, D, F$ +- path cost: $1 + 2 + 3 + 1 + 2 + 1 = 10$ + +== 7) + +the new heuristic function $h'(n)$ is admissible, because it does not +overestimate the cost of getting from any node to the goal. thus we can see that +when performing $A^*$ in 6) we find the cost-optimal path from $A$ to $F$. + +suppose that there is a node $n in V$ such that +$ + h'(n) > C^*(n). +$ +if such a node exists, then $h'(n)$ is inadmissible. since no such node exists, +$h'(n)$ is admissible. + +admissibility guarantees that $A^*$ finds the cost-optimal path, however it says +nothing about optimal efficiency, like consistency (see 8)). + +== 8) + +consistency of a heuristic $h(n)$ is defined as a triangle inequality +$ + h(n) <= c(n, a, n') + h(n') +$ +where $c(n, a, n')$ denotes the cost of the path-action $a$ from $n$ to $n'$. + +to see whether the heuristic $h'(n)$ is consistent, we must investigate each child +node of each node on the cost-optimal path to see if this identity holds. + +- from $A$, it is not cheaper to get to $I$ through $G$, thus the identity holds. +- from $B$, it is not cheaper to get to $H$ through $C$, thus the identity holds. +- from $H$, it is not cheaper to get to $E$ through $C$, thus the identity holds. + +these are all the nodes on the cost-optimal path with multiple children where +inconsistency could occur, but these cases are consistent, thus our heuristic +$h'(n)$ is consistent. + += bonus task + +== 9) + +if we let $f(n) = g(n) + h(n)$ in `Best-First-Search(problem, f)` with +a heuristic $h(n)$ that is inadmissible for at least one node on the +cost-optimal path, unless it is consistent. + +however, we can also change the code implementation of $A^*$ to require +consistency of $f(n)$: + +#[#set text(size: FONT_SIZE * 0.6) + ```pseudocode + function BEST-FIRST-SEARCH(problem,f) returns a solution node or failure + node←NODE(STATE=problem.INITIAL) + frontier←a priority queue ordered by f, with node as an element + reached←a lookup table, with one entry with key problem.INITIAL and value node + while not IS-EMPTY(frontier) do + node←POP(frontier) + if problem.IS-GOAL(node.STATE) then return node + for each child in EXPAND(problem, node) do + s←child.STATE + if s is not in reached or child.PATH-COST < reached[s].PATH-COST then + reached[s]←child + add child to frontier + // ------------ + // calculate all parts of triangle inequality + h←f(n) - node.PATH-COST + h'←f(n) - child.PATH-COST + c←child.PATH-COST - node.PATH-COST + if h > c + h' then return failure // fail on inconsistency + // ------------ + return failure + ``` +]