AuK/Probabilistische Algorithmen SS10

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Scheme</language>
'''Autoren:'''

#Mateusz Zwierz     ([mailto:simazwie@stud.hs-zigr.de simazwie@stud.hs-zigr.de])
#Hans Markwart      ([mailto:sihamark@stud.hs-zigr.de sihamark@stud.hs-zigr.de])

==Einleitung==

==Pseudozufallszahlen==
<code id="4c02583ebf3d3" hidden>
	(require-library 'sisc/libs/srfi/srfi-19)
	(import srfi-19)
</code>

<code id="4c02956bc4d8f" hidden>
(define random-maker
 (let* ((multiplier 48271)
        (modulus 2147483647)
        (apply-congruence
         (lambda (current-seed)
           (let ((candidate (modulo (* current-seed multiplier) modulus)))
             (if (zero? candidate)
                 modulus
                 candidate))))
        (coerce
         (lambda (proposed-seed)
           (if (integer? proposed-seed)
               (- modulus (modulo proposed-seed modulus))
               19860617))))  ;; an arbitrarily chosen birthday
 (lambda (initial-seed)
   (let ((seed (coerce initial-seed)))
     (lambda args
       (cond ((null? args)
              (set! seed (apply-congruence seed))
              (/ (- modulus seed) modulus))
             ((null? (cdr args))
              (let* ((proposed-top
                      (ceiling (abs (car args))))
                     (exact-top
                      (if (inexact? proposed-top)
                          (inexact->exact proposed-top)
                          proposed-top))
                     (top
                      (if (zero? exact-top)
                          1
                          exact-top)))
                (set! seed (apply-congruence seed))
                (inexact->exact (floor (* top (/ seed modulus))))))
             ((eq? (cadr args) 'reset)
              (set! seed (coerce (car args))))
             (else
              (display "random: unrecognized message")
              (newline))))))))

(define random
  (let ((seed (time-nanosecond (current-time))))
;    (display seed)
    (random-maker seed)))

(require-library 'sisc/libs/srfi/srfi-19)
(import srfi-19)   ; stellt current-time usw. bereit

(define random (random-maker (time-nanosecond (current-time))))

(define a 
  (lambda (t el ls)
    (cond
         ((<= t 0) 0)
         ((=(car ls)el) (car ls))
         (else
          (a (- t 1) el (cdr ls))))))



(define search
  (lambda (ns t el ls)
  (cond
    ((= (a  (random t) el ls) 0) 'false)
    ((= (a (random t) el ls) el) 'true)
    (else( search (- ns 1) (random t) el ls)))))

(define ls '(1 2 3 6 6 6))</code>


<eval id="4c02956bc5556">
(search   2 6 1 ls)
</eval>
==Monte-Carlo-Algorithmen==

==Las-Vegas-Algorithmen==

==Ant Colony Optimization==