小编Sis*_*cia的帖子

Clojure DAG(贝叶斯网络)

我想在clojure中建立一个贝叶斯网络,因为我还没有找到任何类似的项目.

我已经研究了很多BN的理论,但我仍然看不出如何实现网络(我不是人们称之为"大师"的任何东西,尤其不是函数式编程).

我知道BN只不过是一个DAG和很多概率表(每个节点一个)但现在我没有胶水如何实现DAG.

我的第一个想法是一个巨大的集合(DAG)与一些小地图(DAG的节点),每个地图应该有一个名称(可能是:键)概率表(另一个地图?)父母的矢量,最后一个矢量的非下载.

现在我不知道如何实现父母和非后代的引用(我应该把它放在两个向量中).我猜一个指针应该是完美的,但是clojure缺乏它; 我可以在向量中放入:另一个节点的名称,但它会很慢,不是吗?

我在想,而不是矢量,我可以使用更多的集合,这样可以更快地找到节点的后代.

对于概率表的类似问题,我仍然需要在其他节点处进行一些引用.

最后,我也想学习BN(建立网络由数据开始),这意味着我将改变很多既概率表,边和节点.

我应该使用可变类型还是只会增加复杂性?

algorithm functional-programming clojure directed-acyclic-graphs

14
推荐指数
1
解决办法
1217
查看次数

将docker-compose连接到外部数据库

我有4个容器需要相互通信,其中两个需要连接到外部数据库.

我开始使用作曲家并将所有内容链接在一起.

容器能够在没有太多问题的情况下相互通信,但是它们无法连接到外部数据库.

外部数据库已启动并运行,我可以通过shell轻松连接到它.

docker-compose文件如下所示:

version: "3"

services:  

  bridge:
    # version => 2.1.4
    build: ./lora-gateway-bridge
    ports:
      - "1680/udp:1700/udp"
    links:
      - emqtt
      - redis
    environment:
      - MQTT_SERVER=tcp://emqtt:1883
    networks:
      - external
    restart: unless-stopped

  loraserver:
    # version => 0.16.1
    build: ./loraserver
    links:
      - redis
      - emqtt
      - lora-app-server
    environment:
      - NET_ID=010203
      - REDIS_URL=redis://redis:6379
      - DB_AUTOMIGRATE=true
      - POSTGRES_DSN=${SQL_STRING} ###<- connection string
      - BAND=EU_863_870
    ports:
      - "8000:8000"
    restart: unless-stopped

  lora-app-server:
    build: ./lora-app-server 
    # version => 0.8.0
    links:
      - emqtt
      - redis
    volumes:
      - "/opt/lora-app-server/certs:/opt/lora-app-server/certs"
    environment: …
Run Code Online (Sandbox Code Playgroud)

database connect docker-compose

10
推荐指数
1
解决办法
2万
查看次数

定义多个var clojure宏

我有一个clojure应用程序需要一些配置变量,主要是字符串,但也需要评估.

我可以用以下内容声明每个变量:

(def config-db "URI_DB"))
(def config-time (hours 1))
Run Code Online (Sandbox Code Playgroud)

但我认为这可能是一个好主意(我不是很确定)写一个宏来做到这一点,看起来像这样:

(make-config 
  config-db "URI_DB"
  config-time (hours 1))
Run Code Online (Sandbox Code Playgroud)

(或者我可以将名称放在向量中,看起来更像是一个let语句)

但是当我放了一对以上的夫妇时,我遇到了问题,我这样做了:

(defmacro define-config
  [name definition]
  `(def ~name ~definition))
Run Code Online (Sandbox Code Playgroud)

但是我真的没有任何关于如何在更有用的东西中扩展它的粘合剂......

有什么建议或想法吗?

macros clojure configuration-files

5
推荐指数
1
解决办法
1367
查看次数

使用Plug.Router语法在init上传递的Plug,use选项

我正在使用Plug,我想了解.

我的代码看起来像:

defmodule Numerino.Plug do
  use Plug.Router
  use Plug.Debugger

  plug :put_resp_content_type, "application/json"
  plug :match
  plug :dispatch

  def init options do
    IO.inspect options
    options
  end

  get "/" do
    conn
    |> IO.inspect
    |> send_resp(201, "world")
  end

  match _ do
    send_resp(conn, 404, "Not found.")
  end

end
Run Code Online (Sandbox Code Playgroud)

在get中我需要使用option传递的参数.

如何访问保持相同Plug.Router语法的选项?

elixir phoenix-framework

5
推荐指数
1
解决办法
530
查看次数

SQLite给出了一个声明,可以知道将触及哪个表

给出一个简单的查询,如

SELECT * FROM test;
Run Code Online (Sandbox Code Playgroud)

要么

INSERT INTO number VALUES (1, 2);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能知道,在执行查询之前并且没有自己解析语句,test在第一个查询中读取表number并且在第二个查询中写入表.

这两个例子显然非常简单,但我正在寻找适合更复杂案例的东西.

干杯

sql sqlite

5
推荐指数
0
解决办法
34
查看次数

如何检查 SQLite 数据库是否是内存数据库

我有一个用于连接 sqlite3 数据库的处理程序。我想知道该数据库是否是内存数据库。

有没有API可以做到这一点?

sqlite

4
推荐指数
1
解决办法
716
查看次数

获取文件的uid和gid

在 linux 中,stat结构体包含文件的 UID 和 GID。

有没有办法使用 Go(lang) 获取文件的相同信息(UID 和 GID)?

linux go stat

3
推荐指数
1
解决办法
3844
查看次数

从 Rust 中的 RefCell&lt;Option&lt;Rc&lt;T&gt;&gt;&gt; 获取引用

我在从 RefCell<Option<Rc>> 获取引用时遇到问题。

有什么建议吗?

struct Node<T> {
    value: T
}

struct Consumer3<T> {
    tail: RefCell<Option<Rc<Node<T>>>>,
}

impl<T> Consumer3<T> {
    fn read<'s>(&'s self) -> Ref<Option<T>> {
        Ref::map(self.tail.borrow(), |f| {
            f.map(|s| {
                let v = s.as_ref();
                v.value
            })
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

给出:

struct Node<T> {
    value: T
}

struct Consumer3<T> {
    tail: RefCell<Option<Rc<Node<T>>>>,
}

impl<T> Consumer3<T> {
    fn read<'s>(&'s self) -> Ref<Option<T>> {
        Ref::map(self.tail.borrow(), |f| {
            f.map(|s| {
                let v = s.as_ref();
                v.value
            })
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

操场

rust

1
推荐指数
1
解决办法
754
查看次数

R"爆炸"数据帧的列

我有一个非常有趣的问题,我正在寻找一个聪明且可能有效的解决方案.

我有一个看起来像这样的数据框.

# A tibble: 6 x 6
  track_id   tag1   tag2  tag3   tag4   tag5
     <int>  <dbl>  <dbl> <dbl>  <dbl>  <dbl>
1  1550729  54087 109806 46869 183258  54337
2  1184201 201327   3668 46208 205245 189631
3  3763749 194264 194413  3424  91383 205245
4  2674608 198998 107401  2327   4425 107398
5  1999180  54087   4425 75574 239459   2397
6  3048820  11242 205245  2474  11056  72354
Run Code Online (Sandbox Code Playgroud)

我想要的是将track_id保留在第一行但是要爆炸标签,并且在一个轨道具有特定ID的情况下,我想要设置一个真值,即一个.

为了更清楚,让我们假设我从较小的一个开始:

  track_id   tag1   tag2 
1  1550729  54087 109806 
2  1184201 201327   3668 
Run Code Online (Sandbox Code Playgroud)

转型后,我想得到类似的东西

  track_id   54087   109806  201327 …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

0
推荐指数
1
解决办法
755
查看次数