Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
RoutingModel.cs
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// <auto-generated />
3//
4// This file was automatically generated by SWIG (https://www.swig.org).
5// Version 4.3.0
6//
7// Do not make changes to this file unless you know what you are doing - modify
8// the SWIG interface file instead.
9//------------------------------------------------------------------------------
10
12
13using System;
14using System.Collections.Generic;
15using Domain = Google.OrTools.Util.Domain;
16
17public partial class RoutingModel : global::System.IDisposable {
18 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
19 protected bool swigCMemOwn;
20
21 internal RoutingModel(global::System.IntPtr cPtr, bool cMemoryOwn) {
22 swigCMemOwn = cMemoryOwn;
23 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
24 }
25
26 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RoutingModel obj) {
27 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
28 }
29
30 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(RoutingModel obj) {
31 if (obj != null) {
32 if (!obj.swigCMemOwn)
33 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
34 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
35 obj.swigCMemOwn = false;
36 obj.Dispose();
37 return ptr;
38 } else {
39 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
40 }
41 }
42
43 ~RoutingModel() {
44 Dispose(false);
45 }
46
47 public void Dispose() {
48 Dispose(true);
49 global::System.GC.SuppressFinalize(this);
50 }
51
52 protected virtual void Dispose(bool disposing) {
53 lock(this) {
54 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
55 if (swigCMemOwn) {
56 swigCMemOwn = false;
58 }
59 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
60 }
61 }
62 }
63
64 // Keep reference to delegate to avoid GC to collect them early.
65 private List<LongToLong> unaryTransitCallbacks;
66 private LongToLong StoreLongToLong(LongToLong c) {
67 if (unaryTransitCallbacks == null)
68 unaryTransitCallbacks = new List<LongToLong>();
69 unaryTransitCallbacks.Add(c);
70 return c;
71 }
72
73 private List<LongLongToLong> transitCallbacks;
74 private LongLongToLong StoreLongLongToLong(LongLongToLong c) {
75 if (transitCallbacks == null)
76 transitCallbacks = new List<LongLongToLong>();
77 transitCallbacks.Add(c);
78 return c;
79 }
80
81 private List<VoidToVoid> solutionCallbacks;
82 private VoidToVoid StoreVoidToVoid(VoidToVoid c) {
83 if (solutionCallbacks == null)
84 solutionCallbacks = new List<VoidToVoid>();
85 solutionCallbacks.Add(c);
86 return c;
87 }
88
89 public partial class VehicleTypeContainer : global::System.IDisposable {
90 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
91 protected bool swigCMemOwn;
92
93 internal VehicleTypeContainer(global::System.IntPtr cPtr, bool cMemoryOwn) {
94 swigCMemOwn = cMemoryOwn;
95 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
96 }
97
98 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(VehicleTypeContainer obj) {
99 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
100 }
101
102 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(VehicleTypeContainer obj) {
103 if (obj != null) {
104 if (!obj.swigCMemOwn)
105 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
106 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
107 obj.swigCMemOwn = false;
108 obj.Dispose();
109 return ptr;
110 } else {
111 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
112 }
113 }
114
115 ~VehicleTypeContainer() {
116 Dispose(false);
117 }
118
119 public void Dispose() {
120 Dispose(true);
121 global::System.GC.SuppressFinalize(this);
122 }
123
124 protected virtual void Dispose(bool disposing) {
125 lock(this) {
126 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
127 if (swigCMemOwn) {
128 swigCMemOwn = false;
130 }
131 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
132 }
133 }
134 }
135
136 public partial class VehicleClassEntry : global::System.IDisposable {
137 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
138 protected bool swigCMemOwn;
139
140 internal VehicleClassEntry(global::System.IntPtr cPtr, bool cMemoryOwn) {
141 swigCMemOwn = cMemoryOwn;
142 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
143 }
144
145 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(VehicleClassEntry obj) {
146 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
147 }
148
149 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(VehicleClassEntry obj) {
150 if (obj != null) {
151 if (!obj.swigCMemOwn)
152 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
153 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
154 obj.swigCMemOwn = false;
155 obj.Dispose();
156 return ptr;
157 } else {
158 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
159 }
160 }
161
162 ~VehicleClassEntry() {
163 Dispose(false);
164 }
165
166 public void Dispose() {
167 Dispose(true);
168 global::System.GC.SuppressFinalize(this);
169 }
170
171 protected virtual void Dispose(bool disposing) {
172 lock(this) {
173 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
174 if (swigCMemOwn) {
175 swigCMemOwn = false;
177 }
178 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
179 }
180 }
181 }
182
183 public int vehicle_class {
184 set {
194 set {
204 }
206 }
207
208 public int NumTypes() {
210 return ret;
211 }
212
213 public int Type(int vehicle) {
215 return ret;
216 }
217
219 set {
221 }
222 get {
224 IntVector ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVector(cPtr, false);
225 return ret;
226 }
227 }
228
229 public SWIGTYPE_p_std__vectorT_std__setT_operations_research__RoutingModel__VehicleTypeContainer__VehicleClassEntry_t_t sorted_vehicle_classes_per_type {
230 set {
231 operations_research_constraint_solverPINVOKE.RoutingModel_VehicleTypeContainer_sorted_vehicle_classes_per_type_set(swigCPtr, SWIGTYPE_p_std__vectorT_std__setT_operations_research__RoutingModel__VehicleTypeContainer__VehicleClassEntry_t_t.getCPtr(value));
232 }
233 get {
235 SWIGTYPE_p_std__vectorT_std__setT_operations_research__RoutingModel__VehicleTypeContainer__VehicleClassEntry_t_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_std__vectorT_std__setT_operations_research__RoutingModel__VehicleTypeContainer__VehicleClassEntry_t_t(cPtr, false);
236 return ret;
237 }
238 }
239
240 public SWIGTYPE_p_std__vectorT_std__dequeT_int_t_t vehicles_per_vehicle_class {
241 set {
243 }
244 get {
246 SWIGTYPE_p_std__vectorT_std__dequeT_int_t_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_std__vectorT_std__dequeT_int_t_t(cPtr, false);
247 return ret;
248 }
249 }
250
251 public VehicleTypeContainer() : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_VehicleTypeContainer(), true) {
252 }
254 }
255
256 public partial class ResourceGroup : global::System.IDisposable {
257 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
258 protected bool swigCMemOwn;
259
260 internal ResourceGroup(global::System.IntPtr cPtr, bool cMemoryOwn) {
261 swigCMemOwn = cMemoryOwn;
262 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
263 }
264
265 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ResourceGroup obj) {
266 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
267 }
268
269 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(ResourceGroup obj) {
270 if (obj != null) {
271 if (!obj.swigCMemOwn)
272 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
273 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
274 obj.swigCMemOwn = false;
275 obj.Dispose();
276 return ptr;
277 } else {
278 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
279 }
280 }
281
282 ~ResourceGroup() {
283 Dispose(false);
284 }
285
286 public void Dispose() {
287 Dispose(true);
288 global::System.GC.SuppressFinalize(this);
289 }
290
291 protected virtual void Dispose(bool disposing) {
292 lock(this) {
293 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
294 if (swigCMemOwn) {
295 swigCMemOwn = false;
297 }
298 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
299 }
300 }
301 }
302
303 public partial class Attributes : global::System.IDisposable {
304 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
305 protected bool swigCMemOwn;
306
307 internal Attributes(global::System.IntPtr cPtr, bool cMemoryOwn) {
308 swigCMemOwn = cMemoryOwn;
309 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
310 }
311
312 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Attributes obj) {
313 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
314 }
315
316 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(Attributes obj) {
317 if (obj != null) {
318 if (!obj.swigCMemOwn)
319 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
320 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
321 obj.swigCMemOwn = false;
322 obj.Dispose();
323 return ptr;
324 } else {
325 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
326 }
327 }
328
329 ~Attributes() {
330 Dispose(false);
331 }
332
333 public void Dispose() {
334 Dispose(true);
335 global::System.GC.SuppressFinalize(this);
336 }
337
338 protected virtual void Dispose(bool disposing) {
339 lock(this) {
340 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
341 if (swigCMemOwn) {
342 swigCMemOwn = false;
344 }
345 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
346 }
347 }
348 }
349
350 public Attributes() : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_ResourceGroup_Attributes__SWIG_0(), true) {
351 }
353 public Attributes(Domain start_domain, Domain end_domain) : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_ResourceGroup_Attributes__SWIG_1(Domain.getCPtr(start_domain), Domain.getCPtr(end_domain)), true) {
356
357 public Domain StartDomain() {
359 return ret;
360 }
361
362 public Domain EndDomain() {
364 return ret;
365 }
366
367 }
368
369 public partial class Resource : global::System.IDisposable {
370 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
371 protected bool swigCMemOwn;
372
373 internal Resource(global::System.IntPtr cPtr, bool cMemoryOwn) {
374 swigCMemOwn = cMemoryOwn;
375 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
376 }
377
378 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Resource obj) {
379 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
380 }
381
382 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(Resource obj) {
383 if (obj != null) {
384 if (!obj.swigCMemOwn)
385 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
386 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
387 obj.swigCMemOwn = false;
388 obj.Dispose();
389 return ptr;
390 } else {
391 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
392 }
393 }
394
395 ~Resource() {
396 Dispose(false);
397 }
398
399 public void Dispose() {
400 Dispose(true);
401 global::System.GC.SuppressFinalize(this);
402 }
403
404 protected virtual void Dispose(bool disposing) {
405 lock(this) {
406 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
407 if (swigCMemOwn) {
408 swigCMemOwn = false;
410 }
411 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
412 }
413 }
414 }
415
418 return ret;
419 }
420
421 }
422
423 public int AddResource(RoutingModel.ResourceGroup.Attributes attributes, RoutingDimension dimension) {
424 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_AddResource(swigCPtr, RoutingModel.ResourceGroup.Attributes.getCPtr(attributes), RoutingDimension.getCPtr(dimension));
432
433 public int[] GetVehiclesRequiringAResource() {
435 IntVector tmpVector = null;
436 if (cPtr != global::System.IntPtr.Zero) {
437 tmpVector = new IntVector(cPtr, true);
438 int[] outArray = new int[tmpVector.Count];
439 tmpVector.CopyTo(outArray);
440 return outArray;
441 }
442 return null;
443 }
444
445 public bool VehicleRequiresAResource(int vehicle) {
447 return ret;
448 }
449
450 public void SetAllowedResourcesForVehicle(int vehicle, int[] allowed_resource_indices) {
451 operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_SetAllowedResourcesForVehicle(swigCPtr, vehicle, allowed_resource_indices.Length, allowed_resource_indices );
453
454 public void ClearAllowedResourcesForVehicle(int vehicle) {
457
458 public SWIGTYPE_p_absl__flat_hash_setT_int_t GetResourcesMarkedAllowedForVehicle(int vehicle) {
459 SWIGTYPE_p_absl__flat_hash_setT_int_t ret = new SWIGTYPE_p_absl__flat_hash_setT_int_t(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetResourcesMarkedAllowedForVehicle(swigCPtr, vehicle), false);
460 return ret;
461 }
462
463 public bool IsResourceAllowedForVehicle(int resource, int vehicle) {
465 return ret;
466 }
467
468 public SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__ResourceGroup__Resource_t GetResources() {
469 SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__ResourceGroup__Resource_t ret = new SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__ResourceGroup__Resource_t(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetResources(swigCPtr), false);
470 return ret;
471 }
472
473 public RoutingModel.ResourceGroup.Resource GetResource(int resource_index) {
474 RoutingModel.ResourceGroup.Resource ret = new RoutingModel.ResourceGroup.Resource(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetResource(swigCPtr, resource_index), false);
475 return ret;
476 }
477
478 public SWIGTYPE_p_absl__flat_hash_setT_RoutingDimensionIndex_t GetAffectedDimensionIndices() {
479 SWIGTYPE_p_absl__flat_hash_setT_RoutingDimensionIndex_t ret = new SWIGTYPE_p_absl__flat_hash_setT_RoutingDimensionIndex_t(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetAffectedDimensionIndices(swigCPtr), false);
480 return ret;
481 }
482
483 public int GetResourceClassesCount() {
485 return ret;
486 }
487
488 public int[] GetResourceIndicesInClass(int resource_class) {
490 IntVector tmpVector = null;
491 if (cPtr != global::System.IntPtr.Zero) {
492 tmpVector = new IntVector(cPtr, true);
493 int[] outArray = new int[tmpVector.Count];
494 tmpVector.CopyTo(outArray);
495 return outArray;
496 }
497 return null;
498 }
499
500 public SWIGTYPE_p_util_intops__StrongVectorT_operations_research__RoutingModel__ResourceClassIndex_std__vectorT_int_t_t GetResourceIndicesPerClass() {
501 SWIGTYPE_p_util_intops__StrongVectorT_operations_research__RoutingModel__ResourceClassIndex_std__vectorT_int_t_t ret = new SWIGTYPE_p_util_intops__StrongVectorT_operations_research__RoutingModel__ResourceClassIndex_std__vectorT_int_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetResourceIndicesPerClass(swigCPtr), false);
502 return ret;
503 }
504
505 public int GetResourceClassIndex(int resource_index) {
510 RoutingModel.ResourceGroup.Attributes ret = new RoutingModel.ResourceGroup.Attributes(operations_research_constraint_solverPINVOKE.RoutingModel_ResourceGroup_GetDimensionAttributesForClass(swigCPtr, RoutingDimension.getCPtr(dimension), rc_index), false);
511 return ret;
512 }
513
514 public int Size() {
516 return ret;
517 }
518
519 public int Index() {
521 return ret;
522 }
523
524 }
525
526 public partial class VariableValuePair : global::System.IDisposable {
527 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
528 protected bool swigCMemOwn;
529
530 internal VariableValuePair(global::System.IntPtr cPtr, bool cMemoryOwn) {
531 swigCMemOwn = cMemoryOwn;
532 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
533 }
534
535 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(VariableValuePair obj) {
536 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
537 }
538
539 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(VariableValuePair obj) {
540 if (obj != null) {
541 if (!obj.swigCMemOwn)
542 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
543 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
544 obj.swigCMemOwn = false;
545 obj.Dispose();
546 return ptr;
547 } else {
548 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
549 }
550 }
551
552 ~VariableValuePair() {
553 Dispose(false);
554 }
555
556 public void Dispose() {
557 Dispose(true);
558 global::System.GC.SuppressFinalize(this);
559 }
560
561 protected virtual void Dispose(bool disposing) {
562 lock(this) {
563 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
564 if (swigCMemOwn) {
565 swigCMemOwn = false;
567 }
568 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
569 }
570 }
571 }
572
573 public int var_index {
574 set {
584 set {
586 }
587 get {
589 return ret;
590 }
591 }
592
593 public VariableValuePair() : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_VariableValuePair(), true) {
594 }
596 }
597
598 public partial class SecondaryOptimizer : global::System.IDisposable {
599 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
600 protected bool swigCMemOwn;
601
602 internal SecondaryOptimizer(global::System.IntPtr cPtr, bool cMemoryOwn) {
603 swigCMemOwn = cMemoryOwn;
604 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
605 }
606
607 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SecondaryOptimizer obj) {
608 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
609 }
610
611 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(SecondaryOptimizer obj) {
612 if (obj != null) {
613 if (!obj.swigCMemOwn)
614 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
615 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
616 obj.swigCMemOwn = false;
617 obj.Dispose();
618 return ptr;
619 } else {
620 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
621 }
622 }
623
624 ~SecondaryOptimizer() {
625 Dispose(false);
626 }
627
628 public void Dispose() {
629 Dispose(true);
630 global::System.GC.SuppressFinalize(this);
631 }
632
633 protected virtual void Dispose(bool disposing) {
634 lock(this) {
635 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
636 if (swigCMemOwn) {
637 swigCMemOwn = false;
639 }
640 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
641 }
642 }
643 }
644
645 public SecondaryOptimizer(RoutingModel model, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, long solve_period) : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_SecondaryOptimizer(RoutingModel.getCPtr(model), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer, solve_period), true) {
646 }
648 public bool Solve(SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__VariableValuePair_t in_state, SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__VariableValuePair_t out_state) {
649 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_SecondaryOptimizer_Solve(swigCPtr, SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__VariableValuePair_t.getCPtr(in_state), SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__VariableValuePair_t.getCPtr(out_state));
655
656 public static long kNoPenalty {
657 get {
659 return ret;
660 }
661 }
662
663 public static int kNoDisjunction {
664 get {
671 get {
673 }
674
675 }
676
677 public RoutingModel(RoutingIndexManager index_manager) : this(operations_research_constraint_solverPINVOKE.new_RoutingModel__SWIG_0(RoutingIndexManager.getCPtr(index_manager)), true) {
678 if (operations_research_constraint_solverPINVOKE.SWIGPendingException.Pending) throw operations_research_constraint_solverPINVOKE.SWIGPendingException.Retrieve();
680
681 public RoutingModel(RoutingIndexManager index_manager, Google.OrTools.ConstraintSolver.RoutingModelParameters parameters) : this(operations_research_constraint_solverPINVOKE.new_RoutingModel__SWIG_1(RoutingIndexManager.getCPtr(index_manager), ProtoHelper.ProtoToByteArray(parameters, out var buffer), buffer), true) {
684
685 public int RegisterUnaryTransitVector( long[] values) {
687 return ret;
688 }
689
690 public int RegisterUnaryTransitCallback( LongToLong callback, int sign) {
692 return ret;
693 }
694
695 public int RegisterUnaryTransitCallback( LongToLong callback) {
697 return ret;
698 }
699
700 public int RegisterTransitMatrix( long[][] values) {
702 values.GetLength(0),
703 NestedArrayHelper.GetArraySecondSize(values),
704 NestedArrayHelper.GetFlatArray(values)
705);
706 return ret;
707 }
708
709 public int RegisterTransitCallback( LongLongToLong callback, int sign) {
710 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_RegisterTransitCallback__SWIG_0(swigCPtr, StoreLongLongToLong(callback) , sign);
711 return ret;
712 }
713
714 public int RegisterTransitCallback( LongLongToLong callback) {
715 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_RegisterTransitCallback__SWIG_1(swigCPtr, StoreLongLongToLong(callback) );
716 return ret;
717 }
718
719 public int RegisterCumulDependentTransitCallback(SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t callback) {
720 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_RegisterCumulDependentTransitCallback(swigCPtr, SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t.getCPtr(callback));
722 return ret;
723 }
724
725 public SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t CumulDependentTransitCallback(int callback_index) {
726 SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t ret = new SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t(operations_research_constraint_solverPINVOKE.RoutingModel_CumulDependentTransitCallback(swigCPtr, callback_index), false);
727 return ret;
728 }
729
730 public bool AddDimension(int evaluator_index, long slack_max, long capacity, bool fix_start_cumul_to_zero, string name) {
731 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AddDimension(swigCPtr, evaluator_index, slack_max, capacity, fix_start_cumul_to_zero, name);
733 return ret;
734 }
735
736 public bool AddDimensionWithVehicleTransits( int[] evaluator_indices, long slack_max, long capacity, bool fix_start_cumul_to_zero, string name) {
737 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AddDimensionWithVehicleTransits(swigCPtr, evaluator_indices.Length, evaluator_indices , slack_max, capacity, fix_start_cumul_to_zero, name);
739 return ret;
740 }
741
742 public bool AddDimensionWithVehicleCapacity(int evaluator_index, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name) {
743 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AddDimensionWithVehicleCapacity(swigCPtr, evaluator_index, slack_max, vehicle_capacities.Length, vehicle_capacities , fix_start_cumul_to_zero, name);
745 return ret;
746 }
747
748 public bool AddDimensionWithVehicleTransitAndCapacity( int[] evaluator_indices, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name) {
749 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AddDimensionWithVehicleTransitAndCapacity(swigCPtr, evaluator_indices.Length, evaluator_indices , slack_max, vehicle_capacities.Length, vehicle_capacities , fix_start_cumul_to_zero, name);
751 return ret;
752 }
753
754 public bool AddDimensionWithCumulDependentVehicleTransitAndCapacity( int[] fixed_evaluator_indices, int[] cumul_dependent_evaluator_indices, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name) {
755 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AddDimensionWithCumulDependentVehicleTransitAndCapacity(swigCPtr, fixed_evaluator_indices.Length, fixed_evaluator_indices , cumul_dependent_evaluator_indices.Length, cumul_dependent_evaluator_indices , slack_max, vehicle_capacities.Length, vehicle_capacities , fix_start_cumul_to_zero, name);
757 return ret;
758 }
759
760 public IntBoolPair AddConstantDimensionWithSlack(long value, long capacity, long slack_max, bool fix_start_cumul_to_zero, string name) {
761 IntBoolPair ret = new IntBoolPair(operations_research_constraint_solverPINVOKE.RoutingModel_AddConstantDimensionWithSlack(swigCPtr, value, capacity, slack_max, fix_start_cumul_to_zero, name), true);
763 return ret;
764 }
765
766 public IntBoolPair AddConstantDimension(long value, long capacity, bool fix_start_cumul_to_zero, string name) {
767 IntBoolPair ret = new IntBoolPair(operations_research_constraint_solverPINVOKE.RoutingModel_AddConstantDimension(swigCPtr, value, capacity, fix_start_cumul_to_zero, name), true);
769 return ret;
770 }
771
772 public IntBoolPair AddVectorDimension( long[] values, long capacity, bool fix_start_cumul_to_zero, string name) {
773 IntBoolPair ret = new IntBoolPair(operations_research_constraint_solverPINVOKE.RoutingModel_AddVectorDimension(swigCPtr, values.Length, values , capacity, fix_start_cumul_to_zero, name), true);
775 return ret;
776 }
777
778 public IntBoolPair AddMatrixDimension( long[][] values, long capacity, bool fix_start_cumul_to_zero, string name) {
780 values.GetLength(0),
781 NestedArrayHelper.GetArraySecondSize(values),
782 NestedArrayHelper.GetFlatArray(values)
783, capacity, fix_start_cumul_to_zero, name), true);
785 return ret;
786 }
787
788 public SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t GetUnaryDimensions() {
789 SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t ret = new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetUnaryDimensions(swigCPtr), true);
790 return ret;
791 }
792
793 public SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t GetDimensionsWithGlobalCumulOptimizers() {
794 SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t ret = new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetDimensionsWithGlobalCumulOptimizers(swigCPtr), true);
795 return ret;
796 }
797
798 public SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t GetDimensionsWithLocalCumulOptimizers() {
799 SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t ret = new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetDimensionsWithLocalCumulOptimizers(swigCPtr), true);
800 return ret;
801 }
802
803 public bool HasGlobalCumulOptimizer(RoutingDimension dimension) {
812 return ret;
813 }
814
815 public SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulLPOptimizer(RoutingDimension dimension) {
817 SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer(cPtr, false);
819 return ret;
820 }
821
822 public SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulMPOptimizer(RoutingDimension dimension) {
824 SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer(cPtr, false);
826 return ret;
827 }
828
829 public SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer GetMutableLocalCumulLPOptimizer(RoutingDimension dimension) {
831 SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer(cPtr, false);
833 return ret;
834 }
835
836 public bool HasDimension(string dimension_name) {
849 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetMutableDimension(swigCPtr, dimension_name);
850 RoutingDimension ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingDimension(cPtr, false);
852 return ret;
853 }
854
855 public void SetPrimaryConstrainedDimension(string dimension_name) {
862 return ret;
863 }
864
867 RoutingModel.ResourceGroup ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.ResourceGroup(cPtr, false);
868 return ret;
869 }
870
871 public SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__RoutingModel__ResourceGroup_t_t GetResourceGroups() {
872 SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__RoutingModel__ResourceGroup_t_t ret = new SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__RoutingModel__ResourceGroup_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetResourceGroups(swigCPtr), false);
873 return ret;
874 }
875
876 public RoutingModel.ResourceGroup GetResourceGroup(int rg_index) {
877 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetResourceGroup(swigCPtr, rg_index);
878 RoutingModel.ResourceGroup ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.ResourceGroup(cPtr, false);
879 return ret;
880 }
881
882 public int[] GetDimensionResourceGroupIndices(RoutingDimension dimension) {
884 IntVector tmpVector = null;
885 if (cPtr != global::System.IntPtr.Zero) {
886 tmpVector = new IntVector(cPtr, true);
887 int[] outArray = new int[tmpVector.Count];
888 tmpVector.CopyTo(outArray);
889 return outArray;
890 }
891 return null;
892}
893
894 public int GetDimensionResourceGroupIndex(RoutingDimension dimension) {
895 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetDimensionResourceGroupIndex(swigCPtr, RoutingDimension.getCPtr(dimension));
896 return ret;
897 }
898
899 public int AddDisjunction( long[] indices, long penalty, long max_cardinality, int penalty_cost_behavior) {
900 return operations_research_constraint_solverPINVOKE.RoutingModel_AddDisjunction__SWIG_0(swigCPtr, indices.Length, indices , penalty, max_cardinality, penalty_cost_behavior);
902
903 public int AddDisjunction( long[] indices, long penalty, long max_cardinality) {
904 return operations_research_constraint_solverPINVOKE.RoutingModel_AddDisjunction__SWIG_1(swigCPtr, indices.Length, indices , penalty, max_cardinality);
906
907 public int AddDisjunction( long[] indices, long penalty) {
908 return operations_research_constraint_solverPINVOKE.RoutingModel_AddDisjunction__SWIG_2(swigCPtr, indices.Length, indices , penalty);
910
911 public int AddDisjunction( long[] indices) {
914
915 public int[] GetDisjunctionIndices(long index) {
916 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetDisjunctionIndices(swigCPtr, index);
917 IntVector tmpVector = null;
918 if (cPtr != global::System.IntPtr.Zero) {
919 tmpVector = new IntVector(cPtr, true);
920 int[] outArray = new int[tmpVector.Count];
921 tmpVector.CopyTo(outArray);
922 return outArray;
923 }
924 return null;
925}
926
927 public long[] GetDisjunctionNodeIndices(int index) {
928 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetDisjunctionNodeIndices(swigCPtr, index);
929 Int64Vector tmpVector = null;
930 if (cPtr != global::System.IntPtr.Zero) {
931 tmpVector = new Int64Vector(cPtr, true);
932 long[] outArray = new long[tmpVector.Count];
933 tmpVector.CopyTo(outArray);
934 return outArray;
935 }
936 return null;
937}
938
939 public long GetDisjunctionPenalty(int index) {
940 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetDisjunctionPenalty(swigCPtr, index);
941 return ret;
942 }
943
944 public long GetDisjunctionMaxCardinality(int index) {
946 return ret;
947 }
948
949 public int GetDisjunctionPenaltyCostBehavior(int index) {
951 return ret;
952 }
953
954 public int GetNumberOfDisjunctions() {
956 return ret;
957 }
958
959 public bool HasMandatoryDisjunctions() {
961 return ret;
962 }
963
966 return ret;
967 }
968
972
973 public void AddSoftSameVehicleConstraint( long[] indices, long cost) {
976
977 public void SetAllowedVehiclesForIndex( int[] vehicles, long index) {
980
981 public bool IsVehicleAllowedForIndex(int vehicle, long index) {
983 return ret;
984 }
985
986 public void AddPickupAndDelivery(long pickup, long delivery) {
989
990 public void AddPickupAndDeliverySets(int pickup_disjunction, int delivery_disjunction) {
991 operations_research_constraint_solverPINVOKE.RoutingModel_AddPickupAndDeliverySets(swigCPtr, pickup_disjunction, delivery_disjunction);
993
994 public partial class PickupDeliveryPosition : global::System.IDisposable {
995 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
996 protected bool swigCMemOwn;
997
998 internal PickupDeliveryPosition(global::System.IntPtr cPtr, bool cMemoryOwn) {
999 swigCMemOwn = cMemoryOwn;
1000 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1001 }
1002
1003 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PickupDeliveryPosition obj) {
1004 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1005 }
1006
1007 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(PickupDeliveryPosition obj) {
1008 if (obj != null) {
1009 if (!obj.swigCMemOwn)
1010 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
1011 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
1012 obj.swigCMemOwn = false;
1013 obj.Dispose();
1014 return ptr;
1015 } else {
1016 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1017 }
1018 }
1019
1020 ~PickupDeliveryPosition() {
1021 Dispose(false);
1022 }
1023
1024 public void Dispose() {
1025 Dispose(true);
1026 global::System.GC.SuppressFinalize(this);
1027 }
1028
1029 protected virtual void Dispose(bool disposing) {
1030 lock(this) {
1031 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
1032 if (swigCMemOwn) {
1033 swigCMemOwn = false;
1035 }
1036 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1037 }
1038 }
1039 }
1040
1041 public int pd_pair_index {
1042 set {
1052 set {
1054 }
1055 get {
1057 return ret;
1058 }
1059 }
1060
1061 public PickupDeliveryPosition() : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_PickupDeliveryPosition(), true) {
1062 }
1064 }
1065
1066 public SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t GetPickupPosition(long node_index) {
1067 SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t ret = new SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetPickupPosition(swigCPtr, node_index), true);
1068 return ret;
1069 }
1070
1071 public SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t GetDeliveryPosition(long node_index) {
1072 SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t ret = new SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetDeliveryPosition(swigCPtr, node_index), true);
1073 return ret;
1074 }
1075
1076 public bool IsPickup(long node_index) {
1078 return ret;
1079 }
1080
1081 public bool IsDelivery(long node_index) {
1083 return ret;
1084 }
1085
1086 public void SetPickupAndDeliveryPolicyOfAllVehicles(int policy) {
1089
1090 public void SetPickupAndDeliveryPolicyOfVehicle(int policy, int vehicle) {
1093
1094 public int GetPickupAndDeliveryPolicyOfVehicle(int vehicle) {
1096 return ret;
1097 }
1098
1099 public int GetNumOfSingletonNodes() {
1101 return ret;
1102 }
1103
1104 public SWIGTYPE_p_std__optionalT_long_t GetFirstMatchingPickupDeliverySibling(long node, SWIGTYPE_p_std__functionT_bool_flongF_t is_match) {
1105 SWIGTYPE_p_std__optionalT_long_t ret = new SWIGTYPE_p_std__optionalT_long_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetFirstMatchingPickupDeliverySibling(swigCPtr, node, SWIGTYPE_p_std__functionT_bool_flongF_t.getCPtr(is_match)), true);
1107 return ret;
1108 }
1109
1110 public void SetVisitType(long index, int type, int type_policy) {
1113
1114 public int GetVisitType(long index) {
1116 return ret;
1117 }
1118
1119 public int[] GetSingleNodesOfType(int type) {
1120 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetSingleNodesOfType(swigCPtr, type);
1121 IntVector tmpVector = null;
1122 if (cPtr != global::System.IntPtr.Zero) {
1123 tmpVector = new IntVector(cPtr, true);
1124 int[] outArray = new int[tmpVector.Count];
1125 tmpVector.CopyTo(outArray);
1126 return outArray;
1127 }
1128 return null;
1129}
1130
1131 public int[] GetPairIndicesOfType(int type) {
1132 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetPairIndicesOfType(swigCPtr, type);
1133 IntVector tmpVector = null;
1134 if (cPtr != global::System.IntPtr.Zero) {
1135 tmpVector = new IntVector(cPtr, true);
1136 int[] outArray = new int[tmpVector.Count];
1137 tmpVector.CopyTo(outArray);
1138 return outArray;
1139 }
1140 return null;
1141}
1142
1143 public int GetVisitTypePolicy(long index) {
1144 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetVisitTypePolicy(swigCPtr, index);
1145 return ret;
1146 }
1147
1148 public int GetNumberOfVisitTypes() {
1150 return ret;
1151 }
1152
1153 public void AddHardTypeIncompatibility(int type1, int type2) {
1156
1157 public void AddTemporalTypeIncompatibility(int type1, int type2) {
1160
1161 public SWIGTYPE_p_absl__flat_hash_setT_int_t GetTemporalTypeIncompatibilitiesOfType(int type) {
1162 SWIGTYPE_p_absl__flat_hash_setT_int_t ret = new SWIGTYPE_p_absl__flat_hash_setT_int_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetTemporalTypeIncompatibilitiesOfType(swigCPtr, type), false);
1163 return ret;
1164 }
1165
1166 public bool HasHardTypeIncompatibilities() {
1168 return ret;
1169 }
1170
1171 public bool HasTemporalTypeIncompatibilities() {
1173 return ret;
1174 }
1175
1176 public void AddRequiredTypeAlternativesWhenAddingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives) {
1177 operations_research_constraint_solverPINVOKE.RoutingModel_AddRequiredTypeAlternativesWhenAddingType(swigCPtr, dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t.getCPtr(required_type_alternatives));
1179 }
1180
1181 public void AddRequiredTypeAlternativesWhenRemovingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives) {
1182 operations_research_constraint_solverPINVOKE.RoutingModel_AddRequiredTypeAlternativesWhenRemovingType(swigCPtr, dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t.getCPtr(required_type_alternatives));
1187 SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t ret = new SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetSameVehicleRequiredTypeAlternativesOfType(swigCPtr, type), false);
1188 return ret;
1189 }
1190
1191 public SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenAddingType(int type) {
1192 SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t ret = new SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetRequiredTypeAlternativesWhenAddingType(swigCPtr, type), false);
1193 return ret;
1194 }
1195
1196 public SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenRemovingType(int type) {
1197 SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t ret = new SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetRequiredTypeAlternativesWhenRemovingType(swigCPtr, type), false);
1198 return ret;
1199 }
1200
1201 public bool HasSameVehicleTypeRequirements() {
1203 return ret;
1204 }
1205
1206 public bool HasTemporalTypeRequirements() {
1208 return ret;
1209 }
1210
1211 public long UnperformedPenalty(long var_index) {
1213 return ret;
1214 }
1215
1216 public long UnperformedPenaltyOrValue(long default_value, long var_index) {
1217 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_UnperformedPenaltyOrValue(swigCPtr, default_value, var_index);
1218 return ret;
1219 }
1220
1221 public long GetDepot() {
1223 return ret;
1224 }
1225
1226 public void SetMaximumNumberOfActiveVehicles(int max_active_vehicles) {
1229
1232 return ret;
1233 }
1234
1235 public void SetArcCostEvaluatorOfAllVehicles(int evaluator_index) {
1238
1239 public void SetArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle) {
1242
1243 public void SetFixedCostOfAllVehicles(long cost) {
1246
1247 public void SetFixedCostOfVehicle(long cost, int vehicle) {
1250
1251 public long GetFixedCostOfVehicle(int vehicle) {
1253 return ret;
1254 }
1255
1256 public void SetPathEnergyCostOfVehicle(string force, string distance, long cost_per_unit, int vehicle) {
1257 operations_research_constraint_solverPINVOKE.RoutingModel_SetPathEnergyCostOfVehicle(swigCPtr, force, distance, cost_per_unit, vehicle);
1259 }
1260
1261 public void SetPathEnergyCostsOfVehicle(string force, string distance, long threshold, long cost_per_unit_below_threshold, long cost_per_unit_above_threshold, int vehicle) {
1262 operations_research_constraint_solverPINVOKE.RoutingModel_SetPathEnergyCostsOfVehicle(swigCPtr, force, distance, threshold, cost_per_unit_below_threshold, cost_per_unit_above_threshold, vehicle);
1269
1270 public void SetAmortizedCostFactorsOfVehicle(long linear_cost_factor, long quadratic_cost_factor, int vehicle) {
1271 operations_research_constraint_solverPINVOKE.RoutingModel_SetAmortizedCostFactorsOfVehicle(swigCPtr, linear_cost_factor, quadratic_cost_factor, vehicle);
1273
1276 Int64Vector tmpVector = null;
1277 if (cPtr != global::System.IntPtr.Zero) {
1278 tmpVector = new Int64Vector(cPtr, true);
1279 long[] outArray = new long[tmpVector.Count];
1280 tmpVector.CopyTo(outArray);
1281 return outArray;
1282 }
1283 return null;
1284}
1285
1287 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetAmortizedQuadraticCostFactorOfVehicles(swigCPtr);
1288 Int64Vector tmpVector = null;
1289 if (cPtr != global::System.IntPtr.Zero) {
1290 tmpVector = new Int64Vector(cPtr, true);
1291 long[] outArray = new long[tmpVector.Count];
1292 tmpVector.CopyTo(outArray);
1293 return outArray;
1294 }
1295 return null;
1296}
1297
1298 public void AddRouteConstraint(SWIGTYPE_p_std__functionT_std__optionalT_long_t_fstd__vectorT_int64_t_t_const_RF_t route_evaluator, bool costs_are_homogeneous_across_vehicles) {
1299 operations_research_constraint_solverPINVOKE.RoutingModel_AddRouteConstraint__SWIG_0(swigCPtr, SWIGTYPE_p_std__functionT_std__optionalT_long_t_fstd__vectorT_int64_t_t_const_RF_t.getCPtr(route_evaluator), costs_are_homogeneous_across_vehicles);
1301 }
1302
1303 public void AddRouteConstraint(SWIGTYPE_p_std__functionT_std__optionalT_long_t_fstd__vectorT_int64_t_t_const_RF_t route_evaluator) {
1304 operations_research_constraint_solverPINVOKE.RoutingModel_AddRouteConstraint__SWIG_1(swigCPtr, SWIGTYPE_p_std__functionT_std__optionalT_long_t_fstd__vectorT_int64_t_t_const_RF_t.getCPtr(route_evaluator));
1309 SWIGTYPE_p_std__optionalT_long_t ret = new SWIGTYPE_p_std__optionalT_long_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetRouteCost(swigCPtr, route.Length, route ), true);
1310 return ret;
1311 }
1312
1313 public void SetVehicleUsedWhenEmpty(bool is_used, int vehicle) {
1316
1317 public bool IsVehicleUsedWhenEmpty(int vehicle) {
1319 return ret;
1320 }
1321
1322 public void SetFirstSolutionEvaluator( LongLongToLong evaluator) {
1325
1326 public void SetFirstSolutionHint(Assignment hint) {
1329
1332 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1333 return ret;
1334 }
1335
1336 public void AddLocalSearchOperator(LocalSearchOperator ls_operator) {
1339
1340 public void AddSearchMonitor(SearchMonitor monitor) {
1343
1344 public void AddEnterSearchCallback( VoidToVoid callback) {
1347
1348 public void AddAtSolutionCallback( VoidToVoid callback, bool track_unchecked_neighbors) {
1349 operations_research_constraint_solverPINVOKE.RoutingModel_AddAtSolutionCallback__SWIG_0(swigCPtr, StoreVoidToVoid(callback) , track_unchecked_neighbors);
1351
1352 public void AddAtSolutionCallback( VoidToVoid callback) {
1355
1356 public void AddRestoreDimensionValuesResetCallback( VoidToVoid callback) {
1359
1360 public void AddVariableMinimizedByFinalizer(IntVar var) {
1363
1364 public void AddVariableMaximizedByFinalizer(IntVar var) {
1367
1368 public void AddWeightedVariableMinimizedByFinalizer(IntVar var, long cost) {
1371
1372 public void AddWeightedVariableMaximizedByFinalizer(IntVar var, long cost) {
1375
1376 public void AddVariableTargetToFinalizer(IntVar var, long target) {
1379
1380 public void AddWeightedVariableTargetToFinalizer(IntVar var, long target, long cost) {
1383
1384 public void CloseModel() {
1391
1392 public Assignment Solve(Assignment assignment) {
1393 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_Solve__SWIG_0(swigCPtr, Assignment.getCPtr(assignment));
1394 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1395 return ret;
1396 }
1397
1398 public Assignment Solve() {
1399 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_Solve__SWIG_1(swigCPtr);
1400 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1401 return ret;
1402 }
1403
1405 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_SolveWithParameters(swigCPtr, ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer);
1406 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1407 return ret;
1408 }
1409
1411 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_SolveFromAssignmentWithParameters(swigCPtr, Assignment.getCPtr(assignment), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer);
1412 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1413 return ret;
1414 }
1415
1416 public Assignment FastSolveFromAssignmentWithParameters(Assignment assignment, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, bool check_solution_in_cp, SWIGTYPE_p_absl__flat_hash_setT_operations_research__IntVar_p_t touched) {
1417 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_FastSolveFromAssignmentWithParameters__SWIG_0(swigCPtr, Assignment.getCPtr(assignment), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer, check_solution_in_cp, SWIGTYPE_p_absl__flat_hash_setT_operations_research__IntVar_p_t.getCPtr(touched));
1418 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1419 return ret;
1420 }
1421
1422 public Assignment FastSolveFromAssignmentWithParameters(Assignment assignment, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, bool check_solution_in_cp) {
1423 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_FastSolveFromAssignmentWithParameters__SWIG_1(swigCPtr, Assignment.getCPtr(assignment), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer, check_solution_in_cp);
1424 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1425 return ret;
1426 }
1427
1428 public Assignment SolveFromAssignmentsWithParameters(SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t assignments, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t solutions) {
1429 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_SolveFromAssignmentsWithParameters__SWIG_0(swigCPtr, SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t.getCPtr(assignments), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer, SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t.getCPtr(solutions));
1430 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1432 return ret;
1433 }
1434
1435 public Assignment SolveFromAssignmentsWithParameters(SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t assignments, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters) {
1436 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_SolveFromAssignmentsWithParameters__SWIG_1(swigCPtr, SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t.getCPtr(assignments), ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer);
1443 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_SolveWithIteratedLocalSearch(swigCPtr, ProtoHelper.ProtoToByteArray(search_parameters, out var buffer), buffer);
1444 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1445 return ret;
1446 }
1447
1448 public void SetAssignmentFromOtherModelAssignment(Assignment target_assignment, RoutingModel source_model, Assignment source_assignment) {
1449 operations_research_constraint_solverPINVOKE.RoutingModel_SetAssignmentFromOtherModelAssignment(swigCPtr, Assignment.getCPtr(target_assignment), RoutingModel.getCPtr(source_model), Assignment.getCPtr(source_assignment));
1451
1452 public long ComputeLowerBound() {
1454 return ret;
1455 }
1456
1457 public long ObjectiveLowerBound() {
1465
1466 public bool EnableDeepSerialization() {
1468 return ret;
1469 }
1470
1471 public IntVar ApplyLocks( long[] locks) {
1472 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_ApplyLocks(swigCPtr, locks.Length, locks );
1473 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1474 return ret;
1475 }
1476
1477 public bool ApplyLocksToAllVehicles( long[][] locks, bool close_routes) {
1479 locks.GetLength(0),
1480 NestedArrayHelper.GetArraySecondSize(locks),
1481 NestedArrayHelper.GetFlatArray(locks)
1482, close_routes);
1483 return ret;
1484 }
1485
1486 public Assignment PreAssignment() {
1487 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_PreAssignment(swigCPtr);
1488 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1489 return ret;
1490 }
1491
1494 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1495 return ret;
1496 }
1497
1498 public bool WriteAssignment(string file_name) {
1505 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_ReadAssignment(swigCPtr, file_name);
1506 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1508 return ret;
1509 }
1510
1511 public Assignment RestoreAssignment(Assignment solution) {
1512 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_RestoreAssignment(swigCPtr, Assignment.getCPtr(solution));
1513 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1515 return ret;
1516 }
1517
1518 public Assignment ReadAssignmentFromRoutes( long[][] routes, bool ignore_inactive_indices) {
1520 routes.GetLength(0),
1521 NestedArrayHelper.GetArraySecondSize(routes),
1522 NestedArrayHelper.GetFlatArray(routes)
1523, ignore_inactive_indices);
1524 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1525 return ret;
1526 }
1527
1528 public bool RoutesToAssignment( long[][] routes, bool ignore_inactive_indices, bool close_routes, Assignment assignment) {
1530 routes.GetLength(0),
1531 NestedArrayHelper.GetArraySecondSize(routes),
1532 NestedArrayHelper.GetFlatArray(routes)
1533, ignore_inactive_indices, close_routes, Assignment.getCPtr(assignment));
1534 return ret;
1535 }
1536
1537 public void AssignmentToRoutes(Assignment assignment, long[][] routes) {
1539 routes.GetLength(0),
1540 NestedArrayHelper.GetArraySecondSize(routes),
1541 NestedArrayHelper.GetFlatArray(routes)
1542);
1544 }
1545
1546 public Assignment CompactAssignment(Assignment assignment) {
1547 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_CompactAssignment(swigCPtr, Assignment.getCPtr(assignment));
1548 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1550 return ret;
1551 }
1552
1554 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_CompactAndCheckAssignment(swigCPtr, Assignment.getCPtr(assignment));
1555 Assignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Assignment(cPtr, false);
1557 return ret;
1558 }
1559
1560 public void AddToAssignment(IntVar var) {
1563
1564 public void AddIntervalToAssignment(IntervalVar interval) {
1567
1568 public partial class NodeNeighborsParameters : global::System.IDisposable {
1569 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
1570 protected bool swigCMemOwn;
1571
1572 internal NodeNeighborsParameters(global::System.IntPtr cPtr, bool cMemoryOwn) {
1573 swigCMemOwn = cMemoryOwn;
1574 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1575 }
1576
1577 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeNeighborsParameters obj) {
1578 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1579 }
1580
1581 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(NodeNeighborsParameters obj) {
1582 if (obj != null) {
1583 if (!obj.swigCMemOwn)
1584 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
1585 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
1586 obj.swigCMemOwn = false;
1587 obj.Dispose();
1588 return ptr;
1589 } else {
1590 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1591 }
1592 }
1593
1594 ~NodeNeighborsParameters() {
1595 Dispose(false);
1596 }
1597
1598 public void Dispose() {
1599 Dispose(true);
1600 global::System.GC.SuppressFinalize(this);
1601 }
1602
1603 protected virtual void Dispose(bool disposing) {
1604 lock(this) {
1605 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
1606 if (swigCMemOwn) {
1607 swigCMemOwn = false;
1609 }
1610 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1611 }
1612 }
1613 }
1614
1615 public int num_neighbors {
1616 set {
1626 set {
1636 set {
1646 set {
1648 }
1649 get {
1651 return ret;
1652 }
1653 }
1654
1655 public NodeNeighborsParameters() : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_NodeNeighborsParameters(), true) {
1656 }
1658 }
1659
1660 public partial class NodeNeighborsByCostClass : global::System.IDisposable {
1661 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
1662 protected bool swigCMemOwn;
1663
1664 internal NodeNeighborsByCostClass(global::System.IntPtr cPtr, bool cMemoryOwn) {
1665 swigCMemOwn = cMemoryOwn;
1666 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1667 }
1668
1669 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeNeighborsByCostClass obj) {
1670 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1671 }
1672
1673 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(NodeNeighborsByCostClass obj) {
1674 if (obj != null) {
1675 if (!obj.swigCMemOwn)
1676 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
1677 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
1678 obj.swigCMemOwn = false;
1679 obj.Dispose();
1680 return ptr;
1681 } else {
1682 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1683 }
1684 }
1685
1686 ~NodeNeighborsByCostClass() {
1687 Dispose(false);
1688 }
1689
1690 public void Dispose() {
1691 Dispose(true);
1692 global::System.GC.SuppressFinalize(this);
1693 }
1694
1695 protected virtual void Dispose(bool disposing) {
1696 lock(this) {
1697 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
1698 if (swigCMemOwn) {
1699 swigCMemOwn = false;
1701 }
1702 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1703 }
1704 }
1705 }
1706
1707 public NodeNeighborsByCostClass(RoutingModel routing_model) : this(operations_research_constraint_solverPINVOKE.new_RoutingModel_NodeNeighborsByCostClass(RoutingModel.getCPtr(routing_model)), true) {
1708 }
1710 public void ComputeNeighbors(RoutingModel.NodeNeighborsParameters params_) {
1711 operations_research_constraint_solverPINVOKE.RoutingModel_NodeNeighborsByCostClass_ComputeNeighbors(swigCPtr, RoutingModel.NodeNeighborsParameters.getCPtr(params_));
1717 IntVector tmpVector = null;
1718 if (cPtr != global::System.IntPtr.Zero) {
1719 tmpVector = new IntVector(cPtr, true);
1720 int[] outArray = new int[tmpVector.Count];
1721 tmpVector.CopyTo(outArray);
1722 return outArray;
1723 }
1724 return null;
1725 }
1726
1727 public int[] GetOutgoingNeighborsOfNodeForCostClass(int cost_class, int node_index) {
1729 IntVector tmpVector = null;
1730 if (cPtr != global::System.IntPtr.Zero) {
1731 tmpVector = new IntVector(cPtr, true);
1732 int[] outArray = new int[tmpVector.Count];
1733 tmpVector.CopyTo(outArray);
1734 return outArray;
1735 }
1736 return null;
1737 }
1738
1739 public bool IsNeighborhoodArcForCostClass(int cost_class, long from, long to) {
1741 return ret;
1742 }
1743
1744 }
1745
1746 public RoutingModel.NodeNeighborsByCostClass GetOrCreateNodeNeighborsByCostClass(double neighbors_ratio, long min_neighbors, SWIGTYPE_p_double neighbors_ratio_used, bool add_vehicle_starts_to_neighbors, bool add_vehicle_ends_to_neighbors, bool only_sort_neighbors_for_partial_neighborhoods) {
1747 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_0(swigCPtr, neighbors_ratio, min_neighbors, SWIGTYPE_p_double.getCPtr(neighbors_ratio_used), add_vehicle_starts_to_neighbors, add_vehicle_ends_to_neighbors, only_sort_neighbors_for_partial_neighborhoods);
1748 RoutingModel.NodeNeighborsByCostClass ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.NodeNeighborsByCostClass(cPtr, false);
1750 return ret;
1751 }
1752
1753 public RoutingModel.NodeNeighborsByCostClass GetOrCreateNodeNeighborsByCostClass(double neighbors_ratio, long min_neighbors, SWIGTYPE_p_double neighbors_ratio_used, bool add_vehicle_starts_to_neighbors, bool add_vehicle_ends_to_neighbors) {
1754 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_1(swigCPtr, neighbors_ratio, min_neighbors, SWIGTYPE_p_double.getCPtr(neighbors_ratio_used), add_vehicle_starts_to_neighbors, add_vehicle_ends_to_neighbors);
1755 RoutingModel.NodeNeighborsByCostClass ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.NodeNeighborsByCostClass(cPtr, false);
1757 return ret;
1758 }
1759
1760 public RoutingModel.NodeNeighborsByCostClass GetOrCreateNodeNeighborsByCostClass(double neighbors_ratio, long min_neighbors, SWIGTYPE_p_double neighbors_ratio_used, bool add_vehicle_starts_to_neighbors) {
1761 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_2(swigCPtr, neighbors_ratio, min_neighbors, SWIGTYPE_p_double.getCPtr(neighbors_ratio_used), add_vehicle_starts_to_neighbors);
1762 RoutingModel.NodeNeighborsByCostClass ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.NodeNeighborsByCostClass(cPtr, false);
1764 return ret;
1765 }
1766
1767 public RoutingModel.NodeNeighborsByCostClass GetOrCreateNodeNeighborsByCostClass(double neighbors_ratio, long min_neighbors, SWIGTYPE_p_double neighbors_ratio_used) {
1768 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_3(swigCPtr, neighbors_ratio, min_neighbors, SWIGTYPE_p_double.getCPtr(neighbors_ratio_used));
1776 RoutingModel.NodeNeighborsByCostClass ret = (cPtr == global::System.IntPtr.Zero) ? null : new RoutingModel.NodeNeighborsByCostClass(cPtr, false);
1778 return ret;
1779 }
1780
1781 public void AddLocalSearchFilter(LocalSearchFilter filter) {
1784
1785 public long Start(int vehicle) {
1787 return ret;
1788 }
1789
1790 public long End(int vehicle) {
1792 return ret;
1793 }
1794
1795 public bool IsStart(long index) {
1797 return ret;
1798 }
1799
1800 public bool IsEnd(long index) {
1802 return ret;
1803 }
1804
1805 public int VehicleIndex(long index) {
1807 return ret;
1808 }
1809
1810 public long Next(Assignment assignment, long index) {
1811 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_Next(swigCPtr, Assignment.getCPtr(assignment), index);
1817 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_IsVehicleUsed(swigCPtr, Assignment.getCPtr(assignment), vehicle);
1824 return ret;
1825 }
1826
1827 public IntVarVector VehicleVars() {
1829 return ret;
1830 }
1831
1832 public IntVarVector ResourceVars(int resource_group) {
1834 return ret;
1835 }
1836
1837 public IntVar NextVar(long index) {
1838 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_NextVar(swigCPtr, index);
1839 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1840 return ret;
1841 }
1842
1843 public IntVar ActiveVar(long index) {
1844 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_ActiveVar(swigCPtr, index);
1845 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1846 return ret;
1847 }
1848
1849 public IntVar ActiveVehicleVar(int vehicle) {
1850 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_ActiveVehicleVar(swigCPtr, vehicle);
1851 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1852 return ret;
1853 }
1854
1855 public IntVar VehicleRouteConsideredVar(int vehicle) {
1856 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_VehicleRouteConsideredVar(swigCPtr, vehicle);
1857 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1858 return ret;
1859 }
1860
1861 public IntVar VehicleVar(long index) {
1862 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_VehicleVar(swigCPtr, index);
1863 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1864 return ret;
1865 }
1866
1867 public IntVar ResourceVar(int vehicle, int resource_group) {
1868 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_ResourceVar(swigCPtr, vehicle, resource_group);
1869 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1870 return ret;
1871 }
1872
1873 public IntVar CostVar() {
1874 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_CostVar(swigCPtr);
1875 IntVar ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVar(cPtr, false);
1876 return ret;
1877 }
1878
1879 public long GetArcCostForVehicle(long from_index, long to_index, long vehicle) {
1880 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetArcCostForVehicle(swigCPtr, from_index, to_index, vehicle);
1881 return ret;
1882 }
1883
1884 public bool CostsAreHomogeneousAcrossVehicles() {
1886 return ret;
1887 }
1888
1889 public long GetHomogeneousCost(long from_index, long to_index) {
1890 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetHomogeneousCost(swigCPtr, from_index, to_index);
1891 return ret;
1892 }
1893
1894 public long GetArcCostForFirstSolution(long from_index, long to_index) {
1896 return ret;
1897 }
1898
1899 public long GetArcCostForClass(long from_index, long to_index, long cost_class_index) {
1900 long ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetArcCostForClass(swigCPtr, from_index, to_index, cost_class_index);
1901 return ret;
1902 }
1903
1904 public int GetCostClassIndexOfVehicle(long vehicle) {
1907
1908 public bool HasVehicleWithCostClassIndex(int cost_class_index) {
1910 return ret;
1911 }
1912
1913 public int GetCostClassesCount() {
1915 return ret;
1916 }
1917
1918 public int GetNonZeroCostClassesCount() {
1920 return ret;
1921 }
1922
1923 public int GetVehicleClassIndexOfVehicle(long vehicle) {
1926
1927 public int GetVehicleOfClass(int vehicle_class) {
1929 return ret;
1930 }
1931
1932 public int GetVehicleClassesCount() {
1934 return ret;
1935 }
1936
1937 public int[] GetSameVehicleIndicesOfIndex(int node) {
1939 IntVector tmpVector = null;
1940 if (cPtr != global::System.IntPtr.Zero) {
1941 tmpVector = new IntVector(cPtr, true);
1942 int[] outArray = new int[tmpVector.Count];
1943 tmpVector.CopyTo(outArray);
1944 return outArray;
1945 }
1946 return null;
1947}
1948
1949 public int[] GetSameActivityIndicesOfIndex(int node) {
1950 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_GetSameActivityIndicesOfIndex(swigCPtr, node);
1951 IntVector tmpVector = null;
1952 if (cPtr != global::System.IntPtr.Zero) {
1953 tmpVector = new IntVector(cPtr, true);
1954 int[] outArray = new int[tmpVector.Count];
1955 tmpVector.CopyTo(outArray);
1956 return outArray;
1957 }
1958 return null;
1959}
1960
1961 public int GetSameActivityGroupOfIndex(int node) {
1962 int ret = operations_research_constraint_solverPINVOKE.RoutingModel_GetSameActivityGroupOfIndex(swigCPtr, node);
1963 return ret;
1964 }
1965
1966 public int GetSameActivityGroupsCount() {
1968 return ret;
1969 }
1970
1971 public int[] GetSameActivityIndicesOfGroup(int group) {
1973 IntVector tmpVector = null;
1974 if (cPtr != global::System.IntPtr.Zero) {
1975 tmpVector = new IntVector(cPtr, true);
1976 int[] outArray = new int[tmpVector.Count];
1977 tmpVector.CopyTo(outArray);
1978 return outArray;
1979 }
1980 return null;
1981}
1982
1983 public RoutingModel.VehicleTypeContainer GetVehicleTypeContainer() {
1984 RoutingModel.VehicleTypeContainer ret = new RoutingModel.VehicleTypeContainer(operations_research_constraint_solverPINVOKE.RoutingModel_GetVehicleTypeContainer(swigCPtr), false);
1985 return ret;
1986 }
1987
1988 public bool ArcIsMoreConstrainedThanArc(long from, long to1, long to2) {
1990 return ret;
1991 }
1992
1993 public string DebugOutputAssignment(Assignment solution_assignment, string dimension_to_print) {
1994 string ret = operations_research_constraint_solverPINVOKE.RoutingModel_DebugOutputAssignment(swigCPtr, Assignment.getCPtr(solution_assignment), dimension_to_print);
2000 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_CheckIfAssignmentIsFeasible(swigCPtr, Assignment.getCPtr(assignment), call_at_solution_monitors);
2006 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_solver(swigCPtr);
2007 Solver ret = (cPtr == global::System.IntPtr.Zero) ? null : new Solver(cPtr, false);
2008 return ret;
2009 }
2010
2011 public bool CheckLimit(SWIGTYPE_p_absl__Duration offset) {
2012 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_CheckLimit__SWIG_0(swigCPtr, SWIGTYPE_p_absl__Duration.getCPtr(offset));
2019 return ret;
2020 }
2021
2022 public void UpdateTimeLimit(SWIGTYPE_p_absl__Duration time_limit) {
2023 operations_research_constraint_solverPINVOKE.RoutingModel_UpdateTimeLimit(swigCPtr, SWIGTYPE_p_absl__Duration.getCPtr(time_limit));
2028 SWIGTYPE_p_absl__Duration ret = new SWIGTYPE_p_absl__Duration(operations_research_constraint_solverPINVOKE.RoutingModel_TimeBuffer(swigCPtr), true);
2029 return ret;
2030 }
2031
2032 public SWIGTYPE_p_std__atomicT_bool_t GetMutableCPSatInterrupt() {
2034 SWIGTYPE_p_std__atomicT_bool_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_std__atomicT_bool_t(cPtr, false);
2035 return ret;
2036 }
2037
2038 public SWIGTYPE_p_std__atomicT_bool_t GetMutableCPInterrupt() {
2040 SWIGTYPE_p_std__atomicT_bool_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_std__atomicT_bool_t(cPtr, false);
2041 return ret;
2042 }
2043
2044 public void CancelSearch() {
2047
2048 public int Nodes() {
2050 return ret;
2051 }
2052
2053 public int Vehicles() {
2055 return ret;
2056 }
2057
2058 public long Size() {
2060 return ret;
2061 }
2062
2065 return ret;
2066 }
2067
2070 return ret;
2071 }
2072
2073 public bool IsMatchingModel() {
2075 return ret;
2076 }
2077
2078 public bool AreRoutesInterdependent(SWIGTYPE_p_operations_research__RoutingSearchParameters parameters) {
2079 bool ret = operations_research_constraint_solverPINVOKE.RoutingModel_AreRoutesInterdependent(swigCPtr, SWIGTYPE_p_operations_research__RoutingSearchParameters.getCPtr(parameters));
2085 global::System.IntPtr cPtr = operations_research_constraint_solverPINVOKE.RoutingModel_MakeGuidedSlackFinalizer(swigCPtr, RoutingDimension.getCPtr(dimension), StoreLongToLong(initializer) );
2086 DecisionBuilder ret = (cPtr == global::System.IntPtr.Zero) ? null : new DecisionBuilder(cPtr, false);
2087 return ret;
2088 }
2089
2092 DecisionBuilder ret = (cPtr == global::System.IntPtr.Zero) ? null : new DecisionBuilder(cPtr, false);
2093 return ret;
2094 }
2095
2098 return ret;
2099 }
2100
2101 public SWIGTYPE_p_std__dequeT_int_t GetVehiclesOfSameClass(long start_end_index) {
2102 SWIGTYPE_p_std__dequeT_int_t ret = new SWIGTYPE_p_std__dequeT_int_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetVehiclesOfSameClass(swigCPtr, start_end_index), false);
2103 return ret;
2104 }
2105
2106 public SWIGTYPE_p_std__vectorT_std__pairT_long_long_t_t GetSameVehicleClassArcs(long from_index, long to_index) {
2107 SWIGTYPE_p_std__vectorT_std__pairT_long_long_t_t ret = new SWIGTYPE_p_std__vectorT_std__pairT_long_long_t_t(operations_research_constraint_solverPINVOKE.RoutingModel_GetSameVehicleClassArcs(swigCPtr, from_index, to_index), true);
2108 return ret;
2109 }
2110
2111 // PickupAndDeliveryPolicy
2116 // TransitEvaluatorSign
2121 // PenaltyCostBehavior
2125 // VisitTypePolicy
2132
2133}
Parameters which have to be set when creating a RoutingModel.
void ComputeNeighbors(RoutingModel.NodeNeighborsParameters params_)
int[] GetIncomingNeighborsOfNodeForCostClass(int cost_class, int node_index)
bool IsNeighborhoodArcForCostClass(int cost_class, long from, long to)
int[] GetOutgoingNeighborsOfNodeForCostClass(int cost_class, int node_index)
RoutingModel.ResourceGroup.Attributes GetDimensionAttributes(RoutingDimension dimension)
RoutingModel.ResourceGroup.Resource GetResource(int resource_index)
SWIGTYPE_p_std__vectorT_operations_research__RoutingModel__ResourceGroup__Resource_t GetResources()
SWIGTYPE_p_absl__flat_hash_setT_RoutingDimensionIndex_t GetAffectedDimensionIndices()
void SetAllowedResourcesForVehicle(int vehicle, int[] allowed_resource_indices)
bool IsResourceAllowedForVehicle(int resource, int vehicle)
SWIGTYPE_p_absl__flat_hash_setT_int_t GetResourcesMarkedAllowedForVehicle(int vehicle)
RoutingModel.ResourceGroup.Attributes GetDimensionAttributesForClass(RoutingDimension dimension, int rc_index)
int AddResource(RoutingModel.ResourceGroup.Attributes attributes, RoutingDimension dimension)
SWIGTYPE_p_util_intops__StrongVectorT_operations_research__RoutingModel__ResourceClassIndex_std__vectorT_int_t_t GetResourceIndicesPerClass()
SWIGTYPE_p_std__vectorT_std__dequeT_int_t_t vehicles_per_vehicle_class
SWIGTYPE_p_std__vectorT_std__setT_operations_research__RoutingModel__VehicleTypeContainer__VehicleClassEntry_t_t sorted_vehicle_classes_per_type
IntVar ResourceVar(int vehicle, int resource_group)
void SetAmortizedCostFactorsOfVehicle(long linear_cost_factor, long quadratic_cost_factor, int vehicle)
bool HasLocalCumulOptimizer(RoutingDimension dimension)
RoutingDimension GetDimensionOrDie(string dimension_name)
static readonly int PICKUP_AND_DELIVERY_NO_ORDER
PickupAndDeliveryPolicy.
Assignment RestoreAssignment(Assignment solution)
string DebugOutputAssignment(Assignment solution_assignment, string dimension_to_print)
SWIGTYPE_p_std__vectorT_std__pairT_long_long_t_t GetSameVehicleClassArcs(long from_index, long to_index)
void SetPrimaryConstrainedDimension(string dimension_name)
void SetPickupAndDeliveryPolicyOfVehicle(int policy, int vehicle)
long GetArcCostForClass(long from_index, long to_index, long cost_class_index)
SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t GetPickupPosition(long node_index)
int AddDisjunction(long[] indices, long penalty, long max_cardinality, int penalty_cost_behavior)
bool ApplyLocksToAllVehicles(long[][] locks, bool close_routes)
SWIGTYPE_p_absl__flat_hash_setT_int_t GetTemporalTypeIncompatibilitiesOfType(int type)
void SetAllowedVehiclesForIndex(int[] vehicles, long index)
bool AddDimension(int evaluator_index, long slack_max, long capacity, bool fix_start_cumul_to_zero, string name)
void AddWeightedVariableTargetToFinalizer(IntVar var, long target, long cost)
bool AddDimensionWithVehicleTransits(int[] evaluator_indices, long slack_max, long capacity, bool fix_start_cumul_to_zero, string name)
SWIGTYPE_p_std__optionalT_operations_research__RoutingModel__PickupDeliveryPosition_t GetDeliveryPosition(long node_index)
Assignment CompactAssignment(Assignment assignment)
void AddIntervalToAssignment(IntervalVar interval)
bool IsVehicleUsed(Assignment assignment, int vehicle)
void AddVariableTargetToFinalizer(IntVar var, long target)
void SetFixedCostOfVehicle(long cost, int vehicle)
RoutingDimension GetMutableDimension(string dimension_name)
void SetVisitType(long index, int type, int type_policy)
void AssignmentToRoutes(Assignment assignment, long[][] routes)
bool HasGlobalCumulOptimizer(RoutingDimension dimension)
bool ArcIsMoreConstrainedThanArc(long from, long to1, long to2)
void AddTemporalTypeIncompatibility(int type1, int type2)
Assignment SolveWithIteratedLocalSearch(Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t CumulDependentTransitCallback(int callback_index)
void AddWeightedVariableMinimizedByFinalizer(IntVar var, long cost)
SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t GetDimensionsWithGlobalCumulOptimizers()
void SetPathEnergyCostOfVehicle(string force, string distance, long cost_per_unit, int vehicle)
IntVarVector ResourceVars(int resource_group)
void AddPickupAndDelivery(long pickup, long delivery)
SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenAddingType(int type)
long GetHomogeneousCost(long from_index, long to_index)
void SetPathEnergyCostsOfVehicle(string force, string distance, long threshold, long cost_per_unit_below_threshold, long cost_per_unit_above_threshold, int vehicle)
bool AddDimensionWithVehicleTransitAndCapacity(int[] evaluator_indices, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name)
SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulLPOptimizer(RoutingDimension dimension)
bool AddDimensionWithCumulDependentVehicleTransitAndCapacity(int[] fixed_evaluator_indices, int[] cumul_dependent_evaluator_indices, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name)
RoutingModel.ResourceGroup AddResourceGroup()
static readonly int TYPE_ADDED_TO_VEHICLE
VisitTypePolicy.
long GetNumberOfDecisionsInFirstSolution(Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
long GetArcCostForVehicle(long from_index, long to_index, long vehicle)
static readonly int kTransitEvaluatorSignUnknown
TransitEvaluatorSign.
void AddEnterSearchCallback(VoidToVoid callback)
Assignment SolveWithParameters(Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
void AddSearchMonitor(SearchMonitor monitor)
int GetDimensionResourceGroupIndex(RoutingDimension dimension)
void SetFirstSolutionEvaluator(LongLongToLong evaluator)
void AddHardTypeIncompatibility(int type1, int type2)
void AddPickupAndDeliverySets(int pickup_disjunction, int delivery_disjunction)
void AddLocalSearchOperator(LocalSearchOperator ls_operator)
void SetArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle)
long UnperformedPenaltyOrValue(long default_value, long var_index)
RoutingModel.NodeNeighborsByCostClass GetOrCreateNodeNeighborsByCostClass(double neighbors_ratio, long min_neighbors, SWIGTYPE_p_double neighbors_ratio_used, bool add_vehicle_starts_to_neighbors, bool add_vehicle_ends_to_neighbors, bool only_sort_neighbors_for_partial_neighborhoods)
void SetAmortizedCostFactorsOfAllVehicles(long linear_cost_factor, long quadratic_cost_factor)
void AddLocalSearchFilter(LocalSearchFilter filter)
bool HasDimension(string dimension_name)
bool AreRoutesInterdependent(SWIGTYPE_p_operations_research__RoutingSearchParameters parameters)
SWIGTYPE_p_std__atomicT_bool_t GetMutableCPSatInterrupt()
SWIGTYPE_p_std__atomicT_bool_t GetMutableCPInterrupt()
Assignment SolveFromAssignmentsWithParameters(SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t assignments, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, SWIGTYPE_p_std__vectorT_operations_research__Assignment_const_p_t solutions)
void AddRequiredTypeAlternativesWhenRemovingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives)
DecisionBuilder MakeSelfDependentDimensionFinalizer(RoutingDimension dimension)
SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetSameVehicleRequiredTypeAlternativesOfType(int type)
int RegisterTransitCallback(LongLongToLong callback, int sign)
SWIGTYPE_p_std__optionalT_long_t GetRouteCost(long[] route)
void SetArcCostEvaluatorOfAllVehicles(int evaluator_index)
SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_const_p_t GetDimensionsWithLocalCumulOptimizers()
void AddRequiredTypeAlternativesWhenAddingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives)
bool AddDimensionWithVehicleCapacity(int evaluator_index, long slack_max, long[] vehicle_capacities, bool fix_start_cumul_to_zero, string name)
DecisionBuilder MakeGuidedSlackFinalizer(RoutingDimension dimension, LongToLong initializer)
void AddWeightedVariableMaximizedByFinalizer(IntVar var, long cost)
long GetArcCostForFirstSolution(long from_index, long to_index)
Assignment SolveFromAssignmentWithParameters(Assignment assignment, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
void UpdateTimeLimit(SWIGTYPE_p_absl__Duration time_limit)
Assignment ReadAssignmentFromRoutes(long[][] routes, bool ignore_inactive_indices)
Google.OrTools.ConstraintSolver.RoutingSearchStatus.Types.Value GetStatus()
Assignment FastSolveFromAssignmentWithParameters(Assignment assignment, Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters, bool check_solution_in_cp, SWIGTYPE_p_absl__flat_hash_setT_operations_research__IntVar_p_t touched)
static readonly int PENALIZE_ONCE
PenaltyCostBehavior.
bool RoutesToAssignment(long[][] routes, bool ignore_inactive_indices, bool close_routes, Assignment assignment)
IntBoolPair AddConstantDimensionWithSlack(long value, long capacity, long slack_max, bool fix_start_cumul_to_zero, string name)
int[] GetDimensionResourceGroupIndices(RoutingDimension dimension)
bool IsVehicleAllowedForIndex(int vehicle, long index)
SWIGTYPE_p_std__dequeT_int_t GetVehiclesOfSameClass(long start_end_index)
SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t GetUnaryDimensions()
void AddSoftSameVehicleConstraint(long[] indices, long cost)
long GetNumberOfRejectsInFirstSolution(Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
void SetMaximumNumberOfActiveVehicles(int max_active_vehicles)
bool HasVehicleWithCostClassIndex(int cost_class_index)
void SetVehicleUsedWhenEmpty(bool is_used, int vehicle)
SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer GetMutableLocalCumulLPOptimizer(RoutingDimension dimension)
IntBoolPair AddVectorDimension(long[] values, long capacity, bool fix_start_cumul_to_zero, string name)
SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__RoutingModel__ResourceGroup_t_t GetResourceGroups()
SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulMPOptimizer(RoutingDimension dimension)
SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenRemovingType(int type)
void CloseModelWithParameters(Google.OrTools.ConstraintSolver.RoutingSearchParameters search_parameters)
void AddRouteConstraint(SWIGTYPE_p_std__functionT_std__optionalT_long_t_fstd__vectorT_int64_t_t_const_RF_t route_evaluator, bool costs_are_homogeneous_across_vehicles)
long Next(Assignment assignment, long index)
void SetAssignmentFromOtherModelAssignment(Assignment target_assignment, RoutingModel source_model, Assignment source_assignment)
int RegisterCumulDependentTransitCallback(SWIGTYPE_p_std__functionT_FloatSlopePiecewiseLinearFunction_const_pflong_longF_t callback)
IntBoolPair AddConstantDimension(long value, long capacity, bool fix_start_cumul_to_zero, string name)
void AddAtSolutionCallback(VoidToVoid callback, bool track_unchecked_neighbors)
Assignment CompactAndCheckAssignment(Assignment assignment)
Assignment ReadAssignment(string file_name)
RoutingModel.VehicleTypeContainer GetVehicleTypeContainer()
int RegisterUnaryTransitCallback(LongToLong callback, int sign)
SWIGTYPE_p_std__optionalT_long_t GetFirstMatchingPickupDeliverySibling(long node, SWIGTYPE_p_std__functionT_bool_flongF_t is_match)
bool CheckIfAssignmentIsFeasible(Assignment assignment, bool call_at_solution_monitors)
static readonly int TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
RoutingModel.ResourceGroup GetResourceGroup(int rg_index)
void AddRestoreDimensionValuesResetCallback(VoidToVoid callback)
IntBoolPair AddMatrixDimension(long[][] values, long capacity, bool fix_start_cumul_to_zero, string name)
Parameters defining the search used to solve vehicle routing problems.
Container for nested types declared in the RoutingSearchStatus message type.
Used by RoutingModel to report the status of the search for a solution.
static global::System.IntPtr RoutingModel_ResourceGroup_GetResourcesMarkedAllowedForVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static string RoutingModel_GetPrimaryConstrainedDimension(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_SolveFromAssignmentsWithParameters__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int search_parameters_size, byte[] jarg3)
static global::System.IntPtr RoutingModel_GetFirstMatchingPickupDeliverySibling(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static bool RoutingModel_ResourceGroup_IsResourceAllowedForVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static int RoutingModel_Nodes(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_PickupDeliveryPosition_pd_pair_index_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int RoutingModel_PickupDeliveryPosition_pd_pair_index_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_NodeNeighborsParameters_num_neighbors_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddRestoreDimensionValuesResetCallback(global::System.Runtime.InteropServices.HandleRef jarg1, VoidToVoid jarg2)
static void RoutingModel_SetPickupAndDeliveryPolicyOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static long RoutingModel_GetNumberOfRejectsInFirstSolution(global::System.Runtime.InteropServices.HandleRef jarg1, int search_parameters_size, byte[] jarg2)
static global::System.IntPtr RoutingModel_ResourceVar(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static void RoutingModel_AddPickupAndDeliverySets(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetAmortizedLinearCostFactorOfVehicles(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_ActiveVehicleVar(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_GetSameVehicleIndicesOfIndex(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AddWeightedVariableMinimizedByFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, long jarg3)
static void RoutingModel_SetPathEnergyCostOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, long jarg4, int jarg5)
static int RoutingModel_GetNonZeroCostClassesCount(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddVariableTargetToFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, long jarg3)
static void RoutingModel_NodeNeighborsParameters_only_sort_neighbors_for_partial_neighborhoods_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2)
static bool RoutingModel_NodeNeighborsParameters_only_sort_neighbors_for_partial_neighborhoods_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_Nexts(global::System.Runtime.InteropServices.HandleRef jarg1)
static void delete_RoutingModel_VehicleTypeContainer_VehicleClassEntry(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_VehicleTypeContainer_vehicles_per_vehicle_class_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetPickupPosition(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_GetPathsMetadata(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_ResourceGroup_GetResourceClassIndex(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static long RoutingModel_UnperformedPenaltyOrValue(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static int RoutingModel_VariableValuePair_var_index_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_AddDimensionWithVehicleTransitAndCapacity(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, int[] jarg2, long jarg3, int length4, long[] jarg4, bool jarg5, string jarg6)
static void RoutingModel_AddAtSolutionCallback__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, VoidToVoid jarg2)
static void RoutingModel_SetVisitType(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, int jarg3, int jarg4)
static global::System.IntPtr RoutingModel_AddConstantDimensionWithSlack(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, long jarg4, bool jarg5, string jarg6)
static global::System.IntPtr RoutingModel_ResourceGroup_GetResourceIndicesInClass(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AddRequiredTypeAlternativesWhenAddingType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static int RoutingModel_GetVehicleOfClass(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_VehicleVars(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_GetFixedCostOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_GetMutableLocalCumulLPOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static long RoutingModel_GetDisjunctionMaxCardinality(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_solver(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_NodeNeighborsParameters_add_vehicle_ends_to_neighbors_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_IgnoreDisjunctionsAlreadyForcedToZero(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetPickupAndDeliveryPolicyOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_ReadAssignmentFromRoutes(global::System.Runtime.InteropServices.HandleRef jarg1, int len2_1, int[] len2_2, long[] jarg2, bool jarg3)
static global::System.IntPtr RoutingModel_GetSingleNodesOfType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_ResourceVars(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_SetPickupAndDeliveryPolicyOfAllVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AddSoftSameVehicleConstraint(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2, long jarg3)
static global::System.IntPtr RoutingModel_RestoreAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static bool RoutingModel_HasGlobalCumulOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_FastSolveFromAssignmentWithParameters__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int search_parameters_size, byte[] jarg3, bool jarg4)
static void RoutingModel_AddWeightedVariableTargetToFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, long jarg3, long jarg4)
static void RoutingModel_AddLocalSearchFilter(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, double jarg2, long jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, bool jarg5, bool jarg6, bool jarg7)
static void RoutingModel_SetAssignmentFromOtherModelAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4)
static global::System.IntPtr RoutingModel_FastSolveFromAssignmentWithParameters__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int search_parameters_size, byte[] jarg3, bool jarg4, global::System.Runtime.InteropServices.HandleRef jarg5)
static global::System.IntPtr RoutingModel_SolveFromAssignmentsWithParameters__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int search_parameters_size, byte[] jarg3, global::System.Runtime.InteropServices.HandleRef jarg4)
static void delete_RoutingModel_NodeNeighborsByCostClass(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_Vehicles(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_Start(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int RoutingModel_AddDisjunction__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2)
static void RoutingModel_SetAmortizedCostFactorsOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, int jarg4)
static bool RoutingModel_HasDimension(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static global::System.IntPtr RoutingModel_MakeSelfDependentDimensionFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, double jarg2, long jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, bool jarg5, bool jarg6)
static long RoutingModel_GetArcCostForClass(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, long jarg4)
static void delete_RoutingModel_PickupDeliveryPosition(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_HasMaxCardinalityConstrainedDisjunctions(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_NodeNeighborsByCostClass_GetIncomingNeighborsOfNodeForCostClass(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static long RoutingModel_VehicleTypeContainer_VehicleClassEntry_fixed_cost_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetCostClassIndexOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void RoutingModel_NodeNeighborsParameters_add_vehicle_ends_to_neighbors_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2)
static int RoutingModel_VehicleTypeContainer_Type(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int RoutingModel_VehicleTypeContainer_VehicleClassEntry_vehicle_class_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_RegisterUnaryTransitVector(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2)
static void RoutingModel_AddTemporalTypeIncompatibility(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetVehiclesOfSameClass(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_4(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_NodeNeighborsByCostClass_GetOutgoingNeighborsOfNodeForCostClass(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetMutableCPInterrupt(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetRequiredTypeAlternativesWhenRemovingType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_HasMandatoryDisjunctions(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_GetArcCostForVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, long jarg4)
static global::System.IntPtr RoutingModel_VehicleRouteConsideredVar(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_IsPickup(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_Resource_GetDimensionAttributes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static long RoutingModel_GetDepot(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_IsEnd(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void RoutingModel_CancelSearch(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetFixedCostOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, int jarg3)
static void RoutingModel_VehicleTypeContainer_VehicleClassEntry_vehicle_class_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int RoutingModel_GetCostClassesCount(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_AddDimensionWithVehicleTransits(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, int[] jarg2, long jarg3, long jarg4, bool jarg5, string jarg6)
static global::System.IntPtr RoutingModel_GetMutableCPSatInterrupt(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_SolveWithIteratedLocalSearch(global::System.Runtime.InteropServices.HandleRef jarg1, int search_parameters_size, byte[] jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_GetAffectedDimensionIndices(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_TimeBuffer(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetFirstSolutionEvaluator(global::System.Runtime.InteropServices.HandleRef jarg1, LongLongToLong jarg2)
static bool RoutingModel_HasLocalCumulOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_SetAmortizedCostFactorsOfAllVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static bool RoutingModel_CostsAreHomogeneousAcrossVehicles(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_IsDelivery(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_CumulDependentTransitCallback(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_WriteAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static bool RoutingModel_ApplyLocksToAllVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, int len2_1, int[] len2_2, long[] jarg2, bool jarg3)
static void RoutingModel_SetPrimaryConstrainedDimension(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static int RoutingModel_RegisterUnaryTransitCallback__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, LongToLong jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetMutableDimension(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static global::System.IntPtr RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, double jarg2, long jarg3, global::System.Runtime.InteropServices.HandleRef jarg4)
static int RoutingModel_AddDisjunction__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2, long jarg3, long jarg4, int jarg5)
static void delete_RoutingModel_ResourceGroup_Resource(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_GetArcCostForFirstSolution(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static global::System.IntPtr RoutingModel_SolveWithParameters(global::System.Runtime.InteropServices.HandleRef jarg1, int search_parameters_size, byte[] jarg2)
static bool RoutingModel_AddDimension(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, long jarg3, long jarg4, bool jarg5, string jarg6)
static bool RoutingModel_EnableDeepSerialization(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetMaximumNumberOfActiveVehicles(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetMutableGlobalCumulLPOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_AddVariableMaximizedByFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_AddIntervalToAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetMutableGlobalCumulMPOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_VehicleTypeContainer_vehicles_per_vehicle_class_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_ReadAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static global::System.IntPtr RoutingModel_GetDimensionsWithGlobalCumulOptimizers(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_ResourceGroup_ClearAllowedResourcesForVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AddRequiredTypeAlternativesWhenRemovingType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static void delete_RoutingModel_ResourceGroup(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddEnterSearchCallback(global::System.Runtime.InteropServices.HandleRef jarg1, VoidToVoid jarg2)
static global::System.IntPtr RoutingModel_GetTemporalTypeIncompatibilitiesOfType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AddAtSolutionCallback__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, VoidToVoid jarg2, bool jarg3)
static bool RoutingModel_SecondaryOptimizer_Solve(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static int RoutingModel_RegisterCumulDependentTransitCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static bool RoutingModel_IsMatchingModel(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_HasHardTypeIncompatibilities(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_RegisterTransitCallback__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, LongLongToLong jarg2, int jarg3)
static int RoutingModel_RegisterUnaryTransitCallback__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, LongToLong jarg2)
static long RoutingModel_GetNumberOfDecisionsInFirstSolution(global::System.Runtime.InteropServices.HandleRef jarg1, int search_parameters_size, byte[] jarg2)
static void RoutingModel_AddToAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_SetArcCostEvaluatorOfAllVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_HasTemporalTypeIncompatibilities(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_AreRoutesInterdependent(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static int RoutingModel_ResourceGroup_Size(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_ResourceGroup_Attributes_StartDomain(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetStatus(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_HasTemporalTypeRequirements(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_AddVectorDimension(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2, long jarg3, bool jarg4, string jarg5)
static bool RoutingModel_CheckLimit__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static int RoutingModel_RegisterTransitCallback__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, LongLongToLong jarg2)
static void RoutingModel_SetArcCostEvaluatorOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static int RoutingModel_AddDisjunction__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2, long jarg3, long jarg4)
static bool RoutingModel_NodeNeighborsParameters_add_vehicle_starts_to_neighbors_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_VehicleIndex(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static long RoutingModel_ComputeLowerBound(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddVariableMinimizedByFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static long RoutingModel_Size(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_AddResourceGroup(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetDimensionOrDie(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_GetResource(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void delete_RoutingModel_VariableValuePair(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_CompactAndCheckAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static long RoutingModel_Next(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, long jarg3)
static global::System.IntPtr RoutingModel_AddConstantDimension(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, bool jarg4, string jarg5)
static long RoutingModel_End(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_IsVehicleUsed(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetDisjunctionIndices(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void RoutingModel_ResourceGroup_SetAllowedResourcesForVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int length3, int[] jarg3)
static int RoutingModel_GetNumberOfVisitTypes(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetFixedCostOfAllVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void RoutingModel_NodeNeighborsParameters_num_neighbors_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_GetDeliveryPosition(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void delete_RoutingModel(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_CloseModel(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_ResourceGroup_GetResourceClassesCount(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddRouteConstraint__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetSameActivityIndicesOfGroup(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int RoutingModel_GetSameActivityGroupsCount(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_AddLocalSearchOperator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_MakeGuidedSlackFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, LongToLong jarg3)
static int RoutingModel_GetNumOfSingletonNodes(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_CompactAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_VariableValuePair_var_index_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_GetDimensionAttributesForClass(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3)
static bool RoutingModel_IsVehicleUsedWhenEmpty(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_ApplyLocks(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2)
static global::System.IntPtr RoutingModel_GetDimensionsWithLocalCumulOptimizers(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_PickupDeliveryPosition_alternative_index_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetRequiredTypeAlternativesWhenAddingType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_IsVehicleAllowedForIndex(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, long jarg3)
static void RoutingModel_AddHardTypeIncompatibility(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetRouteCost(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2)
static global::System.IntPtr RoutingModel_GetSameVehicleRequiredTypeAlternativesOfType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void RoutingModel_AssignmentToRoutes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int len3_1, int[] len3_2, long[] jarg3)
static void delete_RoutingModel_SecondaryOptimizer(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_SolveFromAssignmentWithParameters(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int search_parameters_size, byte[] jarg3)
static bool RoutingModel_IsStart(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static bool RoutingModel_NodeNeighborsByCostClass_IsNeighborhoodArcForCostClass(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, long jarg3, long jarg4)
static bool RoutingModel_ArcIsMoreConstrainedThanArc(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3, long jarg4)
static global::System.IntPtr RoutingModel_ActiveVar(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static int RoutingModel_AddDisjunction__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, long[] jarg2, long jarg3)
static void RoutingModel_SetPathEnergyCostsOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, long jarg4, long jarg5, long jarg6, int jarg7)
static void RoutingModel_PickupDeliveryPosition_alternative_index_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static long RoutingModel_UnperformedPenalty(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static int RoutingModel_ResourceGroup_AddResource(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static string RoutingModel_DebugOutputAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3)
static global::System.IntPtr RoutingModel_Solve__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetVisitType(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_GetVehiclesRequiringAResource(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetNumberOfDisjunctions(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_VehicleTypeContainer_sorted_vehicle_classes_per_type_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetMaximumNumberOfActiveVehicles(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_Attributes_EndDomain(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_VehicleTypeContainer_type_index_of_vehicle_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static bool RoutingModel_ResourceGroup_VehicleRequiresAResource(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_GetDimensionResourceGroupIndices(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static int RoutingModel_GetDisjunctionPenaltyCostBehavior(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static bool RoutingModel_HasSameVehicleTypeRequirements(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_ObjectiveLowerBound(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetAllowedVehiclesForIndex(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, int[] jarg2, long jarg3)
static void RoutingModel_VariableValuePair_value_set(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static global::System.IntPtr RoutingModel_NextVar(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static bool RoutingModel_CheckLimit__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_UpdateTimeLimit(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_SetVehicleUsedWhenEmpty(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2, int jarg3)
static global::System.IntPtr RoutingModel_GetSameVehicleClassArcs(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static global::System.IntPtr RoutingModel_ResourceGroup_GetResourceIndicesPerClass(global::System.Runtime.InteropServices.HandleRef jarg1)
static void delete_RoutingModel_NodeNeighborsParameters(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_SetFirstSolutionHint(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_ResourceGroup_NotifyVehicleRequiresAResource(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static global::System.IntPtr RoutingModel_PreAssignment(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_Solve__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_ResourceGroup_GetResources(global::System.Runtime.InteropServices.HandleRef jarg1)
static int RoutingModel_GetVehicleClassesCount(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetUnaryDimensions(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_VehicleVar(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static bool RoutingModel_AddDimensionWithVehicleCapacity(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, long jarg3, int length4, long[] jarg4, bool jarg5, string jarg6)
static void RoutingModel_AddPickupAndDelivery(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static void RoutingModel_NodeNeighborsByCostClass_ComputeNeighbors(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static int RoutingModel_RegisterTransitMatrix(global::System.Runtime.InteropServices.HandleRef jarg1, int len2_1, int[] len2_2, long[] jarg2)
static global::System.IntPtr RoutingModel_MutablePreAssignment(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetOrCreateNodeNeighborsByCostClass__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, double jarg2, long jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, bool jarg5)
static int RoutingModel_VehicleTypeContainer_NumTypes(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_AddMatrixDimension(global::System.Runtime.InteropServices.HandleRef jarg1, int len2_1, int[] len2_2, long[] jarg2, long jarg3, bool jarg4, string jarg5)
static global::System.IntPtr RoutingModel_CostVar(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetResourceGroups(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_HasVehicleWithCostClassIndex(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void delete_RoutingModel_VehicleTypeContainer(global::System.Runtime.InteropServices.HandleRef jarg1)
static global::System.IntPtr RoutingModel_GetFirstSolutionHint(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_AddDimensionWithCumulDependentVehicleTransitAndCapacity(global::System.Runtime.InteropServices.HandleRef jarg1, int length2, int[] jarg2, int length3, int[] jarg3, long jarg4, int length5, long[] jarg5, bool jarg6, string jarg7)
static void RoutingModel_VehicleTypeContainer_VehicleClassEntry_fixed_cost_set(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static int RoutingModel_GetVehicleClassIndexOfVehicle(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2)
static void RoutingModel_NodeNeighborsParameters_add_vehicle_starts_to_neighbors_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2)
static global::System.IntPtr RoutingModel_VehicleTypeContainer_type_index_of_vehicle_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_CloseModelWithParameters(global::System.Runtime.InteropServices.HandleRef jarg1, int search_parameters_size, byte[] jarg2)
static void delete_RoutingModel_ResourceGroup_Attributes(global::System.Runtime.InteropServices.HandleRef jarg1)
static long RoutingModel_GetHomogeneousCost(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2, long jarg3)
static void RoutingModel_AddSearchMonitor(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static void RoutingModel_AddWeightedVariableMaximizedByFinalizer(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, long jarg3)
static int RoutingModel_ResourceGroup_Index(global::System.Runtime.InteropServices.HandleRef jarg1)
static void RoutingModel_VehicleTypeContainer_sorted_vehicle_classes_per_type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static global::System.IntPtr RoutingModel_GetResourceGroup(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static long RoutingModel_VariableValuePair_value_get(global::System.Runtime.InteropServices.HandleRef jarg1)
static bool RoutingModel_RoutesToAssignment(global::System.Runtime.InteropServices.HandleRef jarg1, int len2_1, int[] len2_2, long[] jarg2, bool jarg3, bool jarg4, global::System.Runtime.InteropServices.HandleRef jarg5)
static bool RoutingModel_CheckIfAssignmentIsFeasible(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, bool jarg3)
static int ProtoToByteArray(IMessage message, out byte[] buffer)
delegate long LongLongToLong(long t, long u)
Used to wrap IndexEvaluator2 (std::function<int64_t(int64_t, int64_t)>)
Google.OrTools.Util.Domain Domain
delegate long LongToLong(long t)
Used to wrap IndexEvaluator1 (std::function<int64_t(int64_t)>)
delegate void VoidToVoid()
Used to wrap Closure (std::function<void()>)