Muchas gracias a todos , la verdad estoy intento programa un algoritmo no se como atacarlo exactamente. El problema que resuelve dicho algoritmo es un problema de localizacion, es el siguiente:
--Tengo un conjunto J de puntos donde se recolecta basura para reciclar.
--Tengo un conjunto centros I de puntos donde se puede mandar esa basura y un costo asociado(Cji)
-- Cada i en I tiene una capacidad de basura que puede recibir.
--Para cada punto fijo *j en J, solo puede ir a un i en I, pero un centro I puede recibier de diferentes puntos de recolección de basura.
--....... mas o menos para poner en contexto
El objetivo es no es minimizar costos ,si no que MAXIMIZAR la cantidad de basura recolectada.
--------------------------------------------------------------------------------------------
Mi algoritmo es:
1.Tomar el punto donde se genera la mayor cantidad de basura.
2.De los centros a donde se puede enviar localizar el que tenga mayor capacidad de recolección.
3.Dividir el presupuesto/costo de mandar de j a i , y me dará las toneladas máximas que pueda mandar hacia algún centro de recolección.
4.Si lo máximo que puedo mandar es mayor a las toneladas que hay en el punto j* en J , pues mandar todo , de otra forma mandar para lo que me alcanza
5. Si aun queda espacio en el centro *j en J , de los puntos de recoleccion hacia lo que esta conectado que me mande el que tenga menos caantida de basura.
Bueno espero no atormentarlos con tanto choro no espero que me ayuden con el porblema , solo como puedo plantearlo mas facilmente en C++, jaja por que no tengo mucha practica hasta ahora llevo esto, pero siento que ocupo definir mas cosas
#include <iostream>
#include<vector>
#include<conio.h>
#include<stdlib.h>
using namespace std;
vector<int> J;
vector<int> I;
int main (){
int n,m;
cout<<"Numero de puntos de residuos: ";
cin>>n;
J.resize(n);
for(int i=0;i<n;i++){
cout<<"Toneladas del punto d"<<i+1<<": ";
cin>>J
;
}
cout<<"Numero de posibles centros a instalar: ";
cin>>m;
I.resize(m);
for(int i=0;i<m;i++){
cout<<"Capacidad en toneladas del punto b"<<i+1<<": ";
cin>>I;
}
//llenar una matriz con ceros y unos
int M_relacion [n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
}
return 0;
}
gracias igual si no le entienden al problema, no pasa nada yo apenas lo ando cachando