Returns a nicely formatted result summary.
(self)
| 58 | return self.best.is_feasible() |
| 59 | |
| 60 | def summary(self) -> str: |
| 61 | """ |
| 62 | Returns a nicely formatted result summary. |
| 63 | """ |
| 64 | obj_str = f"{self.cost()}" if self.is_feasible() else "INFEASIBLE" |
| 65 | summary = [ |
| 66 | "Solution results", |
| 67 | "================", |
| 68 | f" # routes: {self.best.num_routes()}", |
| 69 | f" # trips: {self.best.num_trips()}", |
| 70 | f" # clients: {self.best.num_clients()}", |
| 71 | f" objective: {obj_str}", |
| 72 | f" distance: {self.best.distance()}", |
| 73 | f" duration: {self.best.duration()}", |
| 74 | f"# iterations: {self.num_iterations}", |
| 75 | f" run-time: {self.runtime:.2f} seconds", |
| 76 | ] |
| 77 | |
| 78 | return "\n".join(summary) |
| 79 | |
| 80 | def __str__(self) -> str: |
| 81 | content = [ |