我已经用GUROBI解决了LP模型,并且我知道该模型具有无限数量的最优解。如下所示,目标函数和构造1具有相同的斜率,构造1绑定。 GUROBI仅显示一种最佳解决方案,但是如何找到所有可能的解决方案(或范围)?如何在更复杂的LP模型中找到最佳解决方案的数量?
import 'package:flutter/material.dart';
class SmallEventCard extends StatefulWidget {
final imageURL;
final title;
final time;
final place;
SmallEventCard({this.imageURL, this.title, this.time, this.place});
@override
_SmallEventCardState createState() => _SmallEventCardState();
}
class _SmallEventCardState extends State<SmallEventCard> {
bool isFavorite;
@override
void initState() {
// TODO: implement initState
super.initState();
isFavorite = false;
}
@override
Widget build(BuildContext context) {
final screen = MediaQuery.of(context).size;
return Material(
child: SizedBox(
height: screen.height / 7,
child: Card(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
child: Row(
children: <Widget>[
AspectRatio(
aspectRatio: 4 / 3,
child: Image.network(widget.imageURL,
fit: BoxFit.fitHeight,
),
),
SizedBox(
width: 10.0,
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(widget.title,
style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),maxLines: 2, overflow: TextOverflow.clip,
),
SizedBox(height: 5.0,),
Text(widget.time.toString(),
overflow: TextOverflow.clip,
),
SizedBox(height: 5.0,),
Text(widget.place,
overflow: TextOverflow.clip,
),
],
),
),
SizedBox(
width: 50.0,
child: Align(
alignment: Alignment.centerRight,
child: Padding(
padding: const EdgeInsets.all(10.0),
child: IconButton(
onPressed: () {},
icon: Icon(Icons.favorite_border)),
)),
),
],
),
),
),
);
}
}
答案 0 :(得分:0)
所有最佳LP解决方案都是一个困难的概念。可能有无限多个。 Gurobi具有用于枚举所有最佳整数解(解决方案池)的工具,但不适用于纯LP。因此,简短的答案是“否”。
可以列举所有最佳基数,但需要做一些工作(使用二进制变量对基数进行基本编码:变量或约束是基本或非基本的)。参见此link。该方法可以通过添加其他约束来实现,或者通过使用上述解决方案池来更有效地实现。尽管从概念上讲很有趣,但是要注意,这种方法对于大问题并不实用。