You are on page 1of 5

* Algoritmo (VB 6.

0)

Option Explicit

Dim i, j, n As Integer For i = 1 To 20

Dim p, q As Integer L(i) = Linic(i)

Dim S1, S2 As Double Next

Dim P1(1 To 101), P2(1 To 101), D(1 To For i = 1 To 20


101) As Double
For j = 1 To 19
Dim X3(1 To 101) As Double
If X1(j) >= X1(j + 1) Then
Dim Y2(1 To 20) As Double
aux1 = X1(j + 1): X1(j + 1) = X1(j): X1(j) =
Dim aux1, aux2, aux3, aux4 As Double aux1

Dim X1(1 To 20), Y1(1 To 20), L(1 To 20) As aux2 = Y1(j + 1): Y1(j + 1) = Y1(j): Y1(j) =
Integer aux2

Dim Xinic(1 To 20), Yinic(1 To 20), Linic(1 To aux3 = L(j + 1): L(j + 1) = L(j): L(j) = aux3
20) As Integer
End If
Dim k, f1, f2, f3, f4, f5, f6, c1, c2, c3, c4, c5,
c6 As Double Next

Private Sub Command1_Click() Next

Open "C:\Documents and For i = 1 To 20


Settings\Administrador\Escritorio\prueba2 Y2(i) = Y1(i)
0.txt" For Input As #1
Next
For i = 1 To 20
For i = 1 To 20
Input #1, Xinic(i), Yinic(i), Linic(i)
For j = 1 To 19
Next
If Y2(j) >= Y2(j + 1) Then
Close #1
aux1 = Y2(j + 1): Y2(j + 1) = Y2(j): Y2(j) =
For i = 1 To 20 aux1
X1(i) = Xinic(i) End If
Next Next
For i = 1 To 20 Next
Y1(i) = Yinic(i) n = 20 'cantidad de datos
Next
For i = 1 To 101

X3(i) = X1(n / 3) + ((X1(2 * n / 3) - X1(n / 3)) Picture1.Scale (X1(1) / 3, Y2(20) + 2 * Y2(1)


/ 100) * (i - 1) / 3)-(X1(20) + 2 * X1(1) / 3, Y2(1) / 3)

For j = 1 To n Picture1.Line (X1(1) - 1, Y2(20) + 1)-(X1(20)


+ 1, Y2(1) - 1), vbBlack, B
If X1(j) <= X3(i) Then
Picture1.Line (X3(101), Y2(1))-(X3(101),
p=p+1 Y2(20)), vbRed
S1 = S1 + L(j)
For i = 1 To 20
End If Picture1.Circle (Xinic(i), Yinic(i)), 1,
If X1(j) >= X3(i) Then vbMagenta

q = q + 1: S2 = S2 + L(j) Next

End If

Next lblxmax.Caption = X1(20)

P1(i) = S1 / p lblxmin.Caption = X1(1)

P2(i) = S2 / q lblymax.Caption = Y2(20)

D(i) = (S1 / p) - (S2 / q) lblymin.Caption = Y2(1)

Next lbldifmax.Caption = X3(101)

For i = 1 To 101 End Sub

For j = 1 To 100

If D(j) >= D(j + 1) Then

aux1 = D(j + 1): D(j + 1) = D(j): aux1 = D(j)

aux2 = X3(j + 1): X3(j + 1) = X3(j): X3(j) =


aux2

aux3 = P1(j + 1): P1(j + 1) = P1(j): P1(j) =


aux3

aux4 = P2(j + 1): P2(j + 1) = P2(j): P2(j) =


aux4

End If

Next

Next
Documento de prueba (Prueba20.txt)

(X) (Y) ( Ley )

* Resultados
* Conclusiones y Aporte

Como podemos observar en el resultado del programa, lo que nos bota es una linea
divisoria, la cual nos indica que a esa distancia se da la maxima diferencia entre las
medias de las leyes de las 2 partes.
Este programa se podria mejorar, en el sentido de que la linea divisoria no sea una
recta sino una curva, un polinomio de grado n y asi mejorar la informacion.
Esto lo estoy haciendo en 2D, pero seria cuestion de tener las 3 vistas de proyeccion
para obtener un solido en 3D.
Generalmente los geologos nos dan informacion acerca de los dominios del yacimiento
teniendo en cuenta su composicion quimica (oxidos, sulfuros, etc) , pero a nosotros
los mineros nos importa, mas que esa informacion, la ley y las zonas de baja y alta ley.
Esto nos puede servir para delimitar entre zona de alta ley y zona de baja ley, esto es
una herramienta para un minado selectivo.
Teniendo bien claro las zonas de alta ley y las de baja ley se podria aplicar un blending
y asi obtener mineral con la ley deseada.
Por ejemplo cuando tenemos un bloque y el geologo nos dice que la ley promedio es
4gr/ton, la zona mas rica tiene 6 gr/ton y estamos felices cuando sacamos ese mineral,
pero cuando llegamos ala zona de baja ley 2gr/ton es un mineral pobre y no tenemos
otra opcion mas que explotarlo, aqu ha sucedido un problema de frontera, una mala
separacion de dominios, si se hubiera separado bien los dominios entonces podriamos
haber explotado solo la zona de alta ley(minado selectivo) o podriamos haber aplicado
un blending y asi obtener un mejor resultado.
* Objetivo
Proponer una solucion para el problema de frontera en mineria

You might also like