微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将顶点属性与指向它的边缘的边缘权重相乘?

如何解决如何将顶点属性与指向它的边缘的边缘权重相乘?

我陷入了我似乎遇到的图遍历问题。我使用gremlinpython,我的数据库存储在AWS Neptune中。

该图看起来类似于以下示例:

#include<iostream>
#define combine(a,b,c) a##b##c
int main()
{
    std::cout<<combine(2+2,3+3,5+5);
    return 0;
}

现在,我想通过将配方值与其指定的边值相乘并求和来计算订单的总成本。

到目前为止,我的代码如下:

g = Tinkergraph.open().traversal()
o1 = g.addV('o').property('order','order1').next()
r1 = g.addV('r').property('recipe','recipe1').property('price',3).next()
r2 = g.addV('r').property('recipe','recipe2').property('price',3).next()
r3 = g.addV('r').property('recipe','recipe3').property('price',3).next()
g.V(o1).addE('orders').to(r1).property('amount',2)
g.V(o1).addE('orders').to(r2).property('amount',3)
g.V(o1).addE('orders').to(r2).property('amount',4)

我注意到该代码只会将每个配方值与第一个边缘量相乘,而不会与各自的量相乘。 我不确定如何在sack()。by()操作中指定每个顶点应乘以各自的边缘量。

解决方法

您的Gremlin脚本来创建数据需要一些修复:

g = TinkerGraph.open().traversal()
o1 = g.addV('o').property('order','order1').next()
r1 = g.addV('r').property('recipe','recipe1').property('price',3).next()
r2 = g.addV('r').property('recipe','recipe2').property('price',3).next()
r3 = g.addV('r').property('recipe','recipe3').property('price',3).next()
g.V(o1).addE('orders').to(r1).property('amount',2)
g.V(o1).addE('orders').to(r2).property('amount',3)
g.V(o1).addE('orders').to(r2).property('amount',4)

您的方法非常接近,希望我的小改动对您有意义:

gremlin> g.withSack(0).V(o1).
......1>   outE().
......2>   sack(Operator.assign).by('amount').
......3>   inV().
......4>   sack(Operator.mult).by('price').
......5>   sack().
......6>   sum()
==>27

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?