This file is indexed.

/usr/share/picolisp/misc/trip.l is in picolisp 3.1.5.2-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 25may11abu
# (c) Software Lab. Alexander Burger

(load "@lib/simul.l")

# Set up distance properties
# See "misc/travel.l" and "doc/travel"
(mapc
   '((L)
      (put (car L) (cadr L) (caddr L))
      (put (cadr L) (car L) (caddr L)) )
   (quote
      (Rheine Muenster 39)
      (Rheine Osnabrueck 42)
      (Muenster Osnabrueck 51)
      (Warendorf Muenster 28)
      (Warendorf Osnabrueck 43)
      (Warendorf Rheda 24)
      (Warendorf Guetersloh 27)
      (Osnabrueck Bielefeld 48)
      (Rheda Guetersloh 10)
      (Bielefeld Guetersloh 16)
      (Bielefeld Paderborn 39)
      (Paderborn Guetersloh 31)
      (Paderborn Rheda 32)
      (Paderborn Soest 41)
      (Soest Rheda 38)
      (Soest Beckum 26)
      (Beckum Rheda 24)
      (Beckum Warendorf 27)
      (Ahlen Warendorf 27)
      (Ahlen Muenster 46)
      (Ahlen Beckum 11)
      (Ahlen Soest 27) ) )

# Find a route from 'A' to 'B'
(de route (A B Lst)
   (if (get A B)
      (list A B)
      (and
         (pick
            '((X)
               (and
                  (not (memq X Lst))
                  (route X B (cons A Lst)) ) )
            (shuffle (mapcar cdr (getl A))) )
         (cons A @) ) ) )

# Minimize trip from 'A' to 'B'
(de trip (Pop Gen A B)
   (gen
      (make (do Pop (link (route A B))))  # Population
      '((Pop) (lt0 (dec 'Gen)))  # Condition
      '((X Y)  # Recombination
         (make
            (while (prog (link (pop 'X)) X)
               (when (member (car X) (cdr Y))
                  (setq Y @)
                  (xchg 'X 'Y) ) ) ) )
      '((L)  # Mutation
         (let (N (length L)  H (>> 1 N)  N1 (rand 1 H)  N2 (rand (inc H) N))
            (if (route (get L N1) (get L N2))
               (append
                  (head (dec N1) L)
                  @
                  (nth L (inc N2)) )
               L ) ) )
      '((L)  # Selection
         (let A (pop 'L)
            (-
               (sum
                  '((X) (get A (setq A X)))
                  L ) ) ) ) ) )

# Optimum hit percentage, e.g. (tst 12 8)
(de tst (Pop Gen)
   (let OK 0
      (do 100
         (when
            (=
               (trip Pop Gen 'Rheine 'Paderborn)
               '(Rheine Muenster Warendorf Rheda Paderborn) )
            (inc 'OK) ) )
      OK ) )