0 / 0
Go back to the English version of the documentation
Model giriş ve çıkış veri dosyası biçimleri
Last updated: 20 Eyl 2023
Decision Optimization model giriş ve çıkış verileri dosya biçimleri

Decision Optimization modelinizle, aşağıdaki giriş ve çıkış veri tanıtıcılarını ve uzantı birleşimlerini kullanabilirsiniz.

Bu tablo, Watson Machine Learningiçindeki Decision Optimization için desteklenen dosya tipi birleşimlerini göstermektedir:
Model tipi Giriş dosyası tipi Çıkış dosyası tipi Yorumlar
cplex
.lp
.mps
.sav
.feasibility
.prm
.jar Java™
modelleri için
.xml
.json

Çıkış dosyasının adı solution olmalıdır

Çıkış biçimi API kullanılarak belirtilebilir.

.lp, .mpsve .sav türündeki dosyalar gzip ya da bzip2kullanılarak sıkıştırılabilir ve .lp.gz ya da .sav.bz2gibi karşıya yüklenebilir.

Çözüm, çakışma ve olurluk dosyaları için CPLEX biçimlerine ilişkin şemalar, cplex_xsds.zip arşivini Decision Optimization githubadresinden yükleyebilirsiniz.

cpo .cpo
.jar for Java
modelleri
.xml
.json

Çıkış dosyasının adı solution olmalıdır

Çıkış biçimi, çözme parametresi kullanılarak belirlenebilir.

CPO modellerine ilişkin yerel dosya biçimi için bkz. CP Optimizer dosya biçimi sözdizimi.

opl
.mod
.dat
.oplproject
.xls
.json
.csv
.jar for Java
modelleri
.xml
.json
.txt
.csv
.xls
Çıkış biçimi giriş tipiyle tutarlıdır, ancak gerekirse çözüm parametresi kullanılarak belirtilebilir. Veri bağlaçlarından yararlanmak için .csv biçimini kullanın.

Yalnızca kayıt kümeleri ile tanımlanan modeller devreye alınabilir; diğer OPL yapıları desteklenmez.

OPL ' de giriş ve çıkışı okumak ve yazmak için bkz. OPL modelleri.

docplex
.py
*.* (giriş verileri)
Modelde belirtilen herhangi bir çıkış dosyası tipi. Python kodunuzda herhangi bir biçim kullanılabilir, ancak veri bağlayıcılarından yararlanmak için .csv biçimini kullanın.

Python' da giriş ve çıkış okumak ve yazmak için get_input_stream("filename") ve get_output_stream("filename")komutlarını kullanın. Bkz. DOcplex API toplam örneği

Veri tanıtıcısı kısıtlamaları
Bir dosya adı aşağıdaki kısıtlamalara sahiptir:
  • 255 karakterle sınırlıdır
  • Yalnızca ASCII karakterleri içerebilir
  • /\?%*:|"<>karakterleri, boşluk karakteri ya da boş değer karakteri içerilemiyor
  • İlk karakter olarak _ karakteri içerilemez

OPL veri biçimleri

OPL modeli, tuple, dvar, minimize (ya da maximize) ve subject toanahtar sözcüklerini kullanarak eniyileme sorununun kayıt düzenlerini, karar değişkenlerini, amaç işlevini ve kısıtlamalarını bildirir. Aşağıdaki örnek bir OPL modelinin özetini göstermektedir:
tuple parameters {
	int maxTrucks;
	int maxVolume;
}
parameters Parameters = ...;

tuple location {
  key string name;
}
{location} Hubs = ...;

tuple spoke {
  key string name;
  int     minDepTime;
  int     maxArrTime;
};
{spoke} Spokes = ...;

dvar int+ TruckOnRoute[Routes][TruckTypeIds] in 0..Parameters.maxTrucks;

[...]

minimize TotalCost;

subject to {
	[...]
} 

OPL giriş verileri

Giriş verileri bir dış veri kaynağından doldurulabilir. OPL modellerine ilişkin giriş verileri aşağıdaki biçimlerden birinde sağlanabilir:

  • .dat dosya
  • JSON belgesi
  • Microsoft Excel çalışma defteri (.xls for Excel 2003 or .xlsx for Excel 2007), .csv dosyaları
.dat dosyası
Tüm OPL veri yapıları desteklenir. Örneğin,
{Parameters = <100, 5000>;

Hubs = { <"G">, <"H"> };

Spokes = { <"A", 360, 1080>, <"B", 400, 1150> };
JSON belgesi ya da Microsoft Excel çalışma defteri
OPL modelinde giriş olarak yalnızca tuples ve tuple sets kullanabilirsiniz.

Üye demeti alanları için desteklenen tipler şunlardır: int, float ya da string.

Giriş değerlerini OPL modelinizle eşlemek için aşağıdaki kuralları izlemeniz gerekir:
  • OPL öğesi, JSON özelliği ya da Excel çalışma sayfasıyla aynı ada sahip olmalıdır.
  • Bir kayıt kümesine JSON özellik dizisi ya da çalışma sayfası yerleştirilebilir.
  • Bir üye demeti öğesine bir JSON özellik nesnesi ya da tek bir satır Excel sayfası yerleştirilebilir.

Girişlerle ilgili sınırlama, veri kaynaklarıyla bütünleştirmeyi kolaylaştırmaktır. Örneğin, SQL veri kaynaklarına en az çabayla erişilebilir ve veri aktarılabilir; NoSQL veri kaynaklarına erişilebilir ve veriler otomatik olarak tablolara dönüştürülebilir. Gerekirse, eniyileme modeli geliştiricisi eniyileme sırasında diğer veri yapılarına veri yerleştirmek için verileri yeniden formüle edebilir, ancak bu işleme giriş ya da çıkış verilerini etkilememelidir.

JSON örneği

Giriş verilerinin oluşturulmasının ve sonuçların ayrıştırılmasının daha kolay olması için OPL model bütünleştirmesi için JSON biçimi kullanılabilir.
{
  "Parameters": {
    "maxTrucks": 100,
    "maxVolume": 5000
  },
  "Hubs": [
    {  "name": "G"  },
    {  "name": "H"  }
  ],
  "Spokes": [
    { "name": "A",
      "minDepTime": 360,
      "maxArrTime": 1080 },
    { "name": "B",
      "minDepTime": 400,
      "maxArrTime": 1150  },
   . . .
}

Excel dosyası

.dat dosyası kullanmak yerine bir Excel dosyası kullanabilirsiniz. Bu seçenek, Excel dosyasının .dat dosyasında dış kaynak olarak belirtilmesi gereken IBM ILOG CPLEX Optimization Studio ' dan farklıdır. Decision Optimization içinde Excel dosyası modele dahil edilmelidir ve bir .dat dosyasından çağrılamaz.

OPL çıkış verileri

Çıktınız bir metin dosyasıysa, amaç işlevi ve karar değişkenlerinin değerleri yapılandırılmamış biçimde sağlanır.

Çıkış biçiminiz JSON, .csv ya da Excel ise, art işleme öbeğinde istemciye geri aktarmak istediğiniz öğeleri tanımlamanız gerekir. Art işleme, .mod dosyasındaki subject to bölümünü izleyen tüm koddur. Bu nedenle, JSON, .csv ya da Excel çıkışını tanımlamak için, art işlemde kayıt ya da kayıt kümelerini bildirmeniz gerekir.

.mod dosyasının art işleme öbeğinde bildirme çıkış öğeleri varsa, Hiçbir çıkış verisi oluşturulmaz.

Aşağıdaki örnekte, çıkış dosyası Result ve NbTrucksOnRouteRes değerini ve hedef işlevini içerir; çünkü bu öğeler art işleme içinde tanımlanır.

subject to {
   [...]
}

tuple result {
  float totalCost;
}
result Result;

execute {
     Result.objValue = cplex.getObjValue();
}

tuple nbTrucksOnRouteRes {
  key string	spoke;
  key string	hub;
  key string	truckType;
  int			nbTruck;
}
{nbTrucksOnRouteRes} NbTrucksOnRouteRes =
  {<r.spoke, r.hub, t, TruckOnRoute[r][t]> | r in Routes, t in TruckTypeIds :
                                                              TruckOnRoute[r][t] > 0};
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more