Upload
anel-sosahagane
View
65
Download
0
Embed Size (px)
Citation preview
SIMULACIÓN DE UN SISTEMA DE INVENTARIOS
SOSA MEJIA ANEL VERONICA
15 DE DICIEMBRE DE 2016 ITSP
ENRIQUE PONCE RIVERA
import java.util.Scanner;
public class proyecto{
public static void main(String[]args)
{
Scanner br=new Scanner(System.in);
int demanda[]=new int[20];
double ProDemanda[]=new double [9];
double ProEntrega[]=new double[4];
double RDemanda[]=new double[9];
double RTiempo[]=new double[4];
{System.out.println("Escribe la probabilidad: ");
for(int i=0;i<ProDemanda.length;i++)
ProDemanda[i]=Double.parseDouble(br.nextLine());}
System.out.println();
System.out.println("Tiempo: ");
System.out.println("Escribe la probabilidad: ");
for(int c=0;c<ProEntrega.length;c++)
{
double prob=Double.parseDouble(br.nextLine());
ProEntrega[c]=prob;
}
System.out.println("Demanda"+"\t"+"\t"+"Probabilidad");
for(int x=0;x<ProDemanda.length;x++)
{System.out.println(x+"\t"+"\t"+ProDemanda[x]);}
System.out.println();
System.out.println();
System.out.println("Tiempo"+"\t"+"\t"+"Probabilidad");
for(int x1=0;x1<ProEntrega.length;x1++)
{System.out.println(x1+1+"\t"+"\t"+ProEntrega[x1]);}
System.out.println("Días a Simular: ");
int dias=br.nextInt();
System.out.println("Inventario Inicial : ");
int InvInicial=br.nextInt();
System.out.println("Punto de Reorden: ");
double PR=br.nextDouble();
System.out.println("Cantidad a Ordenar: ");
int Co=br.nextInt();
for(int i=0; i<RDemanda.length; i++)
{
if(i==0)
RDemanda[0]=0;
else{
RDemanda[i]=RDemanda[i-1]+ProDemanda[i-1];
}
}
for (int i = 0; i < RTiempo.length; i++) {
if(i==0)
RTiempo[0]=0;
else{
RTiempo[i]=RTiempo[i-1]+ProEntrega[i-1];
}
}
double a=5,c=7,x1=10;
int m=32;
double nl[]=new double [dias];
double xn1;
double div;
boolean si=false;
int Sumador=0;
int Sumador2=0;
System.out.println(" ");
System.out.println("Día"+"\t"+"Aleatorio"+"\t"+"Demanda"+"\t"+"\t"+"Inv.I"+"\t"+"\t"+"I
nv.F"+"\t"+
"\t"+"Faltate"+"\t"+"\t"+"Orden"+"\t"+"\t"+"Aleatorios"+"\t"+"Dias.Entr."+"\t"+"Llegada"
);
for(int x=0;x<dias;x++){
xn1=((a*x1)+c )% m ;
div=xn1/m;
nl[x]=div;
x1=xn1;
for(int i=0;i<x;i++){
if(xn1==nl[i]){si=true;}
}if(si==true)break;
}
double a2=3,c2=6,x2=10;
int m2=32;
double nl2[]=new double [ dias];
double xn2;
double div2;
boolean si2=false;
for(int p=0;p<dias;p++){
xn2=((a2*x2)+c2 )% m2 ;
div2=xn2/m2;
nl2[p]=div2;
x2=xn2;
for(int i=0;i<p;i++){
if(xn2==nl2[i]){si2=true;}
}if(si2==true)break;
}
for(int g=0;g<dias;g++)
{
for(int i=0; i<RDemanda.length-1;i++)
{
if(RDemanda[i]<nl[g] & nl[g]<RDemanda[i+1])
{
demanda[g]=i;
break;
}
}
}
int Tiemp[]=new int[20];
for(int g=0;g<dias;g++)
{
for(int i=0; i<RTiempo.length-1;i++)
{
if(RTiempo[i]<nl2[g] & nl2[g]<RTiempo[i+1])
{
Tiemp[g]=i+1;
break;
}
}
}
int InFinal=0;
int Falt=0;
boolean bandera=false;
int auxTiempo=0;
int cont=0;
String Orden="n";
int Sum=0;
int contador=0;
for(int d=0;d<dias;d++)
{
}
int valorDia=0;
for(int z=0;z<dias;z++)
{
InFinal=InvInicial-demanda[z];
if(InFinal<=PR){
if(bandera!=true)
{
bandera=true;
auxTiempo=Tiemp[cont];
Orden="S"+"\t"+"\t"+nl2[auxTiempo-
1]+"\t"+"\t"+auxTiempo+"\t"+"\t"+Co;
cont++;
valorDia=z+auxTiempo;
contador++;
}
else
Orden="N";
}
if(valorDia==z&bandera==true)
{
InvInicial=InvInicial+Co;
InFinal=InvInicial-demanda[z];
bandera=false;
}
if(InFinal<=0)
{
Falt=-1*InFinal;
InFinal=0;
Sumador2=Falt+Sumador2;
}
if(InFinal>0)
{
Falt=0;
}
if(InFinal<=PR){
if(bandera!=true)
{
bandera=true;
auxTiempo=Tiemp[cont];
Orden="S"+"\t"+"\t"+nl2[auxTiempo-
1]+"\t"+"\t"+auxTiempo+"\t"+"\t"+Co;
cont++;
contador++;
valorDia=z+auxTiempo;
}
}
Sumador=InFinal+Sumador;
System.out.println(z+1+"\t"+nl[z]+"\t"+"\t"+demanda[z]+"\t"+"\t"+InvInicial+"\t"+"\t"+InF
inal+"\t"+"\t"+Falt+"\t"+"\t"+Orden);
InvInicial=InFinal;
Orden="N";
}
double Sumademanda=0;
for(int e=0;e<dias;e++)
{
Sumademanda=Sumademanda+demanda[e]/(double)dias;
}
double Total=(double)Sumador/(double)dias;
int Total2=Sumador2;
System.out.println();
System.out.println("Promedio Demanda="+Sumademanda+"\t"+"Promedio Inv.Final:
"+Total+"\t"+"\t"+"TotaL Faltantes: "+Sumador2+"\t"+"\t"+"Total a Ordenar: "+cont);
}}