Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/39: Рейтинг темы: голосов - 39, средняя оценка - 4.72
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22

Алгоритм искусственного интеллекта (ИИ)

19.05.2014, 02:12. Показов 9019. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чтобы понять что-то серьезное, требуется начать с малого. Поэтому есть цель начать создавать ИИ с моделирования поведения простейших и двигаться дальше.

Я понимаю, что сейчас будут ссылки на подобные эксперименты. Но, хотелось бы начать именно с нуля.
Кто-то скажет, что это тупиковый вариант (и, скорее всего, даже не станет объяснять почему). Или скажет, что это слишком долго, кто будет обучать ИИ и т.д.
Возможно, в теме вообще никто не ответит. Я готов и к такому повороту событий.
Вероятно, появятся те, кто не верят в создание ИИ вообще или в создание ИИ силами программистов на форуме. Конечно, не исключено, что ИИ - это вечный двигатель нашего времени и он просто невозможен. Также, не исключено, что проект будет столь обширен, что усилий даже всех специалистов форума не хватит для его решения...

Но я все-таки уповаю на то, что интеллект у машины возможен (хотя бы на уровне мышления Спока , и в таком случае, овчинка стоит выделки, ведь создать ИИ - значит увековечить своё имя в истории и получить хороший профит в настоящем. Ну, а если не будет хватать сил, фантазии или каких-либо других ресурсов, всегда можно найти их дополнительно, также совместными усилиями.

Итак, если есть желание немного поломать мозги над созданием искусственных мозгов, милости прошу в эту ветку.

Формат взаимодействия я предлагаю следующий:
1. Мной выкладывается алгоритм
2. Мы его обсуждаем
3. Один или несколько человек берутся реализовывать его
4. Полученный код выкладывается на форуме
5. Этап тестирования
6. Исправление ошибок

Процесс вполне прост и понятен. Однако, в условиях различных специалистов, которые могут откликнуться на подобное предложение, предполагается, наличие кода на разных языках и с разным типом реализации исходной идеи-задачи. Это приводит к выбору идеальной стратегии из имеющихся, и выбору наиболее удобного языка под каждую часть типа ИИ.

Начнем с более простых задач, а затем перейдем к более сложным.

Итак, 1-я задача:
База и движение
Поле для движения ИИ 20*20 клеток
Вид сверху
Клетки белого цвета нейтральны
Клетки кодируются так же, как и в "морском бое". Буквы по горизонтали и цифры по вертикали
ИИ (отдельная подпрограмма) занимает 1 клетку
Цвет черный
ИИ может ходить на 1 клетку за раз в любую из 8 сторон (пока рандомно)

Задача 2-я
Зрение и ориентировка в пространстве
ИИ сканирует всё поле и узнает, где какого цвета клетки (пока только цвет)
После сканирования поля, ИИ получает ту же карту, что и видим мы на экране при взгляде сверху. Обозначая поля клеток А1, А2, А3.. и, соответственно свое местоположение
Черный цвет приравнен к "Я" изначально
После каждого шага, ИИ делает новое сканирование поля

Поясню: это не ИИ, а пока лишь плацдарм для ИИ. Собственно, интеллект начнется со следующей задачи, но необходимо же от чего то отталкиваться.

Вопросы к обсуждению:
Реалистично ли выполнить подобную программу?
На мой взгляд, самое сложное - это реализовать сканирование поля и создание внутренней карты у ИИ. Но, я могу ошибаться. Если необходимо разобрать это подробнее, можем разобрать.
Есть ли у кого-либо готовность выполнить эти участки кода? Или уже выложить результаты реализации?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2014, 02:12
Ответы с готовыми решениями:

Модели и методы искусственного интеллекта
Народ, ОЧЕНЬ нужна книга "модели и методы искусственного интеллекта" (Матвеев, Свиридов, Алейникова).Точнее, мне оттуда нужен алгоритм...

Слишком медленный алгоритм искусственного интеллекта игры Балда
Здравствуйте! Столкнулся с одной сложностью при создании искусственного интеллекта (ИИ) для своей игры Балда. Сначала опишу алгоритм...

Интегральная теория искусственного интеллекта
Ликбез. Когда вообще нужны новые теории? Очевидно, когда не работают старые. Как обстоит с этим делом в ИИ-строении? Давайте...

56
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
23.07.2014, 17:34
Студворк — интернет-сервис помощи студентам
Интересно, вот все вдруг взялись за ИИ, ИИ человеческий, а может попробовать воспроизвести интелект кого-нибудь поменьше, кота, например)
1
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
23.07.2014, 17:52
Вы верно мыслите. До человека как раз и будет смоделирован
ИИ муравья, мышки, кота, волка ..... и человека!! Я в это верю!!
0
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
23.07.2014, 22:37  [ТС]
Цитата Сообщение от xod Посмотреть сообщение
Овцы будут
тратить энергию. Полагаю, что единицу времени будет не
сложно ввести. Предполагаю в программе поставить счётчик,
запустить его, обеспечить регулярную выдачу показаний на экран
(с правой стороны) в условных единицах.
Получил сообщение на почте и 1-м делом кинулся смотреть программу. И в ходе просмотра родилась та же идея. Сделать овец-ИИ, например цифрами 1,2,3,4.. и сбоку или снизу выводить значения "сытости". Пусть их будет меньше, но зато нагляднее. А сытость они могут тратить, например, по единице на каждый шаг.

Цитата Сообщение от chizz Посмотреть сообщение
Добавить параллельность (чтобы овцы бегали все сразу), модель столкновений (можно например по проценту сытости. та, у которой процент сытости меньше, уступает дорогу к еде более сытой. если у сытой 100% сытости, то она уступает дорогу менее сытой. Богатые богатеют, бедные беднеют. Все как в жизни) и будет вообще сказка
При меньшем количестве овец, действительно удобнее будет ввести параллельность движения.
"Сражение сытых" овец - дополнительный интересный параметр, абсолютно согласен.

Добавлено через 1 минуту
Цитата Сообщение от Nachinka Посмотреть сообщение
Интересно, вот все вдруг взялись за ИИ, ИИ человеческий, а может попробовать воспроизвести интелект кого-нибудь поменьше, кота, например)
Так мы и начинаем с простого, с овечек ))
1
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
24.07.2014, 12:02
привязать овце номер (имя) пока не успел, тут надо вводить
дополнительно матрицу, ведь имя овцы это ее новое свойство
- индивидуальность!! Однако теперь овцы стали тратить энергию,
кроме того стала дополнительно расти трава и я вывел сытность
всех овец (пока без номера) на экран. Разброс в цифрах большой!!
Кто-то ходит голодный - отрицательная сытность, кто-то нормально.
Я конечно могу всех овец закормить. Пока думаю. Вероятно разброс
в сытности просто так ликвидировать не удастся. Можно увеличить
числа, тогда относительная разница будет меньше. В общем тут надо
подумать, что можно ещё сделать. Поменять кое-какие параметры.
И посмотреть что получится. Если вы скажете - их накормить - я накормлю
А если - на шашлык ....надо подумать ....
QBasic/QuickBASIC
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
DEFINT A-E, I-N, X-Z
DIM a(1 TO 24, 1 TO 24)
DIM b(3 TO 22, 3 TO 22)
 
DEF fnz (i, j)
   fnz = 0
   IF a(i - 1, j - 1) = 3 THEN fnz = 1: GOTO 100
   IF a(i - 1, j + 1) = 3 THEN fnz = 2: GOTO 100
   IF a(i - 1, j) = 3 THEN fnz = 3:  GOTO 100
   IF a(i + 1, j - 1) = 3 THEN fnz = 4: GOTO 100
   IF a(i + 1, j + 1) = 3 THEN fnz = 5: GOTO 100
   IF a(i + 1, j) = 3 THEN fnz = 6: GOTO 100
   IF a(i, j - 1) = 3 THEN fnz = 7: GOTO 100
   IF a(i, j + 1) = 3 THEN fnz = 8: GOTO 100
100
END DEF
 
DEF fnz2 (i, j)
   fnz2 = 0
   e = a(i - 2, j - 2) = 3 OR a(i - 2, j - 1) = 3 OR a(i - 1, j - 2) = 3
   IF e THEN fnz2 = 1: GOTO 200
   e = a(i - 2, j + 2) = 3 OR a(i - 2, j + 1) = 3 OR a(i - 1, j + 2) = 3
   IF e THEN fnz2 = 2: GOTO 200
   IF a(i - 1, j) = 3 THEN fnz2 = 3:  GOTO 200
   e = a(i + 2, j - 2) = 3 OR a(i + 2, j - 1) = 3 OR a(i + 1, j - 2) = 3
   IF e THEN fnz2 = 4: GOTO 200
   e = a(i + 2, j + 2) = 3 OR a(i + 2, j + 1) = 3 OR a(i + 1, j + 2) = 3
   IF e THEN fnz2 = 5: GOTO 200
   IF a(i + 1, j) = 3 THEN fnz2 = 6: GOTO 200
   IF a(i, j - 1) = 3 THEN fnz2 = 7: GOTO 200
   IF a(i, j + 1) = 3 THEN fnz2 = 8: GOTO 200
200
END DEF
 
RANDOMIZE TIMER
CLS
 
FOR i = 2 TO 23
   FOR j = 2 TO 23
      a(2, j) = 1: a(23, j) = 1
      a(i, 2) = 1: a(i, 23) = 1
      LOCATE 2, j: PRINT "*"
      LOCATE 23, j: PRINT "*"
      LOCATE i, 2: PRINT "*"
      LOCATE i, 23: PRINT "*"
   NEXT j
NEXT i
 
l1 = 0
DO
   x = 19 * RND + 3
   y = 19 * RND + 3
   IF a(x, y) = 0 THEN
      a(x, y) = 2
      b(x, y) = 50
      LOCATE x, y
      PRINT "O"
      l1 = l1 + 1
   END IF
LOOP UNTIL l1 >= 10
 
l2 = 0
DO
   x = 19 * RND + 3
   y = 19 * RND + 3
   IF a(x, y) = 0 THEN
      a(x, y) = 3
      LOCATE x, y
      PRINT "+"
      l2 = l2 + 1
   END IF
LOOP UNTIL l2 >= 50
 
REM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
DO
   DO
      x = 21 * RND + 1.5
      y = 21 * RND + 1.5
      IF a(x, y) = 0 AND m < 10 THEN
         m = m + 1
      ELSEIF a(x, y) = 0 AND m = 10 THEN
         m = 0
         LOCATE x, y
         PRINT "+"
         a(x, y) = 3
      END IF
   LOOP UNTIL a(x, y) = 0
 
   DO
      x = 21 * RND + 1.5
      y = 21 * RND + 1.5
   LOOP UNTIL a(x, y) = 2
 
   b(x, y) = b(x, y) - 1
 
   e = 0
   IF fnz(x, y) > 0 THEN e = fnz(x, y)
   IF b(x, y) = 100 THEN e = 0
 
   SELECT CASE e
      CASE 1
         IF x = 3 OR y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x - 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 2
         IF x = 3 OR y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x - 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 3
         IF x = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 4
         IF x = 22 OR y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x + 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 5
         IF x = 22 OR y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x + 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 6
         IF x = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         x = x + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 7
         IF y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 8
         IF y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE ELSE
         dx = 3 * RND - 1.5
         dy = 3 * RND - 1.5
         IF a(x + dx, y + dy) = 0 THEN
            b(x + dx, y + dy) = b(x, y)
            b(x, y) = 0
            a(x, y) = 0
            LOCATE x, y
            PRINT " "
            x = x + dx
            y = y + dy
            a(x, y) = 2
            LOCATE x, y
            PRINT "O"
         END IF
   END SELECT
 
300
   e = fnz2(x, y)
   SELECT CASE e
      CASE 1
         IF x = 3 OR y = 3 THEN 400
         IF a(x - 1, y - 1) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x - 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 2
         IF x = 3 OR y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x - 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 3
         IF x = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 4
         IF x = 22 OR y = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x + 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 5
         IF x = 22 OR y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x + 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 6
         IF x = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         x = x + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 7
         IF y = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
      CASE 8
         IF y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
   END SELECT
 
ll = 3
FOR i = 3 TO 22
   FOR j = 3 TO 22
      IF a(i, j) = 2 THEN
         LOCATE ll, 28
         PRINT b(i, j)
         ll = ll + 1
      END IF
   NEXT j
NEXT i
  
400
   FOR l& = 1 TO 800000: NEXT
LOOP WHILE INKEY$ = ""
 
'CLS
FOR i = 3 TO 22
   FOR j = 3 TO 22
      IF a(i, j) = 2 THEN PRINT b(i, j);
   NEXT j
NEXT i
END
1
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
24.07.2014, 18:46  [ТС]
Да, овцы-индивидуалистки как-то правдоподобнее! ))

У меня, кстати, была перекормленная овца (индекс еды был 102)

А на "шашлык" или "умирают" пусть овцы с отрицательным значением. Так будет наиболее близко к природе..
1
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
24.07.2014, 19:39
А это вы здорово придумали. Кстати можно тут и пристроить
их размножение. Одной не стало - родилась другая!! А то ведь
какая была проблема. Когда их количество сильно меняется, куда
выносить данные? Все может не поместиться и надо как-то это
ограничивать. Ничего! Все решим! И так попробуем, и по другому.
А то когда просто, то и не интересно. А тут Азарт берет!!
1
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
25.07.2014, 10:10  [ТС]
Цитата Сообщение от xod Посмотреть сообщение
А это вы здорово придумали. Кстати можно тут и пристроить
их размножение. Одной не стало - родилась другая!! А то ведь
какая была проблема. Когда их количество сильно меняется, куда
выносить данные? Все может не поместиться и надо как-то это
ограничивать. Ничего! Все решим! И так попробуем, и по другому.
А то когда просто, то и не интересно. А тут Азарт берет!!
Замечательно! Ведь нами и движет азарт в вопросе создания нового!
1
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
25.07.2014, 11:54
дело движется, овцы получили свои номера, теперь их
можно лучше контролировать. На экран выносится номер овцы и
ее сытность. Надо сначала понаблюдать, что там происходить, а
потом можно будет вносить в программу поправки и новый код.
Удачи нам!!
QBasic/QuickBASIC
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
DEFINT A-F, I-N, X-Z
DIM a(1 TO 24, 1 TO 24)
DIM b(3 TO 22, 3 TO 22)
DIM f(3 TO 22, 3 TO 22)
 
DEF fnz (i, j)
   fnz = 0
   IF a(i - 1, j - 1) = 3 THEN fnz = 1: GOTO 100
   IF a(i - 1, j + 1) = 3 THEN fnz = 2: GOTO 100
   IF a(i - 1, j) = 3 THEN fnz = 3:  GOTO 100
   IF a(i + 1, j - 1) = 3 THEN fnz = 4: GOTO 100
   IF a(i + 1, j + 1) = 3 THEN fnz = 5: GOTO 100
   IF a(i + 1, j) = 3 THEN fnz = 6: GOTO 100
   IF a(i, j - 1) = 3 THEN fnz = 7: GOTO 100
   IF a(i, j + 1) = 3 THEN fnz = 8: GOTO 100
100
END DEF
 
DEF fnz2 (i, j)
   fnz2 = 0
   e = a(i - 2, j - 2) = 3 OR a(i - 2, j - 1) = 3 OR a(i - 1, j - 2) = 3
   IF e THEN fnz2 = 1: GOTO 200
   e = a(i - 2, j + 2) = 3 OR a(i - 2, j + 1) = 3 OR a(i - 1, j + 2) = 3
   IF e THEN fnz2 = 2: GOTO 200
   IF a(i - 1, j) = 3 THEN fnz2 = 3:  GOTO 200
   e = a(i + 2, j - 2) = 3 OR a(i + 2, j - 1) = 3 OR a(i + 1, j - 2) = 3
   IF e THEN fnz2 = 4: GOTO 200
   e = a(i + 2, j + 2) = 3 OR a(i + 2, j + 1) = 3 OR a(i + 1, j + 2) = 3
   IF e THEN fnz2 = 5: GOTO 200
   IF a(i + 1, j) = 3 THEN fnz2 = 6: GOTO 200
   IF a(i, j - 1) = 3 THEN fnz2 = 7: GOTO 200
   IF a(i, j + 1) = 3 THEN fnz2 = 8: GOTO 200
200
END DEF
 
RANDOMIZE TIMER
CLS
 
FOR i = 2 TO 23
   FOR j = 2 TO 23
      a(2, j) = 1: a(23, j) = 1
      a(i, 2) = 1: a(i, 23) = 1
      LOCATE 2, j: PRINT "*"
      LOCATE 23, j: PRINT "*"
      LOCATE i, 2: PRINT "*"
      LOCATE i, 23: PRINT "*"
   NEXT j
NEXT i
 
l1 = 0
DO
   x = 19 * RND + 3
   y = 19 * RND + 3
   IF a(x, y) = 0 THEN
      l1 = l1 + 1
      a(x, y) = 2
      b(x, y) = 50
      LOCATE x, y
      PRINT "O"
      f(x, y) = l1
   END IF
LOOP UNTIL l1 >= 10
 
l2 = 0
DO
   x = 19 * RND + 3
   y = 19 * RND + 3
   IF a(x, y) = 0 THEN
      a(x, y) = 3
      LOCATE x, y
      PRINT "+"
      l2 = l2 + 1
   END IF
LOOP UNTIL l2 >= 50
 
REM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
DO
   DO
      x = 21 * RND + 1.5
      y = 21 * RND + 1.5
      IF a(x, y) = 0 AND m < 10 THEN
         m = m + 1
      ELSEIF a(x, y) = 0 AND m = 10 THEN
         m = 0
         LOCATE x, y
         PRINT "+"
         a(x, y) = 3
      END IF
   LOOP UNTIL a(x, y) = 0
 
   DO
      x = 21 * RND + 1.5
      y = 21 * RND + 1.5
   LOOP UNTIL a(x, y) = 2
 
   b(x, y) = b(x, y) - 1
 
   e = 0
   IF fnz(x, y) > 0 THEN e = fnz(x, y)
   IF b(x, y) = 100 THEN e = 0
 
   SELECT CASE e
      CASE 1
         IF x = 3 OR y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 2
         IF x = 3 OR y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 3
         IF x = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 4
         IF x = 22 OR y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 5
         IF x = 22 OR y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 6
         IF x = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 7
         IF y = 3 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 8
         IF y = 22 THEN 300
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y) + 10
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE ELSE
         dx = 3 * RND - 1.5
         dy = 3 * RND - 1.5
         IF a(x + dx, y + dy) = 0 THEN
            b(x + dx, y + dy) = b(x, y)
            b(x, y) = 0
            a(x, y) = 0
            LOCATE x, y
            PRINT " "
            ff = f(x, y)
            f(x, y) = 0
            x = x + dx
            y = y + dy
            a(x, y) = 2
            f(x, y) = ff
            LOCATE x, y
            PRINT "O"
         END IF
   END SELECT
 
300
   e = fnz2(x, y)
   SELECT CASE e
      CASE 1
         IF x = 3 OR y = 3 THEN 400
         IF a(x - 1, y - 1) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 2
         IF x = 3 OR y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 3
         IF x = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 4
         IF x = 22 OR y = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 5
         IF x = 22 OR y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 6
         IF x = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         x = x + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 7
         IF y = 3 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         y = y - 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
      CASE 8
         IF y = 22 THEN 400
         IF a(x, y) > 0 THEN 400
         LOCATE x, y
         PRINT " "
         a(x, y) = 0
         c = b(x, y)
         b(x, y) = 0
         ff = f(x, y)
         f(x, y) = 0
         y = y + 1
         LOCATE x, y
         PRINT "O"
         a(x, y) = 2
         b(x, y) = c
         f(x, y) = ff
   END SELECT
 
FOR k = 1 TO 10
   FOR i = 3 TO 22
      FOR j = 3 TO 22
         IF f(i, j) = k THEN
            LOCATE k + 3, 30
            PRINT k
            LOCATE k + 3, 35
            PRINT b(i, j)
         END IF
      NEXT j
   NEXT i
NEXT k
  
400
   FOR l& = 1 TO 400000: NEXT
LOOP WHILE INKEY$ = ""
 
'CLS
FOR i = 3 TO 22
   FOR j = 3 TO 22
      IF a(i, j) = 2 THEN PRINT b(i, j);
   NEXT j
NEXT i
END
1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
25.07.2014, 12:54
Может быть станет полезной эта тема Бредоговорящий компьютерный мозг / Бета-тестирование

Добавлено через 4 минуты
Вот тема Проект распределённой нелинейной нейросети для энтузиастов / Проекты
2
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
25.07.2014, 15:56
Да, это довольно интересно. В каждом сообщении бывает
изюминка, для тех кто ищет. Спасибо вам за то, что посетили
эту тему. Значит и вы неравнодушны к ИИ. А посмотрите,
Нас много, на каждом шагу, здесь и по всему миру!!
Спасибо!
0
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
28.07.2014, 18:03  [ТС]
Цитата Сообщение от xod Посмотреть сообщение
дело движется, овцы получили свои номера, теперь их
можно лучше контролировать. На экран выносится номер овцы и
ее сытность. Надо сначала понаблюдать, что там происходить, а
потом можно будет вносить в программу поправки и новый код.
Удачи нам!!
По итогам наблюдения вывел:
1. Есть овцы, которые объедаются, надо их ограничить 100.
2. Есть овцы, которые уходят в "-", их точно надо на шашлык!
3. Удобнее, конечно, чтобы и сами овцы обозначались цифрами, а то немного трудно наблюдать. Или пока оставить 2-3 штуки, также для удобства наблюдения.
4. Пока они зависят от "CASE 1, 2, 3" - это никак не ИИ. Очень важно, чтобы они сами выбирали путь к еде, когда её видят. Тогда - это уже походит на интеллект!

Цитата Сообщение от tolimadokara Посмотреть сообщение
Может быть станет полезной эта тема Бредоговорящий компьютерный мозг / Бета-тестирование
Добавлено через 4 минуты
Вот тема Проект распределённой нелинейной нейросети для энтузиастов / Проекты
Спасибо за информацию, наводит на размышления!
0
28.07.2014, 18:07

Не по теме:

Кликните здесь для просмотра всего текста
Цитата Сообщение от AlexandrNV
Спасибо за информацию, наводит на размышления!
Не за что! Может быть чего-то достигнете в исследованиях.

0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
28.07.2014, 18:25
Цитата Сообщение от AlexandrNV Посмотреть сообщение
Очень важно, чтобы они сами выбирали путь к еде, когда её видят.
Очень важно, чтобы они могли общаться и передавать друг другу информацию о том, где еда. Чтобы сбивались в стаи, чтобы кормили голодных (подобие эмоций - жалости) или бегали за жирными овцами. Вот это да... Хоть какое-то подобие ИИ.

Добавлено через 1 минуту
Но всё равно это не ИИ, а модель, эмуляция.
0
 Аватар для CyberSolver
102 / 75 / 17
Регистрация: 23.07.2014
Сообщений: 877
Записей в блоге: 1
28.07.2014, 19:46
AlexandrNV, а если вы меня смоделируете - это ИИ?
0
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
30.07.2014, 17:45  [ТС]
Есть ли новые варианты кодов, xod?


tolimadokara, надеюсь, спасибо!


Цитата Сообщение от chizz Посмотреть сообщение
Очень важно, чтобы они могли общаться и передавать друг другу информацию о том, где еда. Чтобы сбивались в стаи, чтобы кормили голодных (подобие эмоций - жалости) или бегали за жирными овцами. Вот это да... Хоть какое-то подобие ИИ.
Добавлено через 1 минуту
Но всё равно это не ИИ, а модель, эмуляция.
Эмоции, в дальнейшем - это обязательно! Передача информации друг другу - это да!

Мы и не претендуем на роль Богов-ИИ, делаем, то что возможно увидеть, осознать эмпирическими методами. ))


Цитата Сообщение от CyberSolver Посмотреть сообщение
AlexandrNV, а если вы меня смоделируете - это ИИ?
Вполне, но мне проще себя смоделировать )
0
 Аватар для CyberSolver
102 / 75 / 17
Регистрация: 23.07.2014
Сообщений: 877
Записей в блоге: 1
30.07.2014, 17:59
Цитата Сообщение от AlexandrNV Посмотреть сообщение
Сообщение от CyberSolver
AlexandrNV, а если вы меня смоделируете - это ИИ?
Вполне, но мне проще себя смоделировать )
То есть считаете, что если смоделировать мозг Эйнштейна, то это типа и есть сам Эйнштейн?
0
10 / 10 / 0
Регистрация: 19.05.2014
Сообщений: 22
10.08.2014, 09:23  [ТС]
Цитата Сообщение от CyberSolver Посмотреть сообщение
То есть считаете, что если смоделировать мозг Эйнштейна, то это типа и есть сам Эйнштейн?
Если смоделировать мышление Эйнштейна, то это и есть ИИ.
Допустим, мы впервые видим компьютер:
Если смоделировать компьютер, то это не значит, что он будет делать всё то же самое (выдавать, получать и перерабатывать информацию). Или зачем нам моделировать пчелу, чтобы получать мёд? Важнее смоделировать те действия и продукты, которые производит компьютер или пчела (или другой объект), нам есть необходимость только в них. Аналогично и с мышлением. Никогда не понимал тягу к созданию виртуальной "копии" мозга, хотя, с другой стороны, все пути надо попробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2014, 09:23

Редакторы и языки искусственного интеллекта
Добрый день. Кто нибудь подскажите бесплатные редакторы и языки искусственного интеллекта для Windows

Написать программу искусственного интеллекта
Есть мечта написать программу искусственного интеллекта. Чтобы в процессе программа обучалась и повышала свой уровень. Так же, чтобы...

Реализация алгоритмов искусственного интеллекта
Есть книга: :Реализация алгоритмов искусственного интеллекта на языке PROLOG:

Теоретический способ создания искусственного интеллекта 3
Тема схожа по логике с темой №1 про алфавит, только чуть-чуть интересней (на мой взгляд). Так вот, теперь (гипотетически) берем монитор или...

Системы искусственного интеллекта - разобрать код
Доброго времени суток. Помогите в следующем вопросе... Нужно сделать какое либо задание по система искуственного интелекта (нейронные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru