home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / ai / 3239 < prev    next >
Encoding:
Internet Message Format  |  1992-08-27  |  1.9 KB

  1. Path: sparky!uunet!know!mips2!bull.bull.fr!lvbull.lv.bull.fr!lvbull!sanders
  2. From: sanders@tic.lvbull (Pablo.Sanders)
  3. Newsgroups: comp.ai
  4. Subject: Re: Knight's Tour
  5. Message-ID: <SANDERS.92Aug26095636@tic.lvbull>
  6. Date: 26 Aug 92 09:56:36 GMT
  7. References: <1992Aug12.195140.27863@seas.smu.edu>
  8. Sender: news@lvbull.lv.bull.fr
  9. Distribution: comp.ai,comp.theory
  10. Organization: /atelier/sanders/.organization
  11. Lines: 40
  12. Nntp-Posting-Host: 129.181.184.211
  13. In-reply-to: pedersen@seas.smu.edu's message of 12 Aug 92 19:51:40 GMT
  14.  
  15.  
  16. I recently got flamed for talking about Constraint Programming
  17. (CP) in this group, as it sounded like commercial advertising.
  18. Let's make it clear: I am not trying to sell you anything, but
  19. the 2 problems you quote (Knight and N-queens) are 2 classic
  20. examples of CP, and you might be interested in knowing how 
  21. it is done:
  22.  
  23. Here is the complete code for the N queens problem, written
  24. in the Charme programming language, a language that has a
  25. C-like syntax.
  26.  
  27. define queens(N)
  28. {
  29.   array Q :: [1..N] of 1..N ; /* an array of integer values        */
  30.   alldiff(Q);                 /* ...all elements must be different */
  31.   for I in 1..N-1 do          /* ...constraints on the diagonals   */
  32.     for J in I+1..N do {
  33.       Q[I] + I != Q[J] + J;
  34.       Q[I] + J != Q[J] + I;
  35.     }
  36.   generate (Q) ;              /* generates solution (s)    */
  37. }
  38.  
  39. Constraint Propagation ensures that there is *very little*
  40. backtrack involved in this program.
  41.        
  42. For the Knight tour problem, we first enumerate a graph of
  43. of neighbours and then explore it after setting the constraints.
  44.  
  45. Do you like it ? 
  46.  
  47.  
  48. --
  49. +------------------------o-------------------------+
  50. | Pablo SANDERS          | Bull CEDIAG             |
  51. | P.Sanders@frlv.bull.fr | 68, route de Versailles |
  52. | phone: (33 1) 39024147 | 78430 Louveciennes      |
  53. | fax  : (33 1) 39024652 | FRANCE                  |
  54. +------------------------o-------------------------+
  55.