Научная статья на тему 'Регулярная проверка конечного контура рабочей зоны карьера на основе алгоритма скользящего конуса'

Регулярная проверка конечного контура рабочей зоны карьера на основе алгоритма скользящего конуса Текст научной статьи по специальности «Математика»

CC BY
52
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Регулярная проверка конечного контура рабочей зоны карьера на основе алгоритма скользящего конуса»

© Д.А. Шариф, 2007

УДК 622.271 Д.А. Шариф

РЕГУЛЯРНАЯ ПРОВЕРКА КОНЕЧНОГО КОНТУРА РАБОЧЕЙ ЗОНЫ КАРЬЕРА НА ОСНОВЕ АЛГОРИТМА СКОЛЬЗЯЩЕГО КОНУСА

Семинар № 16

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

Установление окончательных контуров рудника в конце его экономиче-

ской жизни, так, чтобы полная чистая прибыль была максимальна.

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

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

Данная работа основана на алгоритме “повторяющейся формулы скользящего конуса“ (Berlanga et all, 1988). Алгоритм состоит в том, что числовое выражение "скользящего конуса” строится с тремя различными вариантами расстояний, как векторов в определенной системе координат.

Алгоритм «скользящего конуса» реализован в компьютерной программе «Atlas». Программа написана на языке QBasic. Находится в отладке версия программы на языке Visual C++ 6.0. После ввода исходных данных программа создает конус на поверхности

очередного блока. Ищутся все выше- ным, месторождение нарезается на

лежащие блоки, попадающие в конус. блоки равного размера, например

Принимается решение об отработке 10-10-10 м, в каждом блоке рассчи-

вышележащих блоков, попавших в ко- тается содержание полезного компо-

нус. Если получена отрицательная нента, создается экономическая мо-

оценка, конус расширяется. В конце дель, состоящая из блоков имеющих

программа вычисляет количество всех положительную оценку. Блокам с ми-

добываемых блоков и дает послойную нимальным экономическим содержа-

распечатку оценок всех блоков. нием полезного компонента приписы-

Как нужно подготовить данные по вается оценка «нуль». Блоки, попа-

месторождению полезных ископаемых, дающие в области вскрышных пород,

чтобы применить алгоритм скользящего получают отрицательную оценку.

конуса? По геологоразведочным дан-

Далее приведен текст компьютерной программы «Atlas».

10 CLS : INPUT "PLEAS ENTER NUMBER OF RAW”; M 20 INPUT "PLEAS ENTER NUMBER OF COLUMN"; N 30 INPUT "PLEAS ENTER NUMBER OF LEVEL"; K1 40 CLS : PRINT "YOUR DATA FILE NAME IS G2.DAT"

50 DIM A(M, N, K1)

60 VALUE = 0: PRINT "PLEAS CHECK YOUR DATA FILE .DO YOU COMPLETE YOUR DATA FILE?(Y/N)"

70 M$ = INKEY$

80 IF M$ = "Y" OR M$ = "y" THEN 150 90 IF M$ = "N" OR M$ = "n" THEN 120 100 GOTO 70 110 CLS

120 CLS : PRINT "YOU SHOULD COMPLETE YOUR DATA FILE": PRINT "YOUR DATA FILE RAW NUMBER="; M; "AND COLUMN NUMBER="; N; "AND LEVEL NUMBER="; K1

130 PRINT "FOR EXIT TYPE N OR COMPLUTE DATA FILE AND TYPE Y?(Y/N)"

131 M$ = INKEY$

132 IF M$ = "Y" OR M$ = "y" THEN 150

133 IF M$ = "N" OR M$ = "n" THEN 140

134 GOTO 131 140 GOTO 1560

150 CLS : PRINT "PLEAS WAIT"

160 OPEN "A:\G2.DAT" FOR INPUT AS #1 170 FOR K = 1 TO K1 175 FOR I = 1 TO M 180 FOR J = 1 TO N 190 IF EOF(1) THEN GOTO 230 200 INPUT #1, A(I, J, K)

210 NEXT J: NEXT I

220 NEXT K

230 CLOSE #1

240 FOR I = 1 TO M

250 FOR J = 1 TO N

260 IF A(I, J, 1) <= 0 THEN 290

270 VALUE = VALUE + A(I, J, 1)

280 A(I, J, 1) = 0

290 NEXT J: NEXT I

291 GOSUB 309: CLS : PRINT "FIRST PART OF CALCULATION FINISHED. DO YOU WANT TO CONTINUE CALCULATION?(Y/N)"

292 M$ = INKEY$

293 IF M$ = "Y" OR M$ = "y" THEN 296

294 IF M$ = "N" OR M$ = "n" THEN 1560

295 GOTO 292

296 GOSUB 541: CLS : PRINT "SECOND PART OF CALCULATION FINISHED.DO YOU WANT TO CONTINUE CALCULATION?(Y/N)"

297 MS = INKEYS

298 IF MS = "Y" OR MS = "y" THEN 301

299 IF MS = "N" OR mS = "n" THEN 1Б60

300 GOTO 297

301 GOSUB 996: CLS : PRINT "THIRD PART OF CALCULATION FINISHED.DO YOU WAHT TO CONTINUE CALCULATION?(Y/N)"

302 MS = INKEYS

303 IF MS = "Y" OR MS = "y" THEN 306

304 IF MS = "N" OR MS = "n" THEN 1Б60 З0Б GOTO З02

З06 GOSUB 1ЗБ1

309 SUM = 0

310 FOR L = 2 TO K1

311 FOR I = L TO M - L + 1 320 FOR J = L TO N - L + 1 330 IF A(I, J, L) <= 0 THEN БЗ1 340 SUM = 0

ЗБ0 FOR D = 1 TO L 360 FOR K = 0 TO L - D 370 FOR B = I - K TO I + K 380 FOR C = J - K TO J + K

390 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN 410 400

GOTO 420

410 SUM = SUM + A(B, C, D)

420 NEXT C: NEXT B: NEXT K: NEXT D

440 IF SUM < 0 THEN БЗ1

4Б0 VALUE = VALUE + SUM

460 FOR D = 1 TO L

470 FOR K = 0 TO L - D

480 FOR B = I - K TO I + K

490 FOR C = J - K TO J + K

Б00 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN Б20

Б10 GOTO БЗ0 Б20 A(B, C, D) = 0

БЗ0 NEXT C: NEXT B: NEXT K: NEXT D БЗ1 PRINT I, J, L: NEXT J: NEXT I: NEXT L Б40 RETURN Б41 SUM = 0

Б42 FOR L = 2 TO K1: FOR I = L TO M - L + 1: FOR J = L TO N - L + 1 Б4З IF A(I, J, L) <= 0 THEN 981

ББ0 IF I > L - 1 AND I < M - L + 1 AND J > L - 1 AND J < N - L + 1 THEN Б70 Б60 GOTO 981

Б70 A1 = I - L + 1: A2 = J - L + 1: A3 = M - L + 1 - I: A4 = N - L + 1 - J

Б80 IF A1 <= A2 AND A1 <= A3 AND A1 <= A4 THEN 620

Б90 IF A2 <= A1 AND A2 <= A3 AND A2 <= A4 THEN 630

600 IF A3 <= A1 AND A3 <= A2 AND A3 <= A4 THEN 640

610 N1 = A4: GOTO 740

620 N1 = A1: GOTO 740

630 N1 = A2: GOTO 740

640 N1 = A3

740 FOR E = 1 TO N1

7Б0 FOR D = 1 TO L

760 K = L - D + E

790 FOR B = I - K TO I + K

800 FOR C = J - K TO J + K

810 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN 830

820 GOTO 840

830 SUM = SUM + A(B, C, D)

840 NEXT C: NEXT B: NEXT D 8Б0 IF SUM < 0 THEN 860 8ББ GOTO 890 860 NEXT E

86Б IF SUM < 0 THEN 981

870 E = E - 1

890 VALUE = VALUE + SUM 900 FOR D = 1 TO L 910 FOR K = 0 TO L - D + E 930 FOR B = I - K TO I + K 940 FOR C = J - K TO J + K

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9Б0 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN 970 960 GOTO 980 970 A(B, C, D) = 0

980 NEXT C: NEXT B: NEXT K: NEXT D

981 PRINT I, J, L: NEXT J: NEXT I: NEXT L 99Б RETURN

996 SUM1 = 0

997 FOR L = 2 TO K1: FOR I = L TO M - L + 1: FOR J = L TO N - L + 1

998 IF A(I, J, L) <= 0 THEN 1349

1000 IF J < N - L + 1 AND J > L - 1 THEN 1020

1010 GOTO 1349

1020 J1 = J + 1

1030 FOR D = 1 TO L

1040 K = L - D

10Б0 FOR B = I - K TO I + K

1060 FOR C = J1 TO J1 + K

1070 IF B = I - C + J1 + K OR B = I - K + C - J1 THEN 1090

1080 GOTO 1100

1090 SUM1 = SUM1 + A(B, C, D)

1100 NEXT C: NEXT B: NEXT D

1200 IF SUM1 > 0 THEN 12Б0

1210 IF J1 > L - 1 AND J1 < N - L + 1 THEN 1230

1220 GOTO 1349

1230 J1 = J1 + 1

1231 FOR D = 1 TO L

1232 K = L - D

1233 FOR B = I - K TO I + K

1234 FOR C = J1 TO J1 + K

12ЗБ IF B = I - C + J1 + K OR B = I - K + C - J1 THEN 1237

1236 GOTO 1238

1237 SUM1 = SUM1 + A(B, C, D)

1238 NEXT C: NEXT B: NEXT D 1247 GOTO 1200

12Б0 VALUE = VALUE + SUM1 1260 FOR D = 1 TO L 1270 FOR K = 0 TO L - D 1280 FOR B = I - K TO I + K 1290 FOR C = J - K TO J + K

1300 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN 1320 1310 GOTO 1330 1320 A(B, C, D) = 0

1330 NEXT C: NEXT B: NEXT K: NEXT D

1340 FOR J3 = J + 1 TO J1

1341 FOR D = 1 TO L

1342 K = L - D

1343 FOR B = I - K TO I + K

1344 FOR C = J3 TO J3 + K

1З4Б IF B = I - C + J3 + K OR B = I - K + C - J3 THEN 1347

1346 GOTO 1348

1347 A(B, C, D) = 0

1348 NEXT C: NEXT B: NEXT D: NEXT J3

1349 PRINT I, J, L: NEXT J: NEXT I: NEXT L 13Б0 RETURN

1ЗБ1 SUM2 = 0

1ЗБ2 FOR L = 2 TO K1: FOR I = L TO M - L + 1: FOR J = L TO N - L + 1

1ЗБЗ IF A(I, J, L) <= 0 THEN 1480

1ЗБ8 IF I < M - L + 1 AND I > L - 1 THEN 1360

13Б9 GOTO 1480

1360 I1 = I + 1

1361 FOR D = 1 TO L

1362 K = L - D

1363 FOR B = I1 TO I1 + K

1364 FOR C = J - K TO J + K

1З6Б IF B = I1 + K + C - J OR B = I1 - C + J + K THEN 1367

1366 GOTO 1368

1367 SUM2 = SUM2 + A(B, C, D)

1368 NEXT C: NEXT B: NEXT D

1378 IF SUM2 > 0 THEN 1391

1379 IF I1 > L - 1 AND I1 < N - L + 1 THEN 1381

1380 GOTO 1480

1381 I1 = I1 + 1

1382 FOR D = 1 TO L

1383 K = L - D

1384 FOR B = I1 TO I1 + K 1З8Б FOR C = J - K TO J + K

1386 IF B = I1 + K + C - J OR B = I1 - C + J + K THEN 1388

1387 GOTO 1389

1388 SUM2 = SUM2 + A(B, C, D)

1389 NEXT C: NEXT B: NEXT D

1390 GOTO 1378

1391 VALUE = VALUE + SUM2

1392 FOR D = 1 TO L: FOR K = 0 TO L - D: FOR B = I - K TO I + K: FOR C = J - K TO J + K

1393 IF B = I - K + C - J OR B = I - C + J - K OR B = I - C + J + K OR B = I + K + C - J THEN 1З9Б

1394 GOTO 1396 1З9Б A(B, C, D) = 0

1396 NEXT C: NEXT B: NEXT K: NEXT D

1398 GOTO 1378

1399 SUMO = 1: SUM1 = SUM2

1400 GOTO 12Б0

1401 FOR I3 = I + 1 TO I1

1402 FOR D = 1 TO L

1403 K = L - D

1404 FOR B = I3 TO I3 + K 140Б FOR C = J - K TO J + K

1406 IF B = I3 + K + C - J OR B = I3 - C + J + K THEN 1408

1407 GOTO 1409

1408 A(B, C, D) = 0

1409 NEXT C: NEXT B: NEXT D: NEXT I3 1480 PRINT I, J, L: NEXT J: NEXT I: NEXT L 1490 OPEN "A:\G4.OUT" FOR OUTPUT AS #2 1Б00 FOR K = 1 TO K1

1Б0Б FOR I = 1 TO M 1Б10 FOR J = 1 TO N 1Б20 AS = SPACES(3)

1Б21 LSET AS = STRS(A(I, J, K))

1Б22 IF J = N THEN PRINT #2, AS ELSE PRINT #2, AS;

1БЗ0 NEXT J: NEXT I: NEXT K 1Б40 CLOSE #2

1Б41 CLS : PRINT "CALCULATION FINISHED ,FOR STOP TYPE P AND FOR WATCHING VALUE TYPE V?(P/V)"

1Б42 MS = INKEYS

1Б4З IF MS = "P" OR MS = "p" THEN 1Б60 1Б44 IF MS = "V" OR MS = "v" THEN 1ББ0 1Б4Б GOTO 1Б42 1550 PRINT "VALUE="; VALUE 1560 STOP S2E

— Коротко об авторах--------------------------------------------------

Шариф Джафар Абдо плахи - Московский государственный университет им. М.В. Ломоносова, Геологический факультет.

i Надоели баннеры? Вы всегда можете отключить рекламу.