<div dir="ltr">Well I can attach the full .ss file here <br><br><div class="gmail_quote">On Sun, Nov 15, 2009 at 4:48 PM, Shriram Krishnamurthi <span dir="ltr">&lt;<a href="mailto:sk@cs.brown.edu">sk@cs.brown.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I assume G forgot to reply to the list, so I&#39;m taking the liberty of<br>
replying there.<br>
<br>
I&#39;ll point out that this code still has no data definitions, examples<br>
of data, test cases, etc.<br>
<font color="#888888"><br>
S.<br>
</font><div><div></div><div class="h5"><br>
On Sat, Nov 14, 2009 at 11:25 PM, G G &lt;<a href="mailto:shaoron@gmail.com">shaoron@gmail.com</a>&gt; wrote:<br>
&gt; This is the orignal Minimax that I am trying to add Alpha-beta on<br>
&gt;<br>
&gt;<br>
&gt; (define minimax<br>
&gt;   (lambda (b player moves max-depth heuristic-function)<br>
&gt;     (define max/min<br>
&gt;       (lambda (player)<br>
&gt;         (if (eq? player &#39;W) max min)))<br>
&gt;     (define minimax-move<br>
&gt;       (lambda (b player max-depth move)<br>
&gt;         (minimax/depth<br>
&gt;           (apply-move b player move)<br>
&gt;           (opponent player)<br>
&gt;           (- max-depth 1))))<br>
&gt;     (define minimax/depth<br>
&gt;       (lambda (b player max-depth)<br>
&gt;         (if (= max-depth 0)<br>
&gt;             (heuristic-function b)<br>
&gt;             (let ([moves (possible-moves b player)])<br>
&gt;               (if (null? moves)<br>
&gt;                   (minimax/depth b (opponent player) (- max-depth 1))<br>
&gt;                   (let ([scores<br>
&gt;                          (map (lambda (move)<br>
&gt;                                 (minimax-move b player max-depth move))<br>
&gt;                               moves)])<br>
&gt;                     (apply (max/min player) scores)))))))<br>
&gt;     (let ([scores<br>
&gt;            (map (lambda (move) (minimax-move b player max-depth move))<br>
&gt;                 moves)])<br>
&gt;       (let ([best (apply (max/min player) scores)])<br>
&gt;         (let loop ([moves moves] [scores scores])<br>
&gt;           (if (= (car scores) best)<br>
&gt;               (car moves)<br>
&gt;               (loop (cdr moves) (cdr scores))))))))<br>
&gt;<br>
&gt;<br>
&gt; And I used the algorithm but i didnt know how to do these<br>
&gt;<br>
&gt; S ← Successors(n)<br>
&gt;<br>
&gt; best ← −∞<br>
&gt;&gt; for all ni ∈ S do<br>
&gt;&gt;   v ← −αβ(ni, d − 1, −β, −max(α, best))<br>
&gt;<br>
&gt;<br>
&gt; Thanks a lot,<br>
&gt; G<br>
&gt;<br>
&gt; On Sat, Nov 14, 2009 at 9:36 PM, Shriram Krishnamurthi &lt;<a href="mailto:sk@cs.brown.edu">sk@cs.brown.edu</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Sure, we&#39;d be happy to help.  Where are your data definitions,<br>
&gt;&gt; examples of data, and test cases?<br>
&gt;&gt;<br>
&gt;&gt; Shriram<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Nov 14, 2009 at 12:00 PM, G G &lt;<a href="mailto:shaoron@gmail.com">shaoron@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; I am trying to implement the alpha beta pruning but with no luck can<br>
&gt;&gt; &gt; anyone<br>
&gt;&gt; &gt; help me with how it works I am trying to use this Algorithm<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; αβ(n, d, α, β)<br>
&gt;&gt; &gt; S ← Successors(n)<br>
&gt;&gt; &gt; if d ≤ 0 ∨ S ≡ ∅ then<br>
&gt;&gt; &gt; return f(n)<br>
&gt;&gt; &gt; best ← −∞<br>
&gt;&gt; &gt; for all ni ∈ S do<br>
&gt;&gt; &gt;   v ← −αβ(ni, d − 1, −β, −max(α, best))<br>
&gt;&gt; &gt;    if    v &gt; best    then<br>
&gt;&gt; &gt;     best ← v if    best ≥ β    then<br>
&gt;&gt; &gt;       return best<br>
&gt;&gt; &gt; return best<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Best regards,<br>
&gt;&gt; &gt; G<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _________________________________________________<br>
&gt;&gt; &gt;  For list-related administrative tasks:<br>
&gt;&gt; &gt;  <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>