title: Mega Run time issue (brute-force approach) , Prolog
body: <p>I am trying to make a schedule out of facts, facts are in form of course_meetings(subject,type,group,description),</p>
  
  <p>I decided to use the brute-force approach</p>
  
  <p>I will generate all possible schedules and see which one will pass all the constraints,
  however the the facts I have generate 2.6, how can I optimize that, and is there a better approach.
  for ex.
  course_meetings(subject,type,group,instructor,description).
  solve:-</p>
  
  <pre><code>findall([A,B,C,D,E],course_meetings(A,B,C,D,E),L),
  permutation(L,L1),
  %and apply constrains on it.
  </code></pre>
  
  <p>i have 32 facts of this format and for permutation its 32!~= 2.6*10^32</p>