Skip to content

Commit aff7583

Browse files
committed
Add DeepSeek experiment
1 parent 949d46c commit aff7583

File tree

10 files changed

+685
-1
lines changed

10 files changed

+685
-1
lines changed

docs/.pages

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
nav:
2+
- index.md
3+
- DevOps
4+
- Miscellaneous
5+
- Programming

docs/blog/deepseek/.pages

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
nav:
2+
- index.md

docs/blog/deepseek/full_reasoning.md

Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
# The full reasoning behind the answer
2+
3+
Alright, so I need to find the shortest path from node x to node s in this graph. Let me start by understanding how the
4+
graph is structured based on the given information.
5+
6+
First, let's list out all the nodes and their connections:
7+
8+
- **s:** connected to a
9+
- **a:** connected to s, b, h
10+
- **b:** connected to a, c, f
11+
- **c:** connected to b, d, e
12+
- **d:** only connected to c
13+
- **e:** only connected to c
14+
- **f:** connected to b, h, q
15+
- **g:** connected to f (but wait, g is only connected to f? Hmm)
16+
- **h:** connected to a, i, q
17+
- **i:** connected to h, j, k
18+
- **j:** connected to i
19+
- **k:** connected to i, l
20+
- **l:** connected to k, m, n, o
21+
- **m:** connected to l
22+
- **n:** connected to l, o, q
23+
- **o:** connected to l, n
24+
- **p:** connected to q, x
25+
- **q:** connected to f, h, n, p
26+
- **x:** connected to p
27+
28+
Okay, so we have a graph with nodes s, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, x.
29+
30+
Wait, hold on. The node 'g' is only connected to 'f', but in the given data, it's written as "g: f". So that means from
31+
g, you can go to f, right? But in our problem, we're going from x to s, so maybe 'g' isn't directly involved unless we
32+
need to take a longer path. Let me note that for later.
33+
34+
Our goal is to find the shortest path from x to s. So let's think about how to approach this.
35+
36+
I know that one of the standard algorithms for finding the shortest path in an unweighted graph is Breadth-First Search
37+
(BFS). Since all edges are considered equal weight, BFS should work here.
38+
39+
So, to perform BFS:
40+
41+
1. Start from node x.
42+
2. Explore all nodes adjacent to x.
43+
3. Then explore all nodes adjacent to those nodes, and so on, until we find s.
44+
4. Keep track of the path taken to reach each node to reconstruct the shortest path once we hit s.
45+
46+
Let me try to visualize or perhaps sketch out the connections:
47+
48+
Starting from x: x is connected only to p (x -> p).
49+
50+
From p: p is connected to q and x. Since we came from x, next would be q.
51+
52+
From q: connected to f, h, n, p. So from q, we can go to f, h, or n.
53+
54+
Let me map this out step by step:
55+
56+
1. Start at x (level 0).
57+
2. Level 1: p.
58+
3. From p, level 2: q.
59+
4. From q, level 3: f, h, n.
60+
5. From each of these:
61+
- From f: connected to b, h, q. But h and q have already been visited; so go to b (level 4).
62+
- From h: connected to a, i, q. a is closer to s; let's see where that leads (level 4). Also, from h you can go to i.
63+
- From n: connected to l, o, q. So go to l and o (level 4).
64+
65+
Wait, so in level 3, we have f, h, n.
66+
67+
Let me note the steps more clearly:
68+
69+
Level 0:
70+
- x
71+
72+
Level 1:
73+
- p
74+
75+
Level 2:
76+
- q
77+
78+
Level 3:
79+
- f, h, n
80+
81+
Now, processing each node at level 3.
82+
83+
Starting with f:
84+
From f: connected to b, h, q.
85+
- b hasn't been visited yet. So mark b as level 4.
86+
- h is already in level 3; don't need to revisit.
87+
88+
Processing h next (since from x->p->q->h):
89+
From h: connected to a, i, q.
90+
- a is new; so mark a as level 4.
91+
- i is also new; mark i as level 4.
92+
93+
Then processing n:
94+
From n: connected to l, o, q.
95+
- l and o haven't been visited yet. So mark l and o as level 4.
96+
97+
So now at level 4, we have b, a, i, l, o.
98+
99+
Wait, but a is directly connected to s! Because looking back at the nodes:
100+
101+
s: a
102+
103+
So from a, you can go to s. Since we're trying to reach s, once we get to a, that's one step away.
104+
105+
But let me confirm if 'a' is in level 4 or not.
106+
107+
Wait, our BFS levels are as follows:
108+
109+
Level 0: x
110+
111+
Level 1: p
112+
113+
Level 2: q
114+
115+
Level 3: f, h, n
116+
117+
Level 4: From f: b; from h: a, i; from n: l, o. So level 4 is b, a, i, l, o.
118+
119+
So a is in level 4, but s is connected to a. Therefore, once we reach a at level 4, the next step would be s at level 5.
120+
121+
But wait, perhaps there's a shorter path? Let me check all possibilities because sometimes BFS can have multiple paths.
122+
123+
Alternatively, let me see if from h (level 3), going to i, then from i: j and k. From k: l and so on, but that might
124+
take longer.
125+
126+
From b (level 4): connected to a, c, f. So a is reachable here as well.
127+
128+
So whether you go through h to a or through b to a, it's the same distance.
129+
130+
Therefore, s can be reached from a at level 5.
131+
132+
Wait, let me re-examine the levels:
133+
134+
From x (0) -> p (1) -> q (2)
135+
136+
From q: f (3), h (3), n (3)
137+
138+
From f: b (4); From h: a (4), i (4); From n: l (4), o (4)
139+
140+
So from level 4, nodes are a, b, i, l, o.
141+
142+
At this point, s is connected to a. So once we process a at level 4, the next step would be s at level 5.
143+
144+
Is there any shorter path? Let me think if I can reach s in fewer steps.
145+
146+
Looking back:
147+
148+
From x: p (1)
149+
p connects to q (2)
150+
q connects to f, h, n (3)
151+
152+
From f: b (4); From h: a, i (4); From n: l, o (4)
153+
154+
Is there any other connection from level 2 or 3 that can reach s without going through a? Let me see.
155+
156+
s is only connected to a. So the only way to get to s is via a. Therefore, the earliest we can reach a is at level 4, so
157+
s must be at level 5.
158+
159+
But wait, let's check if there are alternative routes from q (level 2). From q: f, h, n.
160+
161+
From f (3): b (4); then b connects to a (so that would take another step: 5)
162+
163+
From h (3): directly to a (which is level 4), so s is at level 5.
164+
165+
Alternatively, from h: go to i (4). Then i can go to j or k. But j and k are further away. So going through h seems the
166+
shortest path via h->a->s.
167+
168+
But perhaps another path? Let's see:
169+
170+
x -> p -> q -> n -> l -> ... but that leads to m, which doesn't connect back. Alternatively, x->p->q->h->i->k->l... Not
171+
useful for getting to s.
172+
173+
Alternatively, x->p->q->f->b->a->s: Let's count the steps:
174+
175+
x (0) -> p (1) -> q (2) -> f (3) -> b (4) -> a (5) -> s (6)
176+
177+
Wait, but earlier I thought it was level 5 for s. Hmm.
178+
179+
Wait no, maybe my levels are off because each edge is one step, so the number of edges determines the length.
180+
181+
But in BFS, the distance from x to s would be the number of edges traversed.
182+
183+
So starting at x (distance 0).
184+
185+
p: 1
186+
187+
q:2
188+
189+
f,h,n:3
190+
191+
From f: b:4; h: a,i:4; n: l,o:4
192+
193+
Then from a: s:5. So total distance is 5 steps.
194+
195+
But let me check another path:
196+
197+
x -> p -> q -> h ->a ->s: that's x(0)-p(1)-q(2)-h(3)-a(4)-s(5). Also, same length.
198+
199+
Alternatively, any other paths?
200+
201+
Let's see if going from q->n->l... but l connects to m,n,o, which don't connect back. Similarly, o is connected to n and
202+
l; still no connection towards s.
203+
204+
Similarly, i connects to j and k, then to l. So that seems longer.
205+
206+
Therefore, both paths through f->b and h lead to a in 4 steps, but from a you need one more step to s. Therefore, the
207+
shortest path is of length 5 edges.
208+
209+
But wait, let me recount:
210+
211+
x -> p:1
212+
213+
p -> q:2
214+
215+
q -> h:3
216+
217+
h ->a:4
218+
219+
a ->s:5
220+
221+
So that's 5 steps.
222+
223+
Alternatively, x->p->q->f->b->a->s: also 6 steps? Wait no.
224+
225+
Wait, in BFS each level is one step. So from x (level0), p(level1); q(level2); f,h,n(level3); b,a,i,l,o(level4);
226+
s(level5). Therefore, the path length from x to s is 5 edges.
227+
228+
Therefore, the shortest path has 6 nodes: x,p,q,h,a,s
229+
230+
Wait, but that's 5 steps or 6 nodes? Wait, in terms of number of nodes visited, it would be 6: x,p,q,h,a,s. But when we
231+
talk about the shortest path length, it's usually the number of edges traversed, which is 5.
232+
233+
But perhaps depending on how it's defined, sometimes people count the number of nodes. Let me check:
234+
235+
s is at level5 if counting steps from x. So to get s, you traverse 5 edges: x-p, p-q, q-h, h-a, a-s.
236+
237+
So yes, that would be 5 edges, so length 5.
238+
239+
Is there any shorter path? For example, x->p->q->f->b->a->s is longer because it's 6 steps. So no, the shortest path is
240+
indeed through x-p-q-h-a-s with 5 edges.
241+
242+
Alternatively, if we take x-p-q-n-o-l-k-i-j... No, that leads away from s.
243+
244+
So yes, I think the shortest path is x -> p -> q -> h -> a -> s.
245+
246+
Therefore, in terms of nodes: [x,p,q,h,a,s], which is 5 edges or 6 nodes.
247+
248+
Wait, let me confirm once more:
249+
250+
Start at x (distance 0).
251+
252+
p is distance1.
253+
254+
q is distance2.
255+
256+
From q, f,h,n are distance3.
257+
258+
From h, a and i are distance4.
259+
260+
a connects to s, so s is distance5.
261+
262+
Therefore, the shortest path from x to s is of length5, going through p,q,h,a,s.
263+
264+
Alternatively, could we get to a via b? Let's see:
265+
266+
x->p(1)->q(2)->f(3)->b(4)->a(5)->s(6). That would make it longer. So yes, the path through h is shorter.
267+
268+
Therefore, the shortest path is x-p-q-h-a-s with 5 edges.
122 KB
Loading

docs/blog/deepseek/graphs/graph.png

120 KB
Loading

docs/blog/deepseek/img/unpossible.jpg

38 KB
Loading

0 commit comments

Comments
 (0)